部署ZeroTier内网穿透

ZeroTier内网穿透相比frp的好处就是,连接建立之后,不再需要中继服务器做数据中转,连接是点对点的,速度更快。相比于frp,不方便之处在于,本地和服务器必须要安装zerotier客户端(有点儿类似于VPN,我们可以借助frps+zerotier方式开放公网p2p访问)。

部署ZeroTier之前,我们需要了解一些概念,然后再进行部署,也会介绍一些高阶功能,私有化部署(自建Moon服务器、管理Plant服务器)等。

一、ZeroTier 内网穿透需要了解的概念

1. 数据流

zerotier默认会检查新建网络中的所有设备进行p2p直连,如果可以直连就走直连(这一点不用想,基于国内复杂的NAT网络结构基本不可能,但也有例外,比如你的小区是一个大的局域网,你连接的目标设备也在这个小区里…),如果没有p2p的条件,zerotier就会用自己的服务器(官方称moon节点)帮你进行转发,遗憾的是他们的服务器都在国外,访问很慢,基本无法满足日常需求

2. Plant

Plant服务器(根服务器),只允许有一个,它的作用是帮助用户建立一个网络,用户可以得到这个网络的唯一id,然后在客户端选择加入。根服务器负责分配私有ip,这样我们可以通过私有网络ip进行相互访问。

zerotier不支持用户自己创建plant根服务器,必须使用官方的根服务器。Github上有一些所谓的plant服务并打包了docker告诉你可以一键部署的,那都不是真正意义上的plant服务器,只是自己做了一个管理后台,本质上还是访问的官方进行的创建。

3. Moon

zerotier支持用户自建网络中的一台设备做为moon节点进行数据转发,也就是说如果你有一台稳定的VPS,并且加入到你的自建网络,你就可以设置他为moon节点。

4. Leaf

我们的客户端就是Leaf

二、ZeroTier 内网穿透部署流程

1. 注册ZeroTier账号:https://www.zerotier.com/

2. 创建虚拟网络

创建好之后我们进入编辑 (一般新账户默认会有一个Network,可以直接进入编辑)

进入之后我们做一些基础的设置

修改网络名字,修改下虚拟网络 IP 地址范围等,具体可以看设置页面下的Setting Help

博主只做了下面一些改动,开启了ipv6

以后我们网络有设备加入,就会出现在Members这个位置,我们一般在这里进行管理

3. 安装ZeroTier One客户端

客户端支持各个主流平台,安装后的操作也在下面列出。(Step1创建网路,我们已经完成,Step2生成地址,加入网络,Step3 管理员授权接入)

在windows上,安装好客户端之后可以看到下面的托盘应用,我们点击加入新网络

输入我们的前面创建好的网络ID,点击加入,ZeroTier就会创建一个本地的虚拟网络,我们确定添加

我们回到 Zero Tier Central,点击授权加入,这样我们的设备就加入网络了,我们可以稍微备注下设备名,便于我们快速找到设备

网络连接页面我们就可以查看协议版本

4. 群晖安装ZeroTier One客户端

如果是老群晖(6.2版本)可以使用spk套件安装,如果下载spk时总是找不到文件,可以在这个里面找

https://download.zerotier.com/RELEASES/

带有svn、spk后缀名的文件都是群晖的安装包,我们根据自己群晖的版本和cpu选择就可以了,

如果没有对应版本,可能需要docker安装: https://docs.zerotier.com/devices/synology/

还有另一种比docker简单些的方式,用第三方套件+SSH安装:

首先我们添加一些套件来源:(我们的套件来自我不是旷神: https://spk7.imnks.com)

然后搜索zerotier进行安装

查看使用教程,按照教程,ssh进入群辉进行配置即可(https://imnks.com/3175.html),这种方式也是没有界面的,需要手动命令配置

对照进行操作,连接成功:

启动之后在web管理界面下一样设置,同意加入,我们也能得到一个ip,通过ZeroTier分配的ip,就可以相互连接了,我们就可以测试下速度。

完成基础配置,我们已经实现了异地组网,接下来我们看下更高级的一些功能。

三、进阶配置

1. DNS

DNS类似于hosts的功能,可以给每个地址配置一个域名,设置时需要在客户端Allow DNS

2. IPV6

我们使用ZeroTier主要还是希望直连,然而ipv4网络NAT过多导致很多情况下直连失败,我们通过ipv6来进行连接

3. 自建Moon

发表评论