使用各种方式绕过校园网认证--然而还是没有绕过

最近折腾这个折腾了好久,可惜最后还是没能成功。本来以为这个学校的校园网认证有漏洞,不过是我太天真了,所以最后也不得不宣告失败,不过以后如果真的绕过了,那我一定会把标题改掉,还有把方法写在下面。。。

我大概也从网上找了各种方法,这里都写一下把。

UDP53端口

在没有登录校园网的情况下我们输入下面的两条命令

ns lookup baidu.com
ping baidu.com



先说一下具体的原理:
当我们连上校园网的无线路由器后,虽然上不了网,但是我们的计算机却分配到了IP地址(那么为什么要给我们分配IP呢?很好回答啦,不分配IP地址web认证就实现不了呀!)此时若我们进行一些上网的操作,例如访问百度主页,那么计算机的数据包将从TCP443端口上发出,校园网网关就会拦截从这个端口上发出的数据包。同理从其它端口上发出的数据包也会遭到拦截。
但是有一个神奇的端口,从这个端口发出的数据包不会遭到网关拦截,它就是UDP53端口。对计算机网络稍微了解的朋友应该知道在UDP53端口上运行的协议是DNS协议(域名解析协议)也就是说我们现在可以正常查询网站域名对应的IP地址。
说的直白一点就是当你没有登录的时候,你的所有端口都会被关闭,你无法连接,但是有个别端口因为需要会被放开,所以我们可以利用这个被放开的端口进行数据传送。
当然,默认还可能放行 UDP 67 68 69 号端口,这个看具体的学校。
这里顺便说一下这些端口的用途。
53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
DHCP用的端号是UDP67和UDP68,这两个端口是正常的DHCP服务端口,你可以理解为一个发送,一个接收。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
这里有一个项目用来检测是否可以利用53端口的项目
大家直接下载realease就可以了,然后运行UDP53.exe,如果出现了congratulation字样就可以自己利用53号端口搭建VPN服务了,如果是bad face的话,我们就只能使用DNS隧道了。。。
而我们的学校并没有完全放开udp53端口,估计现在很多学校的这个漏洞都修复了吧。

搭建openVpn服务

openvpn搭建比较复杂,我本人也没有闲情去搭建,所以我直接采用一键搭建脚本。这个脚本适用于多个系统。

#下载项目
git clone https://github.com/Nyr/openvpn-install.git
#切换到项目路径
cd openvpn-install/
#给脚本执行权限
chmod +x openvpn-install.sh
#执行脚本(需要root权限,或者自己加上sudo)
./openvpn-install.sh

这个脚本运行很简单,只需要你输入一些信息就可以自动安装并生成ovpn配置文件,具体怎么填我就不多说,应该看的懂上面的英文。
然后我们根据提示,把生成的文件下载下来,然后自己电脑安装openvpn客户端
可能需要翻墙,这里我给大家自己下载好的链接:https://pan.xiaoyou66.com/s/kjaamkfo
自己打开这个软件,然后导入配置文件就可以直接连接了。。。

Softenter Server服务搭建

感觉命令行的操作非常不方便,有没有图形化的方式?你别说还真有,那就是大名鼎鼎的SoftEther.

搭建服务端

根据你自己的系统位数合理选择

#32位系统
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x86-32bit.tar.gz
#64位系统
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
#自己解压缩
tar zxf 压缩包名字
#切换到解压目录
cd vpnserver
#编译
make
#编译的时候自己连续输入3个1就可以开始安装了
#还有下面的几个相关的命令
#开启服务
./vpnserver start
#关闭服务
./vpnserver stop
#修改密码
./vpncmd
#依次输入1,回车,回车后会变成VPN Server
#然后在这个命令行里面输入下面的命令设置一下密码
ServerPasswordSet


到这里,服务端就安装好了,下面我们下载客户端连接我们的服务端。这我也贴一个服务端的链接把。https://pan.xiaoyou66.com/s/eypjyb3i

这里简单设置一下然后就可以连接自己的服务器了。

这个是管理界面,里面可以自己设置多种协议的VPN,我个人也是小白,我用这个搭建的OpenVpn没有用,我也不知道什么原因。。具体怎么用大家可以看一下第4篇参考文章。

用v2ray绕过校园网

当然,除了v2ray,ssr也是可以拿来绕过的,其原理都是一样的。只要可以修改端口就可以了,当然前提是你自们校园网完全放行53号端口。。所以我这个自然也是没用的。

服务端搭建

