感谢 TurboAI 对本博客的的大力赞助。 创作不易,如果您觉得有帮助,请 支持 LIncol29! 为了让我能够继续创作更好的内容,你也可以选择订阅博客的 VIP ,包年 VIP 仅需 10 元 / 年,所有 VIP 内容免费观看
前言
上篇文章 【实用 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
3. 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
