绕过校园网认证,实现校园防断网

我的学校晚上十一点后就断网了,对于我这没有办理手机无限流量套餐的,看着可怜少之又少的流量套餐,断网后,就是一件悲催的事情,不能追剧,不能看动漫,不能刷漫画,很是无奈。最近,听说有位学弟实现了校园防断网,立马请教,学弟发了几片文章让我参考去实现,搞了一两天,感觉我真的手挺拙的,只能时不时地麻烦学弟,折腾了好几种防断网的方式,最后感觉搭建SoftEther实现防断网的方式比较稳。

实现原理

校园网的web认证,我们电脑连接这个wifi或者插上网线实现认证之前,电脑就已经被分配到了一个ip地址,当我们想要上网的时候,网关会修改我们的http数据包,让我们重定向到一个提示要打开网络认证或直接到网络认证的页面。如果没有认证成功,无法得知网关的arp信息,也就无法发送跨网段的tcp连接和http请求,当然无法上网。但是,开启web认证交换机设备默认是放行DHCP和DNS报文,也是就udp53和udp67。当然,这就是我们实现防断网要利用的重点。如果没有对udp53和udp67发送的任何数据包进行拦截,我们可以利用udp53和udp67发送任何形式的数据包,实现不用锐捷认证,就可以上网。
这里有篇web认证的详细说明
http://www.ruijie.com.cn/fw/wt/36502

环境检测

电脑先连上wifi或者插上网线,不要认证。
打开cmd命令行,输入

nslookup wwww.baidu.com


在没有认证校园网的情况下,可以查到ip地址,可以判定没有过滤dns报文
接下来,我们看一下没有放行udp53的所有数据包
先到该githb上下载一下测试工具 https://github.com/BennyThink/UDP53-Filter-Type
linux用户 运行 python UDP53.py
window下的用户运行dist下的UDP53.exe

出现 Congratulations, you may wanna try OpenVPN! 就知道dup53的任何数据包都被放行了。
现在我们可以继续下一步了。

准备

准备一台vps
不建议买国内的云服务器来搭建,因为很多都是限制宽带的,搭建起来网速会很卡。
国外的vps比较好用的就vultr和搬瓦工的,vultr的性价比较高,个人建议买vultr的vps。
vutlr的官网:https://www.vultr.com/
softether的客户端和服务端相关软件可以在下面的链接下载,不过要翻墙。

http://www.softether-download.com/cn.aspx?product=softether

不能翻墙的,这里提供一个百度云盘地址下载
链接:https://pan.baidu.com/s/1OgpdL9Wg3naGNTUeQpDoAQ 密码:ylgn

softether 服务端的搭建

vps的系统环境我选择linux系统ubuntu。
32位:

wget http://cfya.cfyqy.com/vpn_tool/softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x86-32bit.tar.gz

64位:

wget http://cfya.cfyqy.com/vpn_tool/softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz

根据自己的系统选择相应的位数

tar -zxvf 解压该压缩包

进入解压的vpnserver中

cd vpnserver
make

然后输入3个连续的1

继续输入 开启服务

./vpnserver start

然后进行简单的配置
输入

./vpncmd

依次1,回车,回车
接下来输入

ServerPasswordSet

输入管理服务器的密码,两次确定之后,按 ctrl+C 退出管理。

设置开机自启动。
终端里依次输入:

vi /etc/rc.local

在 exit 0 之前写入(start之前目录, 根据自己安装的位置填写)

/root/vpnserver/vpnserver start

保存后退出

softether 服务端的管理

管理服务端

在本地windows上
安装softether 服务端的管理软件

运行该软件后,新设置一个连接,填写相应的配置,填写vps的ip地址和之前设置的softetherr的服务端的密码

成功的连上vps的softether的服务端,开始相应的配置。

新建hub

默认已经建立了一个hub,可以使用默认的hub,我这里新建hub再建一个hub,随意的填写名字 和密码

新建用户

点击test,再点击管理用户,在新建的hub中新建一个用户,填写用户名(随意),密码自己设,连接的验证方式有挺多种的,这里就选择密码验证。

