ZeroTier 通过自己的多个根服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到服务器地址的 DNS 服务器,它们被称为 Planet. 然而这里存在一个非常严重的问题,就是 Zerotier 的官方行星服务器都部署在国外,从国内访问的时候延迟很大,甚至在网络高峰期的时候都没法访问,这也会导致我们的虚拟局域网变得极不稳定,经常掉链子。
为了应对网络链接的延迟和不稳定,提高虚拟局域网的速度和可靠性,Zerotier 允许我们建立自己的 moon 卫星中转服务器。
curl -s https://install.zerotier.com/ | sudo bash

显示 Success 后安装成功
zerotier-one -d
sudo zerotier-cli join xxxxxxxxxxxxxxxx
xxxxxxxxxxxxx为 zerotier 官网创建的网络id
加入成功后显示 200 join ok 之后前往 ZEROTIER 官网授权客户端
moon.json文件
使用 vim 或 nano 以及宝塔图形化等编辑器编辑 moon.json 文件
如图,在stableEndpoints后的方括号内输入"你的服务器公网ip"/9993 包括英文双引号,随后保存该文件。并执行以下命令:
会显示一行 wrote 开头的代码,包括一串 xxxxxxxxxxxxxxxxxxx.moon文本,其中xxxxxxxxxxxxxxx为生成的随机 id。
moons.d目录在该目录下创建 moons.d 目录
xxxxxxxxxxxxxx为上文生成的id。
在 Zerotier 默认安装路径C:\ProgramData\ZeroTier\One下新建 moons.d 文件夹,并将服务端得到的.moon后缀文件放入,随后在 windows 任务管理器中重新启动ZeroTierOneService服务进程。
随后在CMD中运行 zerotier-cli listpeers命令

若显示公网ip/9993的 MOON 节点则代表正确。
Linux 客户端需要在var/lib/zerotier路径下新建 moos.d 文件夹,和 windows 一样将 .moon 后缀的文件放到里面,随后使用和 windows 相同的命令 zerotier-cli listpeers检查是否生效。
cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json
zerotier-idtool genmoon moon.json
sudo mkdir moons.d
sudo mv xxxxxxxxxxxxxx.moon moons.d/
sudo systemctl restart zerotier-one