由于zerotier官方服务器主要是在国外,在国内高峰时期经常会出现连接不上官方服务器的情况。

因此需要在国内服务器搭建一个moon服务器
Zerotier 定义了几个专业名词:

PLANET 行星服务器,Zerotier 各地的根服务器,有日本、新加坡等地
moon 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。

在使用 zerotier-cli listpeers 命令时能看到这几个名词。

安装与配置

还是使用

curl -s https://install.zerotier.com | sudo bash

一键安装即可。
记得配置开机启动

systemctl enable zerotier-one

加入zerotier网络

zerotier-cli join <network id>

生成moon.json模板

cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json 

修改moon.json模板

要记住id之后加入moon服务器全靠他。检查 "id"是否为你vps的10为字符id,可在zerotier网页管理端查看,如果不是说明上一步配置有误。
vi 编辑 moon.json,修改 “stableEndpoints” 为 VPS 的公网的 IP,以 IPv4 为例,记得带引号:

"stableEndpoints": [ "8.8.8.8/9993" ]

生成签名文件

用到上一步中的 moon.json, 执行

zerotier-idtool genmoon moon.json

执行之后生成 000000xxxx.moon 文件。

将 moon 节点加入网络

在 VPS 的 Zerotier 安装目录下(/var/lib/zerotier-one)建立文件夹 moons.d,将生成的 .moon文件拷贝进去。
重启 zerotier,重启电脑。至此,VPS 上(moon 服务器)配置完成。

客户机连接moon节点

其他虚拟局域网中的机器想要连接到 moon 节点的话有两种方法。

第一种方法就是使用 zerotier-cli orbit 命令。
使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串)分别在客户端机器里执行:

zerotier-cli orbit <id> <id>

完成(一般来说这两个id都是相同的)

[root@idv-36f9d5 ~]# zerotier-cli orbit 3ed7c***** 3ed7c*****
200 orbit OK

第二种方法是需要在 /var/lib/zerotier-one 目录下新建 moons.d 文件夹和 moon 节点一样,将 000000xxxx.moon 文件放到其中,并重启 zerotier。

测试

在其他LEAF服务器上运行

zerotier-cli listpeers

如果有 moon 服务器 IP 地址的那一行后面有 moon 字样,证明 moon 节点已经被本机连接。

[root@idv-36f9d5 ~]# zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 0cccb***** 35.236.*.*/64393;110;10726 327 1.6.3 LEAF
200 listpeers 3a46f***** 185.180.*.*/9993;110;757 -1 - PLANET
200 listpeers 3ed7c***** 39.97.*.*/9993;172;79 32 1.6.3 MOON
200 listpeers 4f838***** - -1 - LEAF
200 listpeers 62f86***** 50.7.*.*/9993;110;4796 351 - PLANET
200 listpeers 778cd***** 103.195.*.*/9993;5148;4887 253 - PLANET
200 listpeers 992fc***** 195.181.*.*/9993;10161;4921 226 - PLANET
200 listpeers 9d2b5***** - -1 - LEAF

不同系统下的 ZeroTier 目录位置:

Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one

参考:
搭建ZeroTier的Moon服务器小记
在vps上搭建Zerotier的Moon节点
再探:创建 zerotier moon 其实很简单

最后修改:2021 年 02 月 11 日 05 : 05 PM