由于zerotier官方服务器主要是在国外,在国内高峰时期经常会出现连接不上官方服务器的情况。
因此需要在国内服务器搭建一个moon服务器
Zerotier 定义了几个专业名词:
PLANET 行星服务器,Zerotier 各地的根服务器,有日本、新加坡等地
moon 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
在使用 zerotier-cli listpeers
命令时能看到这几个名词。
安装与配置
还是使用
curl -s https://install.zerotier.com | sudo bash
一键安装即可。
记得配置开机启动
systemctl enable zerotier-one
加入zerotier网络
zerotier-cli join <network id>
生成moon.json模板
cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json
修改moon.json模板
要记住id之后加入moon服务器全靠他。检查 "id"是否为你vps的10为字符id,可在zerotier网页管理端查看,如果不是说明上一步配置有误。
vi 编辑 moon.json
,修改 “stableEndpoints”
为 VPS 的公网的 IP,以 IPv4 为例,记得带引号:
"stableEndpoints": [ "8.8.8.8/9993" ]
生成签名文件
用到上一步中的 moon.json, 执行
zerotier-idtool genmoon moon.json
执行之后生成 000000xxxx.moon 文件。
将 moon 节点加入网络
在 VPS 的 Zerotier 安装目录下(/var/lib/zerotier-one)建立文件夹 moons.d,将生成的 .moon文件拷贝进去。
重启 zerotier,重启电脑。至此,VPS 上(moon 服务器)配置完成。
客户机连接moon节点
其他虚拟局域网中的机器想要连接到 moon 节点的话有两种方法。
第一种方法就是使用 zerotier-cli orbit
命令。
使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串)分别在客户端机器里执行:
zerotier-cli orbit <id> <id>
完成(一般来说这两个id都是相同的)
[root@idv-36f9d5 ~]# zerotier-cli orbit 3ed7c***** 3ed7c*****
200 orbit OK
第二种方法是需要在 /var/lib/zerotier-one 目录下新建 moons.d 文件夹和 moon 节点一样,将 000000xxxx.moon 文件放到其中,并重启 zerotier。
测试
在其他LEAF服务器上运行
zerotier-cli listpeers
如果有 moon 服务器 IP 地址的那一行后面有 moon 字样,证明 moon 节点已经被本机连接。
[root@idv-36f9d5 ~]# zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 0cccb***** 35.236.*.*/64393;110;10726 327 1.6.3 LEAF
200 listpeers 3a46f***** 185.180.*.*/9993;110;757 -1 - PLANET
200 listpeers 3ed7c***** 39.97.*.*/9993;172;79 32 1.6.3 MOON
200 listpeers 4f838***** - -1 - LEAF
200 listpeers 62f86***** 50.7.*.*/9993;110;4796 351 - PLANET
200 listpeers 778cd***** 103.195.*.*/9993;5148;4887 253 - PLANET
200 listpeers 992fc***** 195.181.*.*/9993;10161;4921 226 - PLANET
200 listpeers 9d2b5***** - -1 - LEAF
不同系统下的 ZeroTier 目录位置:
Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
参考:
搭建ZeroTier的Moon服务器小记
在vps上搭建Zerotier的Moon节点
再探:创建 zerotier moon 其实很简单
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/152.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。
13 条评论
博主好,不好意思,我又来请教了!请问:部署在moon服务器上的zerotier要如何进行版本更新?现在还是1.6.5,官方已经升级到1.10.1了
我现在不用zerotier了,不好意思,可以重装吧
博主现在用的什么
有公网ip和机房托管了
好的,谢谢!
好的,谢谢!
请教大神——
zerotier-cli listpeers后显示的moon是如下这样的:
200 listpeers 5**d - -1 - MOON
这是没连上moon服务器吧?
家里的电脑可以正常显示moon服务器的ip,单位电脑就不行,怎么办?
我和你情况一样,自建moon除了一台能连其他全部连不上,看了博主的回复收到启发,把moon主机开放的9993端口由TCP协议改为UDP协议,瞬间所有设备就连上了
搞定了,在云主机的网络安全策略中把TCP和UDP的9993端口都改成允许任何地址连入,现在公司电脑已经可以正常显示MOON的IP了
我的也是一样的现象,家里可以显示MOON节点的IP,公司的电脑不显示。请问如何将TCP协议改为UDP协议?感谢
这是连接上了moon服务器,200表示正常。只不过不建议在单位电脑用这个,单位的电脑现在基本上有流量审查/防火墙,有异常流量会报警/切断连接。(在家就安心休息啦)
唉,就是说很多活要带回家干没办法啊……
那为什么moon这行不显示IP呢?
我还发现,如果单位电脑或者家里电脑对应的那一行也不显示IP的话,就没办法使用RD进行远程了
这个p2p穿透本质上还是udp打洞,如果打不通那就没法内网穿透了,也就是不显示ip。这样建议买一个服务器,使用tcp内网穿透。也就是frp