设置国内 Moon 服务器作用:
默认 Planet 服务器在海外(84.17.53.155 等),导致高延迟。
部署国内 Moon 服务器(本地中继)可加速节点发现和中继,延迟降至 20-50ms。
步骤:准备云服务器:租用国内云服务器(例如,阿里云、腾讯云,1核1G即可),确保有公网 IP。
这里我用的腾讯云香港200M服务器
安装 ZeroTier:
curl -s https://install.zerotier.com | bash
加入 ZeroTier 网络:
使用你的网络 ID 加入:
zerotier-cli join abcdef1234567890
在 ZeroTier 管理控制台(my.zerotier.com):
进入你的网络,找到 Moon 服务器的节点(<ztaddr>)。
授权该节点(勾选 Auth)。
分配固定 IP,例如 192.168.100.200(在 192.168.100.0/24 内,避免与 CN/US DHCP 冲突)。
查看zerotier info 找到ID
zerotier-cli info
比如ID是7cfc6e5440
生成 Moon 配置:
cd /var/lib/zerotier-one
mkdir moons.d
zerotier-idtool initmoon identity.public > moons.d/0000007cfc6e5440.moon
jq . /var/lib/zerotier-one/moons.d/0000007cfc6e5440.moon
验证下文件。
在下面填上自己真实的IP地址,有IPV6也填上。
"stableEndpoints": ["129.150.1.1/49993","2603:c024:4501:3c55:ca99:b8dd:64:1/49993"]}
替换为自己的云服务器公网IP,实际应用中不推荐用9993,特征太明显。
注意要有冒号!
双栈IP的好处是节点会自动寻找跳数最小的。
比如我这里刚开始选的是IPV6,跳数是10,后来自动选了IPV6,因为跳数是9,要少一些。
在防火墙打开9993的UDP端口,腾讯云那边也要打开,如果有宝塔,宝塔那里防火墙看下也要打开。
验证端口
netstat -tulnp | grep 9993
启动 ZeroTier 服务
systemctl start zerotier-one
systemctl enable zerotier-one
检查 Moon 状态:
zerotier-cli info
zerotier-cli peers
CN 和 US 连接 Moon:
- 复制 .moon 文件到 CN 和 US:
- scp 000000xxxxxxxxxx.moon root@192.168.100.1:/var/lib/zerotier-one/moons.d/
- scp 000000xxxxxxxxxx.moon root@192.168.100.101:/var/lib/zerotier-one/moons.d/
- 默认是没有moons.d这个目录的,要新建
- 如果文件传输和scp服务没有安装,可以上传到一个地方,然后用wget 命令下载即可
复制代码 上面这个不需要了!只需要他们和moon服务器加入的是同一网段,moon服务器会自动提供服务,自动广播!
如果是再新建其它网络,需要把moon服务器再加入其它网络,用命令zerotier-cli join abcdef1234567890
在zerotier官方上面同意即可。节点同样不需要下载任何多余的文件。
重启 ZeroTier:
/etc/init.d/zerotier restart
验证:zerotier-cli peers
确认 CN 和 US 是否连接到 Moon(显示云服务器 IP,延迟 < 50ms)。
在加入moon以后,延迟降到很低了
再来看看CN和US的peers
都是直连,延迟很低
注意:
如果要使用非9993端口还要修改下配置。
停止服务
sudo systemctl stop zerotier-one
编辑systemd服务
sudo systemctl edit zerotier-one.service
添加以下内容
[Service]
ExecStart=
ExecStart=/usr/sbin/zerotier-one -p49993
重新加载systemd
sudo systemctl daemon-reload
启动服务
sudo systemctl start zerotier-one
验证端口
sudo netstat -ulnp | grep 49993
|