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

服务器 0

一、ZeroTier官网注册账号

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

image.png

2. 记住这个Network ID

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

image.png

4. Settings中可以选内网的ip信息,随便选

image.png

5. Members中有到ZeroTier的设备信息

Address是每个设备的编号
Name/Description可以添加设备描述
Managed IPs在添加设备后会自动在第4步选的ip网段中分配一个
Physical IP是设备的实际ip地址
image.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显示
image.png

2. 设备上安装并加入zerotier后,在第一步的Members中可以看到加入的设备

Auth处勾选,小扳手处勾选Allow Ethernet Bridging选项,会自动分配内网ip地址,加入多台设备后就实现了内网穿透和异地组网,相互之间可以通过这个分配的ip来访问
image.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地址,可以不写
image.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
image.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的延迟
image.png

6. 如果输入zerotier-cli peers后没有显示moon节点,需要打开zerotier客户端如下设置

参考博客

也许您对下面的内容还感兴趣: