前言
上篇文章 【实用Docker推荐】使用zerotier实现内网穿透---无公网IP也能在线访问NAS]我们讲述了如何搭建zerotier容器,实现内网穿透。虽然说确实可以访问NAS了,但是速度真的很不理想。
建议先阅读上篇文章,如果你有搭建zerotier的经验,可以选择跳过。
因为zerotier根服务器在国外,在国内的速度很慢,而且不稳定很容易断开连接。
所以根据上述这些缺点,zerotier也给出了一个解决方案。那就是自行搭建一个moon节点来进行中转。
本篇文章将讲述如何自己搭建 Zerotier Moon,加速 Zerotier-One 的连接,让虚拟网络更稳定的运行。
搭建moon节点前 VS 搭建moon节点后
在设置Moon节点之前,我们先来看一下速度。可以从图中看到平均延时都有将近400ms。这个速度真的很慢了,而且会有8%的几率丢包。
一般来说,ping值在50ms以下被认为是优秀的,50-100ms被认为是良好的,100-150ms被认为是中等的,150ms以上则被认为是较高的。
如果觉得ping值不能代表什么,那么请看下面这张Gif图。可以看到打开文件速度非常慢,只能说 连了 == 没连 部署moon节点以后,平均到60ms,已经算是比较优秀的了。请看图
服务器搭建moon节点
1、准备工作
1)一台云服务器,带宽稍微高一些
2)操作系统CentOS7
3)开放端口9993,UDP
2、操作步骤
1)下载并执行脚本
curl -s https://install.zerotier.com/ | sudo bash
2)启动并开启自启
systemctl start zerotier-one.service
systemctl enable zerotier-one.service
3)加入到网络
zerotier-cli join 63xxxxxxx
说明: 63xxx即NetworkId
4)进入安装目录
cd /var/lib/zerotier-one/
5)生成节点配置
zerotier-idtool initmoon identity.public > moon.json
6)编辑配置
vi moon.json
7)修改公网IP
在moon.json中找到下面语句。在 []
中添加服务器IP以及端口号
此端口号需要UDP 放行
"stableEndpoints": [ "ServerIP/9993" ]
8)生成签名
zerotier-idtool genmoon moon.json
9)查看生成的文件名
ll
说明: 查看000000xxxxxx.moon的文件名
10)创建目录
mkdir moons.d
11)移动moon配置文件
mv 00000050c0acc251.moon moons.d/
12)重启服务
systemctl restart zerotier-one
13)进入到moons.d
cd moons.d
14) 重新启动
service zerotier-one restart
- NAS中Docker容器加入节点
查看是否联网成功
其中zerotier -- moon为你自己容器的名字,自行替换
docker exec zerotier-moon zerotier-cli listnetworks
查看zerotier的节点
docker exec zt zerotier-cli listpeers
NAS加入moon节点 cea2b02da0为zerotier,刚刚服务器的Address.如图红框所示
cea2b02da0 替换为你自己Zerotier网站中服务器的Address
docker exec zt zerotier-cli orbit cea2b02da0 cea2b02da0
再次执行命令查看是否变为moon节点
docker exec zt zerotier-cli listpeers
红框所示,已经成功设置为moon节点
文章参考资料
- 【实用Docker推荐】使用zerotier实现内网穿透---无公网IP也能在线访问NAS :如何使用zerotier