钜形不锈钢水箱 发表于 2024-7-20 11:20:11

ZeroTier在Linux下实现内网穿透及搭建moon服务器

一、ZeroTier官网注册账号

1. 注册简单,这里直接使用谷歌账号注册,登录后直接有创建好的网络

https://img-blog.csdnimg.cn/img_convert/3a6e0168090ce91acabcc3fc0f4f4a7a.png
2. 记住这个Network ID

3. 点进去会有内网穿透相干信息

https://img-blog.csdnimg.cn/img_convert/0342d097de98ddce48bcf306755c5e53.png
4. Settings中可以选内网的ip信息,随便选

https://img-blog.csdnimg.cn/img_convert/7b0f5589c805eeaaa20d0284915d7dc2.png
5. Members中有到ZeroTier的设备信息

Address是每个设备的编号
Name/Description可以添加设备形貌
Managed IPs在添加设备后会主动在第4步选的ip网段中分配一个
Physical IP是设备的现实ip地址
https://img-blog.csdnimg.cn/img_convert/083a7a8e4e66c9c2ee0f9f33aa013343.png
二、在Linux上安装Zerotier

1. 在Linux上安装有两种方式,一种是apt-get直接安装,一种是使用官方提供的脚本

apt-get直接安装


[*]安装命令
[*]sudo apt-get install zerotier-one
[*]运行Zerotier服务
[*]sudo systemctl start zerotier-one
[*]加入Zerotier网络组,此处的NETWORK_ID为第一步中记住的NETWORK_ID
[*]sudo zerotier-cli join NETWORK_ID
使用官方脚本安装


[*]安装命令
[*]curl -s https://install.zerotier.com | sudo bash
[*]运行Zerotier服务
[*]sudo systemctl start zerotier-one
[*]加入Zerotier网络组,此处的NETWORK_ID为第一步中记住的NETWORK_ID
[*]sudo zerotier-cli join NETWORK_ID
安装完成后会有Success出现,记住这行末了中括号内的设备号
join加入成功后有200 join ok显示
https://img-blog.csdnimg.cn/img_convert/56d56ae88b4db36a927a9792413d853f.png
2. 设备上安装并加入zerotier后,在第一步的Members中可以看到加入的设备

Auth处勾选,小扳手处勾选Allow Ethernet Bridging选项,会主动分配内网ip地址,加入多台设备后就实现了内网穿透和异地组网,相互之间可以通过这个分配的ip来访问
https://img-blog.csdnimg.cn/img_convert/b6e9c9c79e1dd1401cf3015cefa16d2a.png
三、搭建moon服务器作为zerotier跳板

zerotier服务器节点不稳定,官方推荐使用moon服务器作为跳板加速访问
1. 注册有公网ip的云服务器,这里使用Microsoft Azure云服务器,免费使用12个月

2. 安装Ubuntu系统,在云服务器上也实验第二步,安装好zerotier

3. 搭建moon服务器

进入zerotier-one安装目录默认是/var/lib/zerotier-one
cd /var/lib/zerotier-one
生成 moon.json 设置文件
zerotier-idtool initmoon identity.public >> moon.json
编辑 moon.json 设置文件
vim moon.json
在设置文件中的"stableEndpoints": []中写入云服务器公网ip/9993,写好后需要在云服务器上放行9993端口流量,下图后一个9993端口是ipv6地址,可以不写
https://img-blog.csdnimg.cn/img_convert/892b671ea7d538823798d353054084f7.png
创建moon文件
输入zerotier-idtool genmoon moon.json后会生成一个000000xxxxxxxxxx.moon的moon文件,xxx为安装zerotier时的设备号
新建moons.d文件将生成的000000xxxxxxxxxx.moon文件移动进去
mkdir moons.d
mv 000000xxxxxxxxxx.moon moons.d
重启 zerotier-one 服务
systemctl restart zerotier-one
重启zerotier后就搭建好了moon服务器,需要记住moon服务器安装zerotier时的设备号,忘记了可以zerotier-cli info查询,200 info xxx 1.14.0 ONLINE,xxx即为设备号
4. 在其他设备上安装zerotier并加入moon服务器的节点

Linux安装zerotier如第二步所示,也需要join加入zerotier网络组,通过下面的命令加入moon服务器节点,deadbeef00为刚刚记住的moon服务器安装zerotier时的设备号,需要输入两次,空格隔开
zerotier-cli orbit deadbeef00 deadbeef00
使用命令列出全部节点信息 检察是否显示有moon节点,如果有标明搭建成功
zerotier-cli peers
https://img-blog.csdnimg.cn/img_convert/b46744f1249c1defb9875e8b23496334.png
Windows下在官网下载zerotier安装包安装zerotier
安装后以管理员身份打开 PowerShell,zerotier-cli join NETWORK_ID加入网络组
同样输入zerotier-cli orbit deadbeef00 deadbeef00加入moon服务器节点
zerotier-cli peers检察是否显示有moon节点
5. 全部设备接入zerotier和moon后,尝试相互ping,ping通说明组网完成

组网完成后仅有100ms的延迟
https://img-blog.csdnimg.cn/img_convert/e7e6b587afaf1623ef1f3e899ecd69ab.png
6. 如果输入zerotier-cli peers后没有显示moon节点,需要打开zerotier客户端如下设置

参考博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: ZeroTier在Linux下实现内网穿透及搭建moon服务器