算是zerotier-one的重度用户了,虚拟网络功能真的太好用了!但是p2p中转模式有点弱鸡,打算自建moon节点加速无法直连场景的网速问题。
国内的云服务器的网络带宽是真的贵,去年重金购入的阿里云的
轻量云香港节点
,峰值带宽30M每月1T流量,网络延迟只有40ms;好用的不行。
0x01 安装zerotier-one
各版本系统安装命令参考官方页面 Zerotier-One Download
0x02 初始化moon配置
-
初始化配置
> zerotier-idtool initmoon identity.public > moon.json
identity.public
公钥文件,在zerotier
的安装目录下。通常是在/var/lib/zerotier-one
下;如果找不到可使用whereis zerotier-idtool
-
增加公网ip配置
一定是外网ip,不要使用0.0.0.0等通用ip,否则会失败。
在生成的
moon.json
中增加stableEndpoints
配置节点,9993为默认端口号,可以修改。"stableEndpoints": ["47.xxx.xxx.xxx/9993"] ## 如果要修改端口,需要增加primaryPort配置,同时stableEndpoints中的端口号也要改成对应的。 "primaryPort": "10086"
-
生成签署配置
> zerotier-idtool genmoon moon.json wrote 0000009fxxxxx93.moon (signed world with timestamp 1598935041657)
执行完
erotier-idtool genmoon
命令后,会生成0000009fxxxxx93.moon
的文件,需要将这个文件放到zerotier-one目录下的moons.d/
目录里。 -
重启服务
> service zerotier-one restart
0x03 客户端增加moon节点
配置方法1(推荐):
在客户端上执行
zerotier-cli orbit <world ID> <seed>
world ID和seed可通过在moon节点服务器上执行zerotier-cli info
命令查看,通常这两个值是一样的。
## 在moon节点服务器上次查询world ID
> zerotier-cli info
200 info 9fxxxxx93 1.4.6 ONLINE
## 在客户端上执行orbit命令,加入moon节点
> zerotier-cli orbit 9fxxxxx93 9fxxxxx93
200 orbit OK
## 查看moon节点是否添加
> zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 9fxxxxx93 47.xxx.xxx.xxx/9993;3676;2056 53 1.4.6 MOON
到此节点添加完成,此方法的好处是,不需要操作文件,一个命令全搞定。
配置方法2:
将在moon节点端生成的0000009fxxxxx93.moon
复制到本地的zerotier-one
的安装目录下的moons.d/
文件夹中,然后重启服务即可。
此方法不推荐使用,操作繁琐还容易出错。
0x04 奇怪的bug
在macos上安装的zerotier-one,会导致无法连接到网络,杀进程、脱离网络甚至重启都没用!至今已经遇到了两次!每次都是干等,大概20分钟左右恢复!
杀掉进程瞬间网络短暂恢复!!!目前无新版本可更新!!!!
0x05 参考引用
- 官方文档手册:Zerotier Manual
- CSDN:ZeroTier-One配置moon心得
- zerotier-cli命令帮助
zerotier-cli info #查看当前zerotier信息
zerotier-cli listpeers #列出所有的peers
zerotier-cli listnetworks #列出加入的所有的网络
zerotier-cli join <network> #加入某个网络
zerotier-cli leave <network> #离开某个网络
zerotier-cli listmoons #列出加入的Moon节点
zerotier-cli orbit <world ID> <seed> #加入某个Moon节点
zerotier-cli deorbit <world ID> #离开某个Moon节点