本文目录
前言
内网穿透有多种方法,包括使用frp的中转以及zerotier的握手。
使用zerotier进行内网穿透相较于frp的中转,其安全性更高(可不使用域名或公网IP)同时当连接建立成功其连接速度也比frp的快(frp受限于中转服务器的上传下载),具体原理可参考B站视频:BV1ShqBYdEDC
ZeroTier注册及网页使用

通过ZeroTier主页进行注册,目前(2025年4月2日)免费版能够创建3个虚拟组网,并且总共能够添加10个设备(3个组网一共10个设备,未授权设备不占用设备额度)。
按以下顺序依次进行,到最后一步可以通过右下角跳过默认初始化。

之后主页将会显示一个网络组,分别显示了组网ID、组网名称、组网网段以及激活的节点数量。其中保存好组网ID,用于将设备连接到该组网中(注意不要公开,虽然加入组网后还需要手动激活,但是陌生设备还是可以加入到未激活列表)

点进去之后分别有member、settings、flow roles以及administrators,主要操作区域在member和settings其余部分可以无视(非进阶)。
在member中会显示已加入该组网ID的所有设备信息,未有设备连接将会显示“No devices have joined this network.”
如果添加设备后,设备上显示已连接而管理页面依然显示未有设备连接,可以尝试等待一段时间,或者打开settings-Advanced-Manually Add Member部分手动将设备ID输入进去进行添加,手动添加后该设备的设备信息可能会显示Unknown等待一段时间即可。

当添加设备后,Auth部分会显示🚫符号,需要手动勾选然后选择Authorize进行授权,之后该设备加入该组网中。取消授权类似,删除设备则在edit中进行删除。

ZeroTier服务安装
所有平台的ZeroTier可在官方下载页面中下载
Linux安装ZeroTier并连接至组网

If you are willing to rely on SSL to authenticate the site, a one line install can be done with:
curl -s https://install.zerotier.com | sudo bash
If you have GPG installed, a more secure option is available:
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/main/doc/contact%40zerotier.com.gpg' | gpg --import && \ if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
在Centos中直接输入官方提供代码,下载并安装完成后显示下面图片内容,被打码的部分为该设备的ID

之后,使用在网页端ZeroTier创建的组网ID,在终端输入命令,并提示“200 join OK”,zerotier-cli已自动添加至环境可以直接使用。
sudo zerotier-cli join [虚拟网络地址ID]

之后在网页端ZeroTier管理平台授权新加入的设备,新加入设备部分信息可能为Unknown,等待一段时间Refresh即可。

开启授权后会自动分配虚拟内网IP地址,可以在Edit中更改,之后在终端输入“ifconfig”可以看到虚拟网卡信息。

全部配置完成后,设备已经连接虚拟网络。
Linux相关Zerotier命令
# 启动 ZeroTier sudo systemctl start zerotier-one.service # 重启 ZeroTier sudo systemctl restart zerotier-one.service # 设置开机自启动 sudo systemctl enable zerotier-one.service # 查看服务状态 显示ONLINE为正在运行 zerotier-cli status # 加入网络 zerotier-cli join [虚拟网络地址ID] # 离开网络 zerotier-cli leave [虚拟网络地址ID] # 查看所有网络 zerotier-cli listnetworks
windows安装ZeroTier并连接至组网

按要求下载对应版本的ZeroTier,按照提示进行安装。安装完成后,右键在后台的ZeroTier,显示内容如图,点击Join Network输入虚拟组网ID,在弹出的网络连接中点击“是”,然后勾选虚拟组网ID。

再在网页端ZeroTier进行授权,windows端输入ipconfig可以看到虚拟网卡信息。

Android安装ZeroTier并连接至组网
我的是华为mate40pro使用了youtube里的方法(这个channel@gxs里的方法)安装了google全家桶,所以可以通过google play下载,如果下载时显示当前区域无法安装,可以尝试网页登陆play然后再在网页中选择登陆手机下载,我的就是通过网页下载到手机上的。

打开软件后在右上角“ADD NETWORK”中添加组网,其中DNS设置默认即可,最后打开即可加入组网。
注意在网页端设置授权
MacOS安装ZeroTier并连接至组网
除了安装过程,其余与windows设置一致,安装过程与其余MacOS程序一致点“继续”就可以了
注意在网页端设置授权
iOS安装ZeroTier并连接至组网
没有iphone
ZeroTier搭建moon服务器
由于ZeroTier是先通过中转服务器来寻找另一个设备的,而该中转服务器位于海外所以部分场景下其速度较慢,所以可以通过在国内搭建一个云服务器作为中转服务器即moon服务器。该部分视频教程可以观看B站:BV1dr4y147aq,但是时间比较久部分文件格式已经发生变化,但流程基本一致。
- moon服务器配置
将服务器配置为moon服务器前,需要先加入组网。
之后进入ZeroTier配置文件目录,centos在下面目录中,然后在该目录中生成moon.json文件。
cd /var/lib/zerotier-one zerotier-idtool initmoon identity.public >> moon.json
通过vim编辑moon.json文件,其内容如下:
{ "id": "[虚拟网络地址ID]", "objtype": "world", "roots": [ { "identity": "XXX", "stableEndpoints": [] } ], "signingKey": "XXX", "signingKey_SECRET": "XXX", "updatesMustBeSignedBy": "XXX", "worldType": "moon" }
在stableEndpoints中,添加该服务器的公网IP并映射9993端口,可使用IPv4或IPv6(二选一或两个都用),注意ip与端口号之间是"/"不是":"
"stableEndpoints": ["IPv4/9993", "IPv6/9993"]
编辑保存后,生成moon签名文件,并提示图片中内容
zerotier-idtool genmoon moon.json

再在当前配置目录中创建 moons.d文件目录,并将生成的签名文件复制进去,最后重启zerotier-one服务,并查看运行状态
mkdir ./moons.d cp ./0000006xxxxxxxxx.moon ./moons.d/ sudo systemctl restart zerotier-one.service zerotier-cli status
- 设备连入moon服务器
其他设备需通过以下命令连入moon服务器,否则依然为其他leaf端,其中windows需要使用管理员权限的windows powershell
sudo zerotier-cli orbit [moon.json 文件中的 id] [moon.json 文件中的 id]
输入 zerotier-cli listpeers 查看组网中各终端状态

其中:
LEAF - 用户加入组网的终端
PLANET - ZeroTier官方的根服务器
MOON - 用户自定义的公网级别的服务器,以更快更稳定的建立连接
感谢浏览,欢迎关注祁彧w博客!
文章评论