前 言
ZeroTier的便捷与优势不必多说,然而虽然其只是承担握手操作,但奈何根节点在境外,对于境内访问ping上了三百ms以上,还日常抽风无法访问,建立境内MOON节点的需求可谓越发重要
需求与环境
固定IP地址的Ubuntu云服务器,配置最低即可(本次案例为1核心512mb内存)
具体实施
采用官方推荐的部署方案
1.部署MOON节点程序
使用SSH以root权限登录服务器,执行命令
curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \ if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
需要注意的是,此操作需要拥有contact@zerotier.com的GPG密钥
若经尝试失败(无GPG密钥),请使用
curl -s https://install.zerotier.com/ | sudo bash
2.创建配置文件
进入程序安装
cd /var/lib/zerotier-one
使用命令创建配置文件
zerotier-idtool initmoon identity.public >>moon.json
3.修改配置文件
执行命令编辑配置文件
vi moon.json
您将看见类似于如下内容
{ "id": "deadbeef00", "objtype": "world", "roots": [ { "identity": "deadbeef00:0:34031483094...", "stableEndpoints": [] } ], "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0", "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3", "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0", "worldType": "moon" }
将其中的”stableEndpoints”: []
修改为:
"stableEndpoints": [ "10.0.0.10/9993","2001:abcd:abcd::1/9993" ]
其中:
10.0.0.10替换为固定IP地址,如果为内外固定IP则不支持外网节点
9993为端口,官方默认端口即为9993
2001:abcd:abcd::1为IPv6地址,如未分配或不需要删除即可
案例如下:
{ "id": "deadbeef00", "objtype": "world", "roots": [ { "identity": "deadbeef00:0:34031483094...", "stableEndpoints": [ "10.0.0.10/9993" ] } ], "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0", "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3", "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0", "worldType": "moon" }
请留意节点ID,加入MOON节点时需要使用,修改完成后保存并退出
4.生成配置文件
执行命令
zerotier-idtool genmoon moon.json
完成后会生成一个类似于000000deadbeef00.moon的文件,此文件不包含密钥,并采用配置文件中的密钥进行签名
使用
mkdir moons.d
创建目录,使用
mv 000000deadbeef00.moon moons.d/
将刚才的moon文件移动至该目录
现在重启服务器,至此,MOON节点配置完成
注意:请检查对应端口的防火墙配置与云主机运营商的防火墙配置,将刚刚指定的端口TCP放行
加入MOON节点
在需要加入MOON节点的设备上执行命令(linux需要root权限,win需要管理员权限):
zerotier-cli orbit deadbeef00 deadbeef00
成功则回显”200 orbit OK”
重启ZeroTier服务/进程
执行
zerotier-cli listpeers
若出现MOON节点与IP则代表加速成功!
附win示例
C:\Windows\system32>zerotier-cli listpeers 200 listpeers <ztaddr> <path> <latency> <version> <role> 200 listpeers deadbeef00 10.0.0.10/55545;1056;1924 38 1.2.12 MOON 200 listpeers 8056c2e21c 35.236.69.126/41946;1366;4934 378 1.2.13 LEAF 200 listpeers 8841408a2e 45.32.248.87/9993;1368;12396 354 1.1.5 PLANET 200 listpeers 9d219039f3 128.199.197.217/9993;12770;12260 358 1.1.5 PLANET 200 listpeers c1fc234669 - -1 - LEAF
发表回复