启动SecureNAT

配置 SecureNAT。在虚拟NAT和DHCP服务器中启动secureNAT,查看一下secureNAT的相应配置,保持默认就行,不要修改。

勾选VPN over ICMP/DNS的配置

然后到加密与网络中,点击VPN over ICMP/DNS,勾上那两个功能,校园防断网的实现就靠这个了。

在这里防断网的功能就已经实现了
接下来客户端的四种连接方式的没有必要一一尝试,只要懂得用softether client连接服务端,就可以实现防断网了。

客户端的连接

客户端的连接,在服务端中我么就可以看到有三种连接方式:L2TP加密的连接、openVPN软件连接、VPN Azure连接。当然还有一种连接方式,直接用softether客户端连接。
当然个人实践中能实现防断网的只有softether客户端的连接方式。其他的客户端连接方式就当做vpn用吧

softether client

要想实现校园无认证上网,用这种连接方式比较稳。当然该客户端只有电脑版的,没有手机的客户端,有点遗憾。不过你也可以电脑开热点给手机用,虽然麻烦点。
下载 softether client

新建一个vpn连接,如下图填写相应的配置

然后就可以直接连接了。

L2TP加密协议连接

首先softether 服务端要开启IPsec/L2TP中相应的选项,如下图

这种连接方式实现不了防断网,纯属连接一个vpn翻翻墙就ok啦。

手机端的连接

手机现在都默认有一个vpn的连接功能,填写相应的配置就可以实现vpn连接。
打开手机的设置,找到vpn

添加一个新的连接,填写下图相应的配置,选择L2TP类型,输入服务端上的vps地址、IPsec预共享密钥、test的hub的账户

window系统的连接

找到Win+R调出运行菜单,输入services.msc,回车,弹出服务控制台。
找到Routing and remote access服务,双击打开编辑,设置该服务为自动运行,并启动它

到电脑的任务栏最右下方,找到vpn

添加新的vpn

根据下图进行相应的配置

然后在高级选择中打开,更改适配器选项,找到相应的适配器。右击属性,安全,允许使用这些协议,勾选相应的选项。

然后就能在wifi中找到vpn的连接,就可以连接成功啦

VPN Azure连接

softether 服务端,VPN Azure默认是禁用的, 先开启。

仔细看一下,发现VPN Azure真是骚,不用公网ip,只需要用VPN Azure云服务的主机名,就可以实现连接。

pc端的连接。找wifi中找到网络和internet设置,找到共享中心,建立新的连接或网络。

选择连接到工作区

选择否

使用我的网络连接

输入VPN Azure云服务的主机名。

在WiFi出找到该连接,进行连接

openVPN连接

openVPN这种连接方式不太建议,个人体验,感觉很差,经常连接不上去,网速又慢。
softether服务端的配置
监听的udp端口要选择53端口。看了网上的教程都说 这样可以实现防断网,不过我个人是没有成功过。然后生成样本配置文件。 确定。

pc端或手机端的配置
将生成的样本配置文件中的 文件名为iznbnu828xckp1z_openvpn_remote_access_l3.ovpn复制到openvpn的安装目录的’config’中

运行该软件,输入hub中用户名和密码开始连接

这一次又连接失败,当那个黄色的是绿色的时候,才是连接成功。

pc端防断网测试

现在我插上网线,没有用锐捷客户端认证,现在处于没有网络的状态。

可以softether客户端的连接,连接上了,仔细看右下方多了一个网络3的连接,说明我们已经连接上softether 服务端vpn了。现在,没有认证客户端,可以看到vpn适配器在发送数据包,所以说可以上网 。

我们游览YouTube,真的可以观看。

网速测试

vultr 日本节点的vps

阿里云服务器:

在这里我们可以看到连接到vultr的vps网速比连接到阿里云的网速快得超多的,所以,个人还是建议搭建在国外的vps,不但能防断网,还是翻墙。

参考文章:
https://www.bennythink.com/softether-vpnserver.html
https://www.bennythink.com/udp53.html

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器