使用 Frp 搭建 Zeroiter Moon
简介
Zerotier 是一个专用于异地组网的工具,它方便将多台异地机器以 P2P 或者 中转 Relay 的方式实现宛如局域网般的流畅体验。
Zerotier 组网中节点分为三个部分,分别是位于国外的中央服务器 Planet,用户自建节点 Moon,以及用户其他节点 Leaf。
由于 Planet 位于国外,当两台机器地理位置相隔甚远时,无论是 UDP 打洞还是 Relay 中继,速度都非常慢,因此尝试自建一台国内 Zerotier Moon 来提高打洞概率 + 中继速度。
网上搭建 Zerotier Moon 的教程都需要购买一台服务器,但我不想这么折腾,因此使用 Frp 内网穿透的搭建方式。
Frp 穿透
使用 Frp 内网穿透 9993 端口
- 本地 IP一定要指定为局域网 IP(即 192.168.0.0/16 等),而非回环 IP(即 127.0.0.1),否则不会被 Zerotier 服务监听。
- 端口类型选择
UDP
- 内网端口填写
9993
(需修改过 moon 端口号则按实际填写) - 外网端口可随机,此处仅作为演示
- 节点建议选择距离相近的多线机房(在任何运营商网络下都能有比较高的 p2p 打洞成功概率)
搭建 Zerotier Moon
创建基础
moon.json
文件1
2
3
4
5# 切换工作目录(以实际目录为准)
cd /var/lib/zerotier-one
# 创建基础 moon 文件
zerotier-idtool initmoon identity.public > moon.json修改
moon.json
信息将
moon.json
中的stableEndpoints
字段填写 Frpc 分配的公网 IP 和端口1
"stableEndpoints": ["xxx.xxx.xxx.xxx/port"]
提示:IP 地址与端口号通过
/
分隔,而不是:
生成 moon 签名
1
2
3
4
5
6
7
8
9# 切换工作目录(以实际目录为准)
cd /var/lib/zerotier-one
# 将 moon.json 文件签名,生成 moon 文件
zerotier-idtool genmoon moon.json
# 将签名后的 moon 文件移动至 moons.d 文件夹
mkdir moons.d
mv *.moon moons.d重启 Zerotier 服务
1
sudo service zerotier-one restart
加入 Zerotier Moon
- 查看
moon.json
中的ID
字段:"id": "9d2cxxxxxx"
(此处仅作演示,以实际数据为准) - 执行命令:
zerotier-cli orbit 9d2cxxxxxx 9d2cxxxxxx
验证
通过执行zerotier-cli peers
可查看当前加入的 moon 服务器已正常工作。
使用 Frp 搭建 Zeroiter Moon
http://example.com/2025/08/23/使用Frp搭建Zeroiter-Moon/