耳语海岸
艾泽拉斯避难谷地

内网穿透系列:ZeroTier技术初级

一、前言

之前的文章(内网穿透系列:原理介绍)介绍了什么是内网穿透,以及NPS和FRP这款内网穿透工具的部署使用,有些朋友要问了:

  • 我没有也并不想买服务器,也不想买域名,也搞不懂或者懒得做端口映射;
  • 我只需要能够远程访问我家的电脑、NAS 等等设备,并不需要搭建对外的网站之类的;
  • 你说的OpenVPN、FRP、NPS、Ngrok 等这些内网穿透方案,连接的速度取决于做中转代理的服务器的最大带宽,也就是我服务器带宽 5M,内网穿透的速度上限也只能是 5M,太慢了!

虽然上述也可以做UDP打洞,但效果不是很理想,那么我这里再给你介绍两个内网穿透工具:ZeroTier和Tailscale,这里主要讲ZeroTier。

二、ZeroTier介绍

FRP、NPS等的共同特点都是需要一个带有公网IP的服务器做中心节点,通过反向代理的方式实现内网穿透,因而需要做各种端口映射。而 ZeroTier 则像一个全球大型交换机,通过P2PVPN这种方式实现你的多台设备连在同一个虚拟交换机下面从而实现穿透。

P2P通俗来讲就是Peer to PeerZeroTier根服务器记录请求路径来做类似于 DNS 的解析。主要功能,就是可以把多个不同网络的设备连接在一起,用来就像在一个局域网下,而且这种方式下局域网设备之间的连接速度完全取决于你家里宽带的上行速度,不受其他任何的影响。

三、Zerotier部署

(一)注册ZeroTier

点击此处,进去注册账号。

如上图所示即注册成功。免费版本提供25台设备之间的连接,对普通人来说够用了。

(二)创建虚拟局域网

点击上方的 “NetWorks”,点击 “Create a NetWork”, 即可出现 “Your Networks (1)”,如图所示,“ID” 下方的一串蓝色数字就是你虚拟局域网的网络 ID,你的设备加入这个 ID,即可处于同一虚拟局域网之中。

(三)路由器配置

ZeroTier 客户端可以在很多设备上部署,比如 PC、安卓手机、苹果手机、路由器、树莓派、群晖等等。点击此处下载安装即可,安装后点击加入网络,输入网络ID即可。

但如果我们在路由器上部署,按我的教程做好设置的话,这个路由器下面所有的设备都可以不用再安装ZeroTier了,况且Xbox之类的也装不了ZeroTier,所以如果你想Xbox远程串流的话,只能在路由器上部署了。

这里我用OpentWRT系统的软路由做演示,当然能装 ZeroTier 插件的路由器都可以,比如 LEDE、梅林等。这里强烈建议大家使用软路由,我家的联通宽带下行 200M,使用软路由配合迅雷快鸟后,日常宽带下行在 460 兆左右,最高可以跑到 500M。至于怎么做软路由,我之后会在其他教程中阐述。

(1)开启 IPV6 及 DHCPv6

在 OpenWrt 上配置 ZeroTier 之前,首先配置网络接口中的 Lan 接口,开启 IPv6 及 DHCPv6,特别是刷了固件的硬路由。因为 L 大的固件对 ZeroTier 开启的虚拟接口配置了防火墙,但是 ZeroTier 在加入核心网络并允许节点入网后虚拟接口会发生一次变更,如果你没有按我下面的教程仔细核对接口的话,变更会导致 Lan 口上的 IPv4 网络全部被封在防火墙内部不能访问。

这时候如果是硬路由没法接显示器这时候就只能重刷固件,如果是软路由还能接显示器和键盘抢救一下,而如果你开启了 IPV6 就可以用 IPV6 的地址访问路由器。开启的方法请自行百度,每个人的情况不一样。开启之后之后记得确认接入设备是否获取到了 IPv6 地址,fd 打头的,非 fe80 开头。

(2)安装配置客户端

安装 ZeroTier 路由器有两种情况,一种是你的 Openwrt 路由器已经安装了 ZerTier 插件,一种是没有安装,如果安装了:

直接勾选 “启用”,在 “ZeroTier Network ID” 输入你刚才创建的虚拟局域网的网络 ID,“保存应用” 即可,如上图所示。

