感谢 TurboAI对本博客的的大力赞助。 创作不易,如果您觉得有帮助,请 支持LIncol29! 为了让我能够继续创作更好的内容,你也可以选择订阅博客的 VIP ,包年VIP仅需10元/年,所有VIP内容免费观看
- 2024/08/29:更新搭建moon节点的步骤,每台连接设备都需加入moon节点
- 2025/02/23:更新windows系统设置moon节点,更新zeroteir命令
前言
上篇文章 【实用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)一台云服务器,带宽稍微高一些
2)操作系统CentOS7
3)开放端口9993,UDP
操作步骤
下载并执行脚本
curl -s https://install.zerotier.com/ | sudo bash
启动并开启自启
systemctl start zerotier-one.service
systemctl enable zerotier-one.service
加入到网络
zerotier-cli join 63xxxxxxx
说明: 63xxx即NetworkId
进入安装目录
cd /var/lib/zerotier-one/
生成节点配置
zerotier-idtool initmoon identity.public > moon.json
编辑配置
vi moon.json
修改公网IP
在moon.json中找到下面语句。在 []
中添加服务器IP以及端口号
此端口号需要UDP 放行
"stableEndpoints": [ "ServerIP/9993" ]
生成签名
zerotier-idtool genmoon moon.json
查看生成的文件名
ll
说明: 查看000000xxxxxx.moon的文件名
创建目录
mkdir moons.d
移动moon配置文件
将 00000050c0acc251.moon
修改为你自己的 xxx.moon 文件
mv 00000050c0acc251.moon moons.d/
重启服务
systemctl restart zerotier-one
进入到moons.d
cd moons.d
重新启动
service zerotier-one restart
NAS中Docker容器设置moon节点
注意:你需要使用moon节点的设备,都需要按下列步骤加入一次
查看是否联网成功
其中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节点
Windows系统设置moon节点
使用命令行设置moon节点
zerotier-cli orbit cea2b02da0 cea2b02da0
下载moon文件加入到windows系统
- 打开服务程序services.msc,找到服务”ZeroTier One”,
2.在属性中我的环境下为C:\ProgramData\ZeroTier\One\zerotier-one_x64.exe
, 打开该文件夹,
3.并且在其下建立moons.d文件夹,然后将moon服务器下生成的x.moon文件,拷贝到此文件夹内
4.再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)
Zerotier命令
zerotier-cli info #查看当前zerotier-one的信息
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节点
文章参考资料
- 【实用Docker推荐】使用zerotier实现内网穿透—无公网IP也能在线访问NAS :如何使用zerotier
- 网站地图 – Lincol29 : 在这个网站地图中,你可以找到关于C#、常用生产力工具、面试面经、Docker、WordPress、RSS、等各类技术主题的教程和分享,以及对本站内容快速导航。