默认情况下 Zerotier 会通过 UDP 打洞连通各个节点
但是如果 多层 NAT 或者防火墙拦截的情况下
数据会走 Zerotier 的 Moon 服务器转发
但是官方的服务器在国外 速度比较慢
所以需要自建 Moon 节点
安装 Zerotier
1 2 3 4
| curl -s https://install.zerotier.com | sudo bash
systemctl enable zerotier-one
|
生成 Moon.json 模板
1 2
| cd /var/lib/zerotier-one zerotier-idtool initmoon identity.public > moon.json
|
修改 stableEndpoints
生成 moon 文件
1 2 3 4 5
| mkdir -p moons.d cd moons.d zerotier-idtool genmoon ../moon.json
systemctl restart zerotier-one
|
客户端加入此 MOON
- 方式一 复制 .moon 文件
- 在客户端目录下 新建 moons.d 文件夹 放入生成的 .moon 文件
- Windows:
C:\ProgramData\ZeroTier\One
- Macintosh:
/Library/Application\ Support/ZeroTier/One
- Linux:
/var/lib/zerotier-one
- FreeBSD/OpenBSD:
/var/db/zerotier-one
- 方式二 直接用命令 参数就是生成的文件名称
- Windows:
1 2
| cd C:\ProgramData\ZeroTier\One zerotier-one_x64.exe -q orbit 00000039b4f***** 00000039b4f*****
|
- 其他系统:
1
| zerotier-cli orbit 00000039b4f***** 00000039b4f*****
|
- 任意一种方式加完后 记得重启
- Windows:
sc stop ZeroTierOneService && sc start ZeroTierOneService
- Linux:
systemctl restart zerotier-one
参考文章