问题
使用ZeroTier自建的服务延迟和丢包率过高
原因
中继路由跳数过多,且服务器在海外,连接延迟不稳定
解决方法
用一台有公网IP的云服务器,在上面配置moon服务
前置条件
- 手上有一台有公网IP的云服务器
- 可以远程SSH登录该服务器
- 云服务器防火墙需要打开
9993
端口 - 云服务器本身在运行 ZeroTier 服务
步骤
- 登录云服务器后台(SSH或直接网页端登录)
安装 ZeroTier 服务
curl -s https://install.zerotier.com/| sudo bash
安装后会出现
Success! You are ZeroTier address[XXXX..XX].
(方括号中就是moonID)加入Network(ZTID为要加入的ZeroTier Network ID)
zerotier-cli join ZTID
cd /var/lib/zerotier-one sudo zerotier-idtool initmoon identity.public > moon.json
- 修改配置文件
moon.json
,找到"stableEndpoints":[ "23.23.23.23/9993" ]
(中括号中填入IP)(可以使用有SFTP的终端连接,我这里使用XShell) sudo zerotier-idtool genmoon moon.json mkdir moons.d mv ./*.moon ./moons.d/
重启 ZeroTier 服务
systemctl restart zerotier-one
加入moon命令(这里moonID用前面得到的moonID替换)
zerotier-cli orbit moonID moonID
检验
zerotier-cli listpeers
若列表中有MOON可以视作成功加入moon服务
实测
正在 Ping 192.168.196.* 具有 32 字节的数据:
192.168.196.* 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 422ms,最长 = 762ms,平均 = 547ms
192.168.196.* 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 527ms,最长 = 703ms,平均 = 628ms
延迟仍然很高,但是丢包率下降了不少,延迟我这里估计是我手机的信号的问题,后面换成异地的家宽网络测试后延迟下降到50ms以内,基本满足需求。