zerotier 配置 moon
由于国内网络的复杂的情况, ZeroTier 的点与点连接很有可能建立失败。此时机器之间的连接就会绕道国外,造成较大的延迟和丢包率。在 ZeroTier 1.2.0 版本之后,一项新的功能被加入进来:“自定义根服务器”,又称 moon。通过自定义的服务器作为跳板加速内网机器之间的互相访问。本文简要介绍了 ZeroTier moon 的设置方法。
准备
- 公网机器A – moon
- 内网机器B
详细配置
生成及修改 moon.json
首先ssh到机器 A 上,前往路径 /var/lib/zerotier-one
,输入命令
1 | sudo sh -c "zerotier-idtool initmoon identity.public >> moon.json" |
此命令会在当前目录下生成一个文件 moon.json
,文件内容类似如下:
1 | { |
其中 "identity"
为机器 A 在 /var/lib/zerotier-one/identity.public
,应该已经导入无需修改
修改 "stableEndpoints"
为机器 A 的公网的 IP。如:
1 | "stableEndpoints": [ "1.2.3.4/9993","2001:abcd:abcd::1/9993" ] |
若公网机器没有 IPv6 地址,则将其修改为
1 | "stableEndpoints": [ "1.2.3.4/9993" ] |
生成签名文件
修改完 moon.json
后,执行命令
1 | sudo zerotier-idtool genmoon moon.json |
此命令会生成一个签名文件在当前目录下,文件名如 000000deadbeef00.moon
(机器 A 的 id 为 deadbeef00
)
将 moon 节点加入 ZeroTier 网络
在机器 A 中的 ZeroTier 目录中建立子文件夹 moons.d
Linux: /var/lib/zerotier-one
将在机器 A 生成的 000000deadbeef00.moon
拷贝进 moons.d
文件夹中,并重启 ZeroTier(此步好像有些许 bug,重启电脑为佳)
1 | sudo killall -9 zerotier-one # 关闭 |
其他节点连接 moon 节点
1 | sudo zerotier-cli orbit deadbeef00 deadbeef00 |
参考
ZeroTier | Manual – 4.4. Creating Your Own Roots (a.k.a. Moons)
zerotier 配置 moon