下面说一下搭建教程(也给自己做个笔记223)

bash <(curl -s -L https://git.io/v2ray.sh)

 


后面出现端口选择的时候我们自己选一下53即可,我这里就自己随便选择一个
然后是开启广告拦截,我们关掉即可
后面是开启shadowsocket,我这里选择的是打开
后面是shadowdocket端口,自己随便选一个
后面是密码,自己随便设一个
后面是协议,大家同样可以随便选择,我这里就是选择默认的
最后我们只需要按一下回车就可以搭建好了,这个一键安装脚本非常简单,所以大家就算全部默认也没问题。
最后就会出现成功的信息,我们记下来就可以了。。
这个是我在自己那本地服务器上搭建的,所以你们是连不上的。。。

客户端连接

我们自己去下载一个v2rayn的客户端。这个好像要翻墙才能下载。。。不过我这里也顺便贴一下下载链接(windows64位的,其他的我就不贴了)
连接直接安装那个屏幕上的填就好了。。。

我那个ip地址填的是局域网的ip。

我这里本身就是连的我的路由器局域网,所以测试好像无法访问谷歌,不知道怎么回事。。。

校园网里搭建VPN服务器

也许你寝室会断网,但是其他比方,比如办公区或者你的实验室有网。那么你就可以在这个不会断网的地方搭建一台vpn服务器,然后自己直接在断网的时候连接就可以了。这个具体我就不多说,比较简单,不过你要先登录你的校园网。要不然局域网也无法ping通。。。

DNS隧道

如果上面的方式都,那么我们就只能采取最无奈的方式了,那就是DNS隧道。

注意

dns隧道虽然可以用,但是网速非常慢,毕竟别人设计来就不是传输数据的,非要强行传输数据[的话速度肯定是很慢的。。。

实现DNS隧道有许多种方法,这里使用工具dns2tcp来实现。先来解释一下原理。。

域名解析

首先我们先先到域名解析那里解析一下。。。
我们添加两条记录

服务端安装

然后我们直接安装dns2tcp,现在主流的linux发行版都可以直接在软件仓库里面下载。

 apt install dns2tcp

然后我们配置一下dns2tcp的配置文件。

其中的key字段值为口令,可以防止不知道口令的人连接到本机的dns2tcp服务。好了,我们只需要启动就行了。 输入下面的命令就可以在后台运行dns2tcp服务了

#创建后台会话
screen -S dns2tcpd
#启动dns2tcp
dns2tcpd -f /etc/dns2tcpd.conf -F -d 2

出现下面画面说明启动成功。

我们此时按下Ctrl + a+d键,让dns2tcp进程后台执行,再关闭与服务器的连接就行了。

客户端使用

下面我们下载客户端,好像也需要科学上网。。。我这里还是贴一个链接把。
自己下载,然后用cmd切换到软件的下载目录,输入下面的命令
dns2tcpc -r ssh -z dnsa.xiaoyou66.com 服务器ip  -l  8888 -d 2 -k 自己设置的密码
出现下面的画面说明启动成功

此时我们需要让cmd窗口最小化,不要关掉。
下面我们使用xshell吧和这个转换为socket5通用代理。先建立一个SSH连接

然后到隧道那里自己新建一条转换规则。

然后自己就可以开始尝试连接了。你点击一下不一定可以很快的连接,你需要多试几次。
如果出现下面的内容,说明已经连上ssh了

好了,我们已经连接上我们的服务器了

下面我们设置一下代理

最后我们自己断下网,测试一下,如果可以访问,那么就代理成功了。。不过可惜我们的校园网太强了,DNS隧道也没用。。。估计这个漏洞也被修复了223.
这些测试都只是有网的情况下测试的,所以根本就没什么卵用。。。

总结


虽然上面的方法都失败了,不过在这个过程种还是学到了很多了,让我窥见了大佬们的智慧思想,同时也对网络有了更深的理解。说实话,如果你真的想上网的话,还不如自己用手机开热点。。怎么说呢,折腾的过程比结果更加重要。不过这个没有绕过校园网还是让我很不爽,以后要是找到了什么好方法还是可去尝试一下的,或者如果你有什么好方法也可以在下面评论。。

参考文章:

1.UDP 53 免费上网、DNS 隧道经验谈
2.SoftEther VPN Server 安装笔记
3.openvpn-install
4.绕过校园网web认证
5.利用v2ray绕过校园网认证
6.使用DNS隧道绕过校园网认证
7.绕过校园网WEB认证_dns2tcp实现