此文章涉及:
Zerotier速度慢的解决办法
Zerotier实际应用展示
Zerotier简单实用教程
技术背景
在经过接近一个学期的互联网安全的学习,我接触到了网络的很多种攻击,渗透与防守的方式。从这个学习的过程中,我深刻的了解到,如果想要对网络主机进行渗透,首先要对网络结构运行的原理掌握的非常透彻,才能够从中找出攻击和防守的办法。网络上的攻防,主要是利用网络本身的特性与协议设计时的缺陷等来进行的。
另外,从互联网安全的攻防的实践出发的话,主动防守的话如果没有攻击方的话看不出来效果,主动攻击的话,由于目前IPv4的地址池缺少等问题,大部分个人主机都处于路由器NAT的保护下,并不会对公网开放网络接口,因此主要的攻击手段主要为使用木马,病毒等方式感染目标机,令目标机主动接受控制指令。如果只使用单纯的网络攻击的话,目前大部分拥有公网IP的主机都是服务器。在没有向服务器管理人员取得渗透测试许可的话,直接对他人服务器进行渗透工作属于违法行为。因此直接在公网进行渗透,不仅可能有违法风险,同时服务器的安全措施一般来说都非常严密,很有可能无功而返。
因此,本论文主要讨论搭建虚拟局域网的工作,一是可以为接下来的渗透测试工作可以穿过公网,有更好的借鉴意义,二是虚拟局域网本身就具有一定的实用性,如在宿舍或外出时使用虚拟局域网连接工作主机或NAS服务器,进行继续工作等。
技术介绍
虚拟局域网实质上是一种内网穿透,而内网穿透实际上是一个存在了很久的技术。但Zerotier和传统的内网穿透技术有着很大的不同。类似于FRP、Ngrok
这样的反向代理程序,通过服务器转发数据来达到外网访问的目的,这样就需要自己有个
VPS,或者使用他人搭建的服务,据我所知的免费服务都是限速的,要是自己搭建的话,体验就要看服务器的网络质量了。
Zerotier在连接的过程,服务器不起到一个中转的作用,只是起到了一个认证的作用,其在工作的时候为每一台虚拟局域网设备做认证,如果有一台虚拟局域网内的主机打算访问另一台虚拟局域网内的主机的话,其会访问Zerotier的服务器,服务器获取两台主机的信息,并为他们做好自动的打洞,让主机双方可以拿到一个临时的公网IP,然后Zerotier服务器不再干涉后续的数据传输,两台主机实际上是P2P传输,可以达到很高的带宽,不受中转服务器的速度限制,也不吃中转服务器的带宽。
需要注意的是,服务器为双方主机打通P2P通道需要网络环境协议的支持,如果存在某一方主机无法打洞获得临时公网地址,那么将无法建立P2P连接,Zerotier会作为传统的中继服务器为双方保持通信,这会导致网络质量的急速下降,我们在设计的时候应该要极力避免这种情况。
环境搭建
Zerotier支持多种平台,如Windows,Linux,Android和Mac。在这里我们使用最为常见的Windows平台做虚拟局域网的主要平台,需要在官网进行下载并安装。此时安装完毕后Zerotier将作为一个系统服务运行,同时会在网络适配器中增加Zerotier的虚拟网卡。在这个测试环境中我安装完成后的软件版本信息如下。注意所有需要加入虚拟局域网的主机设备都需要安装该软件。
在软件安装完成后,我们需要创建一个属于自己的虚拟局域网。在创建之前我们先需要在官网创建我们的账号。创建账号的过程较为简单在此不再赘述。免费的账号可以允许局域网里面加入50台主机,对于个人而言是完全够用的。创建账号完成后我们需要为其创建一个虚拟局域网络。点击该软件右键,点击Zerotier
Central即可进入账户的控制面板,点击上方的Network,点击Add
Network,输入虚拟局域网的名称即可创建好一个虚拟局域网。
在网络创建完成后,服务器会为这个网络分配一个网络ID,然后我们需要在我们的客户端右键中点击Join
Network,输入我们刚刚创建的网络ID,就可以申请加入。如果我们在创建网络的时候选择认证方式为Public的话,那么网络就已经加入完成了。该网络可以由任何人加入,会缺少安全保障。因此大部分网络创建的时候是private形式的。如果是private形式的网络,我们还需要在刚刚的网络中心里点击刚刚创建的网络,在里面的控制面板中允许刚刚我们加入的主机的Noid
ID,这样就可以控制局域网的私有性。
网络环境优化
由于前面所提到的,Zerotier是利用P2P连接,最大化提升虚拟局域网的带宽,因此,P2P的链接是否能够成功建立对网络环境的影响至关重要。可以在开始菜单右键,点击"命令提示符(管理员)"或是管理员权限的powershell打开一个系统终端,输入zerotier-cli
peers
查看虚拟局域网内各主机的链接状态,DIRECT说明是成功建立P2P链接的,如果出现RELAY或不能获取到对方主机的ip地址的话,这说明P2P并没有成功建立,当前由Zerotier在进行中继链接。如果发生了中继链接的话延迟会大大的提高,ping指令的延迟会达到1000ms以上,甚至超时,无法胜任虚拟局域网的大部分工作。以下是几种避免中继的方法:
-
uPnP。Zerotier的P2P连接是通过uPnP协议来进行握手的。目前大部分路由器都会有upnp的选项,如果发生了连接中继,我们应该在所有的终端主机的路由器上确认upnp是否打开。
-
NAT等级。路由器的NAT等级也会影响p2p连接穿透的效果,如果路由器的NAT使用的是Full
Cone NAT,那么连接是最为可靠稳定的。如果发现当前所处的网络环境属于Symmetric
NAT 的话,则基本是没有办法在IPv4上打洞的。
-
IPv6。如果前面的网络环境都没有办法改善(如没有路由器网关的控制权限等),但主机可以拥有IPv6的话,可以试图使用IPv6来进行工作。由于IPv6的地址池庞大,且当前地址池可以允许全球拥有IPv6地址,所以使用IPv6来建立Zerotier连接,实际上是不需要穿透的,因为大家都可以互相获得IPv6的工作地址。如果要启用IPv6,需要确定路由器,ISP,以及自己的主机设备都要支持且开启IPv6相关服务。软件如果可以通过IPv6通信,会进行自动切换。
-
自建中转。如果上面的方式都无法成功的建立,只能使用RELAY方式的话,由于Zerotier的官方服务器在外国,中继延迟会十分的高,我们可以使用自定义Zerotier中转服务器来提高中转的效率,在直连的时候还可以提高P2P握手的效率。
使用效果展示
在搭建完成并建立P2P链接后,即可以使用最高性能的虚拟局域网进行业务通信了,下面将进行网络延迟,网络带宽,实际体验三方面进行展示。
测试环境参数
主机1:学校内宿舍电信网络主机,带宽100M,Windows环境,IP:192.168.191.3
主机2:学校内教研室教育网教研室主机,带宽未知,Windows环境,IP:192.168.191.2
延迟测试
在命令提示符下使用指令ping 192.168.191.2 -t
获得结果如下,以百度(www.baidu.com)的延迟测试作为对比。
可以看到,P2P状态下,虚拟局域网的访问延迟还低于百度的延迟,由于百度有做CDN和负载均衡等网络加速,其基本代表外网访问延迟的较低者,P2P效果可以得到比外网低延迟还低的性能。
网络带宽
在Windows
SMB共享文件系统下,主机1访问主机2的共享文件夹并复制一个压缩包,以平均文件传输速度判断带宽。
可以看到文件的传输速度维持在3MB/s,相当于24Mbps宽带的速度,没有达到宿舍电信网络主机的最高性能,但优于绝大多数的中继式内网穿透服务。速度没有跑满的原因是可能教研室的网络负载较重,教研室主机分到的带宽不足所导致的。
实际体验
实际体验主要分为远程连接服务,远程虚拟机服务,以及局域网文件传输服务。由于局域网传输在网络带宽项进行了测试。因此主要测试前两项。
远程连接服务:使用Windows自带的RDP协议远程连接,在使用前需要先配置好主机允许远程连接。日常使用基本感觉不到延迟,只有在看视频等显示画面变化幅度较快且变化画幅较大的时候偶尔会产生掉帧现象。
远程虚拟机:教研室电脑作为虚拟机服务器,开放虚拟机访问权限,远程电脑可以通过ip地址连接服务器,并远程连接上该电脑里的虚拟机,不需要本机存放虚拟机。虚拟机远程运行后,日常操作基本感觉不到卡顿和延迟,可以识别本地机上的USB设备并连接到远程虚拟机上。
结束语
经过对各台主机进行虚拟局域网的搭建,主机之间的通信效率大大提高,生产,工作更为方便,我们可以在任意一台主机上远程快速访问所有的虚拟局域网内的主机,访问各台电脑的共享文件夹
在搭建的过程中,我们了解了P2P协议建立的各种方法,如uPnP,自建中继服务器,IPv6等相关知识,在实践过程中对这些协议有了更深入的了解。
域网内的主机,访问各台电脑的共享文件夹
在搭建的过程中,我们了解了P2P协议建立的各种方法,如uPnP,自建中继服务器,IPv6等相关知识,在实践过程中对这些协议有了更深入的了解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)