请注意,本文编写于 1100 天前,最后修改于 1099 天前,其中某些信息可能已经过时。
为了提升 ZeroTier 在高峰时段的体验,我们可以在服务器上自建 Moon 节点。
01 搭建 Moon 节点
curl -s https://install.zerotier.com | sudo bash
sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service
# 加入 ZeroTier 虚拟局域网
sudo zerotier-cli join asdfasdf
此处的asdfasdf
是 ZeroTier 虚拟局域网的 ID,请根据实际情况更改并打开 ZeroTier 管理页面允许新设备的加入。
之后生成moon.json
并编辑:
cd /var/lib/zerotier-one/
sudo zerotier-idtool initmoon identity.public > moon.json
vi moon.json
在stableEndpoints
项中填入服务器的公网 IP 地址,其它项不需要变动,例如:
{
"id": "xxxxx",
"objtype": "world",
"roots": [
{
"identity": "xxxx:0:eeee",
"stableEndpoints": ["220.181.38.148/9993"]
}
],
"signingKey": "asdfasdfasdf",
"signingKey_SECRET": "asdfasdfasdfasd",
"updatesMustBeSignedBy": "asdfasdfasdf",
"worldType": "moon"
}
生成签名文件:
zerotier-idtool genmoon moon.json
执行之后会生产一个000000xxxx.moon
的文件。
将 Moon 节点加入网络:
cd /var/lib/zerotier-one/
sudo mkdir moons.d
sudo mv 000000xxxxxx.moon moons.d/
此处的000000xxxxxx.moon
是上一步生成的文件名。
之后重启中转服务器的 zerotier-one:
sudo systemctl restart zerotier-one
到这里,服务器的 Moon 节点就配置完成啦。
02 客户端配置
Linux 客户端
执行以下命令即可:
zerotier-cli orbit xxxxxxxxxx xxxxxxxxxx
其中,xxxxxxxxxx
为 Moon 的节点 ID,可以在 ZeroTier 管理页面查看。
之后可以通过以下命令确认是否成功:
zerotier-cli listpeers
若出现类似200 listpeers 7b9528eea2 220.181.38.148/53216;7753;7570 196 1.6.2 MOON
的提示,则表示客户端成功连接 Moon 节点。
OpenWrt 插件
通过 SSH 连接 OpenWrt 后,切换到 ZeroTier 插件目录:
cd /etc/config/zero/
之后的步骤同上。
Windows 客户端
以管理员身份打开 PowerShell,执行以下命令即可:
cd "C:\Program Files (x86)\ZeroTier\One"
zerotier-cli.bat orbit xxxxxxxxxx xxxxxxxxxx
同样,命令中的xxxxxxxxxx
为 Moon 的节点 ID。
确认是否成功:
zerotier-cli.bat listpeers
同样地,若出现类似200 listpeers 7b9528eea2 220.181.38.148/53216;7753;7570 196 1.6.2 MOON
的提示,则表示客户端成功连接 Moon 节点。
本文在撰写时参考了《ZeroTier-One搭建moon节点》、《Zerotier 内网穿透搭建 Moon 节点》、《远程办公:ZeroTier异地组网及私有Moon转发节点搭建》以及《openwrt zerotier增加moon节点配置》,并对其中不完善或有误的地方做出补充或修改。特此感谢原作者。