
一、前言
之前写的《内网穿透系列:原理介绍》和《内网穿透系列:ZeroTier技术中级》,分别介绍了官网如何配置和如何利用Moon行星服务器来部署ZeroTier,但有些小伙伴说了:
- 官方的只是支持25个设备啊,我有那么多小伙伴一起玩游戏,完全不够的说,而且官方非免费版也太贵了
- 我自建了Moon服务器中继,但感觉延迟还是有点,没有达到理想状态,毕竟游戏嘛,要求延迟必须很低的,怎么办呢
那么,我们直接自建Planet根服务器吧,什么Moon卫星服务器啊统统靠边站,也完全不走官方了,用来管理zerotier客户端的地址信息,帮助建立客户端之间的链接,以及无法建立直接的链接的时候,可以作为中续服务器来转发客户端之间的流量。
二、服务端
同理,Planet根服务器也不需要多大的服务器配置,1H1G1M就足够了,阿里云/腾讯云/华为云/天翼云随便搞一台,这里以Ubuntu服务器为例(root权限)。
[tbcontent login](一)服务端安装
(1)环境安装
apt-get upgrade && apt-get dist-upgrade && wget http://kr.archive.ubuntu.com/ubuntu/pool/universe/n/nlohmann-json/nlohmann-json-dev_2.1.1-1.1_all.deb && dpkg -i nlohmann-json-dev_2.1.1-1.1_all.deb
(2)防火墙放行
需要在你服务器和云服务器管理界面放行以下端口:
- TCP:3443、3444、9993
- UDP:9993
- 3443端口是控制台的http
- 3444端口是控制台的https
- 9993端口是planet的根服务器之间通讯
(3)服务安装
wget https://gitee.com/gswxy/zerotier_planet/raw/master/zerotier_planet_debain.sh && chmod +x zerotier_planet_debain.sh && ./zerotier_planet_debain.sh
(4)查看面板
执行完成后,打开http://ip:3443或者https://ip:3444访问,用户名admin,密码password。

能打开页面表示服务器安装成功,安装完成会在执行目录,生成planet文件,找到这个文件并下载下来。
(二)服务端配置
(1)创建网络

(2)配置网络
控制台找到:网络-简易安装-生成网络地址 -提交保存,建议网络地址以16结尾,这样就可以容纳更多的设备,提交后出现Network setup succeeded,即创建成功。

(3)配置分配模式
分别配置ipv4和ipv6分配模式如下:


(4)注意事项

控制台有个私有的按钮,改成公共的话,每个客户端连接都不需要你同意了。这里建议保持私有,增强安全性。
三、客户端
(一)Linux系统
curl -s https://install.zerotier.com | sudo bash
然后把之前下载的planet,上传替换到客户端/var/lib/zerotier-one/ 目录。然后重启服务并加入网络,<NETWORK ID>这几个字请自行替换成你自己的网络ID,也就是前面图片打马赛克部分。
systemctl restart zerotier-one.service && zerotier-cli join <NETWORK ID>
加入网络后,需要在服务端控制台点授权和分配IP才能正常使用,其中OpenWRT软路由需要勾选主动桥接才能实现局域网内互联:

运行zerotier-cli listpeers 检查是否加入根服务器:

(二)Windows系统
(1)下载安装
下载地址:Download — ZeroTier,一路下一步,安装完成后,系统右下角托盘处有个橙色的zerotier图标,右击选择最后一项“Quit……”,退出程序。接下来,打开任务管理器——服务,找到zerotier服务,右键点击停止。如图:

(2)替换文件
Win+R键打开“运行”窗口,输入C:\ProgramData\ZeroTier\One,复制粘贴之前下载的planet,覆盖掉该目录内的planet文件。
(3)重新启动
重新在任务管理器上右键点击zerotier服务(见上图),点击启动,开始菜单,重新运行zerotier程序。
(4)连接网络
右键系统右下方Zerotier的托盘图标,点击join New Network:

输入你的网络ID,点击Join,等几秒钟即可加入。同理,要在服务端界面,给该客户端授权。
(5)常见问题
1)双击安装程序,读条后无反应(没装上)
原因:你系统是家庭版,没权限。
解决:检查你服务里是否有zerotier服务,直接按教程步骤,停止服务,覆盖文件,启动服务。然后管理员运行cmd,输入zerotier-cli join <NETWORK ID>。<NETWORK ID>这几个字请自行替换成你自己的网络ID,也就是前面图片打马赛克部分,没右下角zerotier图标没关系。
2)右键zerotier出现“Waiting for ZeroTier system service”
原因:用户有无效的本地API授权令牌副本。
解决:Win+R打开运行,输入:%LOCALAPPDATA%\ZeroTier\,删除文件夹内的authtoken.secret文件。如果存在One子文件夹,也删除其中的authtoken.secret文件。
(三)安卓系统
下载地址:https://github.com/kaaass/ZerotierFix/releases

安装后将之前下载的planet的文件传到手机上,然后通过软件加载下载的planet文件即可:

四、结语
至此,该系列讲述完毕,个人是比较喜欢Zerotier的,曾经手机远程家里Xbox玩魂类游戏,或者分享给玩家一起局域网游戏,延迟都还不错,并且其基于P2P方式直连,文件分发效果也还可以。
类似Zerotier的,还有Tailscale,其也可以自建服务器,之后有时间的话再更新吧。[/tbcontent]
好东西,局域网连服务器还上线么