配置moon

为 zerotier 配置 moon

准备工作

为了加速 zerotier 的连接,避免直接连接国外服务器可能造成的不稳定。我使用我腾讯云上的轻量级服务器机器,安装 moon。

  • ip: 159.75.84.176

为了保证网络放行,需要通过腾讯云控制台修改服务器的防火墙设置:添加规则,容许 UDP 9993 端口访问。

nc -z -v -u 159.75.84.176 9993
Connection to 159.75.84.176 9993 port [udp/*] succeeded!

安装 zerotier

安装 ZeroTier:

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

停止服务,生成 Moon 配置:

systemctl stop zerotier-one
mkdir -p /var/lib/zerotier-moon
cd /var/lib/zerotier-one
# 删除旧的文件(如果有)
rm -f moon.json *.moon
# 基于官方公钥生成moon模板
zerotier-idtool initmoon identity.public > moon.json

修改 moon.json:

vi moon.json

找到 "roots": [],修改为自己机器的公网 IP:

"roots": [
  {
   "identity": "7c134f5bbc:0:7d85e58b6f929608f406f1ff746487424ea9db0b8ef4cb1cf553c4dfe100e70eede501e2eed7fab84a94d0abf70ccf928ef65ee32bddcb0212d44c6c94559f38",
   "stableEndpoints": ["159.75.84.176/9993"]
  }
 ],

保存退出。再生成 moon 签名文件:

zerotier-idtool genmoon moon.json
wrote 0000007c134f5bbc.moon (signed world with timestamp 1785743655956)

当前目录生成文件类似:000000xxxxxxxxxx.moon。

ls *.moon
0000007c134f5bbc.moon

将 moon 配置载入 zerotier 工作目录:

rm -r moons.d
mkdir moons.d
cp ./*.moon ./moons.d/
# 确认就一个 moon 文件
ls moons.d 
0000007c134f5bbc.moon

启动并开机自启 zerotier-one:

systemctl start zerotier-one
systemctl enable zerotier-one

获取 Moon 节点 ID(这是关键参数):

zerotier-cli info

输出示例:

200 info 7cxxxxxx 1.16.2 ONLINE

7cxxxxxxx 就是 MOON_ID,记录下来备用。

zerotier 客户端

在 openwrt 下,执行:

zerotier-cli orbit 7c134f5bbc 159.75.84.176
service zerotier restart

等待一段时间,

zerotier-cli peers 

7c134f5bbc

zerotier-cli orbit 7c134f5bbc 7c134f5bbc

[root@Kwrt:05:51 PM /etc/zerotier] # /etc/init.d/zerotier restart [root@Kwrt:05:52 PM /etc/zerotier] # zerotier-cli orbit 7c134f5bbc 7c134f5bbc 200 orbit OK [root@Kwrt:05:52 PM /etc/zerotier] # zerotier-cli peers