ZeroTier—内网穿透
一、什么是内网穿透?
所谓内网穿透,就是能在即使没有公网IP的情况下也能够经过某种方式实现访问的一种技术,内网穿透的方式有如下几种:
1.反向代理
2.虚拟专用网络(VPN)
3.端口映射
4.SSH隧道
以上这些是比较常见的穿透方式,都有各自的利弊,但是绝大部分的内网穿透都是需要中转服务器来实现的,成本巨大,常见的内网穿透技术例如花生壳这些是需要支付费用并且穿透效果也不是很理想,而ZeroTier可以解决这些问题,ZeroTier本质上是一个虚拟专用网络(VPN)工具,在网络良好的状态下,它能够用满上行带宽。
二、工具简介
ZeroTier是开源的软件项目,它的作用是异地组网,可以实现在不同网段通信的一款工具,也就是我们俗称的内网穿透。
三、准备工作
在此之前,你必须拥有一定的加速器使用的能力,才能确保万无一失,否则会在某一步骤出现问题(被墙)。
下载ZeroTier & 注册账号
下载地址:ZeroTier。
账号注册:账号注册有三种便捷注册,分别是谷歌账号、GitHub账号、微软账号能快速注册,也能使用普通邮箱注册,这里没啥难度我就不细说了。
当完成下载和账号注册两个步骤之后,我们就可以使用控制台来分配组网了。
- 创建网络
点击Create A Network即可创建一个虚拟局域网,随后,会出现如下的一些信息:
1.NETWORK ID:你组网ID,整个ZeroTier的唯一标识符,这个ID需要保管好,不能泄露,否则别人能轻易连接你的内网,这会有安全隐患。
2.NAME:你的组网名称(备注)。
3.DESCRIPTION:无。
4.SUBNET:局域网IP,后面会详细说。
5.NODES:连接到组网的终端设备数量。
6.CREATED:创建日期。
随后点击你的组网ID,进入设置页面。
- 组网设置
在这里,你可以描述你的网络,给你的网络取别名等操作,下面是初次创建时需要设置的几个点:
1.Settings->Basics->Access Control: 访问控制,默认选择Private,如果是公共的话会不安全。
2.Settings->Basics->Advanced->IPv4 Auto-Assign:这里可以更改整个组网的IP网段,可自由选择,建议使用Easy的方式。
2.Members:这个地方一开始是没有成员加入的,因为还没有连接,所以到这一步,我们差不多成功一半以上了。
四、组网!
这一步主要是将所有需要进行组网的设备都连接在ZeroTier网络,实现内网穿透。
当前主要以Linux/Windows/Android进行讲解。
- 终端设备安装ZeroTier
Linux和Windows的操作基本都是一样的,安装完成后是命令行的方式进行操作,没有GUI,而Android是有界面的。
- 连接ZeroTier网络
Linux:使用命令zerotier-cli -v
查看是否安装成功,如果出现版本号则安装成功,之后输入命令zerotier-cli join 你的组网ID
即可连接,后面会显示出连接成功例如“join 200!”等提示,表示连接成功。
Windows:同样打开终端,版本号查不查都行,连接的方式和Linux一样。
Android:有手就行(
- 授权
当连接成功后,ZeroTier的控制台的Members设置页就会出现终端的公网IP地址、ZeroTier版本号、设备在线情况等一些内容,这是只需要在Auth
选项后面授权(打勾确认)即可加入到你的组网,然后ZeroTier会自动分配ZeroTier的IP给对应的终端,这时只要ZeroTier网路中的终端设备大于等于2台,那么他们能连接上互联网,那么就能在任何有网络的地方互相连接,实现异地组网。
五、ZeroTier是如何实现组网?
ZeroTier使用一种称为软件定义广域网(SD-WAN)的技术来实现组网。它利用了点对点加密技术,通过连接全球数据中心以及用户设备来创建一个虚拟的全球网络。当设备加入ZeroTier网络时,它会被分配一个唯一的ID,并通过加密通信与其他设备建立连接。ZeroTier借助全球的服务器和节点进行路由,使得用户设备可以跨越不同的网络、防火墙和NAT设备进行通信,这样用户可以很容易地建立安全的私人网络。
ZeroTier的设计初衷是尽可能实现点对点(P2P)通信,以提高网络性能和数据传输效率。当两个设备可以直接建立P2P连接时,数据会直接在它们之间传输,而不需要经过中转服务器,但是若无法实现P2P连接,则会采用中转服务器来进行转发。
六、异地组网的好处
- 云存储:不需要经过第三方服务器,只要组网内不存在陌生设备,这种通信几乎是没什么安全隐患的。
- SSH连接:服务器使用SSH连接带来的用处是很大的,这取决于使用者,现在市面上的云服务器非常贵,少则每月上百,多则上千上万,拥有自己的服务器既能把限制终端利用起来,还能对计算机网络有实质的了解。
- 游戏串流:串流本质上是远程控制电脑,但是它的延迟是经过优化的,它能最大程度上呈现被控制主机的画质、反应速度,并且针对游戏专门做优化,串流一般用来控制远程电脑玩游戏。
- 拥有仿公网IP:虽说NAT能缓慢IPv4的消耗速度,但是经过NAT的IP叫内网,内网是无法连接互联网的,而当今拥有一个公网IP既不容易又不固定,采用内网穿透能解决这种问题,但可惜的是,ZeroTier并不能有效解决IPv4枯竭的问题,它本身还是需要依靠公网IP。
- 上述只是冰山一角,异地组网的用处远比想象中要好。
七、ZeroTier的缺点
- 穿透失败:所谓穿透失败就是在ZeroTier的控制台本来显示两台终端都在线,但是就是无法通信,这种情况极大可能是NAT设备限制或者被墙,这时建议切换网络再测试。
- 容易被墙:这一点我目前的解决办法是换网,或者开一会加速器。