如果未安装的,需要 ssh 进入路由器,输入以下命令进行安装:

opkg update && opkg install zerotier

安装完成后,输入以下命令加入你的虚拟局域网:

zerotier-cli join ID

其中 ID 需要更换为你虚拟局域网的网络 ID,你在创建虚拟局域网的时候,会默认这个虚拟局域网为私人模式,私人模式在客户端加入的时候,需要你手动勾选同意这个客户端加入。

在 ZeroTier 官网登录后,点击 “NetWorks”,点击你创建的虚拟局域网(蓝色 ID 号),进去后往下拉,如上图所示勾选加入,其中 “Managed IPs” 这一列是你客户端(路由器的)在虚拟局域网的 IP 地址,要记住!这里假设为 “192.168.168.168”,同时点击小扳手图标,勾选 “Allow Ethernet Bridging”(仅客户端为路由器需要勾选此项)。

(3)创建接口及防火墙

现在大多OpenWRT都已经配置好接口和防火墙了,如果没有或者不能访问,则看以下:

点击路由器的菜单 “网络”——“接口”——“添加新接口”,如上图所示,在名字处填写 “ZeroTier”(你可以输别的),在 “包括以下接口” 处选择括号里是 “ZeroTier” 的。

然后点击防火墙设置,选择 “不指定或者新建”,名字设置为 “ZeroTier”(你可以输别的名字)。

然后点击路由器的菜单 “网络”——“防火墙”,往下拉 “区域”,找到你刚才创建的防火墙,“入站数据”、“出站数据” 和 “转发” 全部改为接受,然后点击 “修改”。

往下拉找到 “端口触发”,“允许转发到目标区域” 和 “允许从源区域转发” 都选择为 LAN 区域,如上图所示。

(四)配置虚拟网络桥接路由

在 ZeroTier 官网登录后,点击 “NetWorks”,点击你创建的虚拟局域网(蓝色 ID 号),进去后往下拉找到 “Advanced”——“Add Routes”,假设你家的宽带 IP 地址范围为 “10.11.12.XX” 号段(不知道的请查看你自家电脑的 IP 地址),“Destination” 下方的框就填写 “10.11.12.0”,“(Via)” 下方的框就填写你路由器的虚拟局域网 IP 地址 “192.168.168.168”(上文已假设),然后点击 “Submit” 提交。

接着在 Openwrt 路由器上点击 “网络”——“接口”——“网络”,找到你刚才建立的 “ZeroTier” 接口,选择后面的 “修改”,“基本设置” 里面 “传输协议” 更改为 “静态地址”,“IPv4 地址” 填入 “192.168.168.168”,“IPv4 子网掩码” 填入 “255.255.255.0”,点击 “保存应用”。

另外,点击 “物理设置”,核对绑定接口是不是 ZeroTier 的接口,如果接口已经变更,需要重新勾选后重启下 OpenWrt,否则可能导致 OpenWrt 的 IPv4 网络可能无法使用。

四、进阶玩法

ZeroTier 可以实现很多情形,比如你在外地的笔记本电脑想要远程控制家里的台式机,或者远程串流家里台式机的 Steam Link,或者远程观看家里 Nas 的超清视频,或者小伙伴们一起加入你的网络玩……,可以做你任何想要做的事情,而且延迟很低。另外,手机上下载安装客户端并加入虚拟局域网后,安装 Castone 就可以直接远程你的 Xbox。

同时,Zerotier 定义了几个专业名词:

PLANET #行星服务器,Zerotier 根服务器
MOON #卫星服务器,用户自建的私有根服务器,起到代理加速的作用
LEAF  #网络客户端,就是每台连接到网络节点。

你的路由器或者其他设备就是 LEAF,现在你用的是官方的 MOON 服务器,如果你想要延迟更低一点、速度更快地一点、连接更稳定一点。可以自建MOON服务器,甚至根服务器,服务器不管什么配置、什么带宽都行。鉴于该进阶玩法的篇幅有点多,我另起教程阐述。

赞(2) 打赏
未经允许不得转载:GSWXY » 内网穿透系列:ZeroTier技术初级

评论 抢沙发

评论前必须登录!

立即登录   注册

耳语海岸

WLK版本,定位于RP服务器,趣味养老,请注意:本服仅为技术交流和学习使用,欢迎广泛传播,不作为商业用途。

①群已满加入②群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