最近大一新生们开学了就有几位学弟来问我说咱们学校的校园网要怎么才能开 WiFi 热点能不能用路由器回想一下当初我也折腾了好一段时间本来想水篇博客的后来不知道怎么的就咕咕咕了……正好借此机会分享一下

其实吧学校有的是办法搞你除了强制一人一号恶心的专用拨号客户端防共享以外还能通过 IPIDTTL时钟偏移检测甚至是 DPI 深度包检测的方法来防私接就看校方做得够不够绝了当然破解的方法也有但基本也不会让你好受如果碰到这样的校园网推荐你直接躺平给这种垃圾网络交钱还不如开个无限流量套餐呢

免责声明日后你惹出祸来不把师父说出来就行了.jpg

校园网的限制

先说一下我们学校校园网恶心的地方接入网线后你需要

  1. 使用软件A进行第一次拨号
    • 软件A会进行多网卡检测如果你的系统里有一个以上的网络适配器则拒绝拨号
    • 上述网络适配器包括硬件网卡USB 网卡无线网卡和虚拟网卡各种虚拟机的虚拟网卡TAP 网卡等
    • 认证类型为 802.1x 认证
  2. 使用软件B进行第二次拨号
    • 软件B不检测网卡但会拒绝在虚拟机中运行如果宿主机开了 Hyper-V 还会误报
    • 检测猎豹 WiFi360 WiFi 等共享软件的进程
    • 认证类型为 L2TP VPN

而且这两个软件只能在 Windows 上跑macOSLinux 用户就干瞪眼吧

其实说到这里有些人应该都心里有数这俩软件是啥不过我这里就不明说了懂的都懂x

接下来来看一下网上常见的破解方案也就是路由器拨号

据说网上有很多人在卖所谓的校园网路由器其实说白了就是刷了 OpenWRT 的路由器 + 破解校园网的插件如果有现成的插件能用那自然是最好刷个固件也不是什么难事但不幸的是目前网上并没有针对软件A新版本的拨号脚本而旧版本的已经不再适用于我们学校的网络了除非另有大神愿意开发新版本的拨号脚本否则这条路是行不通的更何况我们这还要二次拨号更是难上加难

taobao-campus-routers

而如果想要在电脑上直接分享热点第一会被检测多网卡第二可能会被检测进程

emmmmm……🤔

那么让我们的网卡不被检测到不就行了

使用虚拟机绕过网卡检测

这个方法其实是以前我偶然发现的

当时我在用虚拟机捣鼓 Kali Linux用了 VirtualBox 的 USB Passthrough 功能把 USB 外接网卡穿透进虚拟机给 Kali 使用此时宿主机操作系统里是看不见这个 USB 网卡的设备管理器网络适配器里都没有就像不存在一样不存在……

于是我翻箱倒柜找出了几年前凑单买的小米随身 WiFi在虚拟机里一通操作

vm-windows-xp-miwifi

成了

如何配置搜索VirtualBox USB 网卡即可

看来虚拟机的 USB 直通确实可以避开校园网认证客户端的多网卡检测而且客户端也并没有对 VirtualBox 做什么手脚后来查了一下据说软件A会干扰 VMware 的 NAT 网络共享服务……那么能做的事情可就多了

使用有线网卡桥接路由器

上面的方案能用是能用但效率过于低下

  1. 虚拟机系统没必要用 Windows就算是 XP 也是性能浪费
  2. USB 无线网卡孱弱的 WiFi 性能不足以满足我的需求
  3. 每次开机都要启动虚拟机操作繁琐复杂

既然要用得爽那肯定得把这些问题解决了

首先把 USB 无线网卡换成 USB 有线网卡下联硬路由作为 AP同时把 Guest OS 换成轻量级的 Alpine Linux 并实现开机启动完成后的网络拓扑图类似这样综合考虑最后还是选择了两层 NAT

network-topology

首先在虚拟机内安装 Alpine Linux 和对应的网卡驱动注意不要用 virt 版本的内核很多驱动都被精简掉了

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether [mac addr] brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether [mac addr] brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether [mac addr] brd ff:ff:ff:ff:ff:ff

添加网桥把 USB 网卡和虚拟机的虚拟网卡桥接到一起

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl show

启动网络

ip link set dev eth1 up
ip link set dev br0 up
ip link show

删除之前分配给虚拟网卡 eth0 的 IP并启动 DHCP 客户端为 br0 获取 IP 地址

ip addr flush dev eth0
udhcpc -i br0
ip addr show

此时应该虚拟机内有线网卡端都能访问网络了可以通过 ping 测试一下

可以用的话就永久保存网络配置

vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
        hostname alpine-vm
        bridge-ports eth0 eth1
        bridge-stp 0

接下来把 USB 网卡和路由器的 WAN 口用网线连接起来测试是否工作正常如果想省一层 NAT可以连到 LAN 口上并关闭路由器 DHCP 功能就当个单纯的 AP 使用不过我为了相对稳定的内网环境还是选择了前者

router-interfaces

一切正常的话就可以愉快地使用 WiFi 啦

如果想要让 Alpine 虚拟机开机后台运行可以使用 VBoxHeadlessTray 这个程序

virtualbox-alpine-booting

当前方案的不足之处

至此我们的校园网网络共享方案已经算是比较完善了

幸运的是我校似乎并没有部署其他什么防私接技术像这样用了半年多也一直相安无事省下我不少流量费

然而这个方案还是有些不爽的地方

  1. 作为主机的电脑和其他设备不在一个子网下
  2. 电脑必须一直开着其他设备才能有网

在这套方案下路由器下联的设备对于主机是几乎不可见的不然也绕不过校园网分享限制了你可以在其他设备上访问主机上的网络服务VirtualBox 的 NAT 网络里宿主机的 IP 一般为 10.0.2.2子网下的设备可以直接访问效果和主机上访问 localhost 基本一致但无法反过来访问子网里的其他设备

虽然你也可以通过 VirtualBox 的端口映射实现一些变通的解决比如把路由器的 2280 端口映射到宿主机上方便访问但 SMB 这类服务就不行了Windows 访问 SMB 服务器时强制端口为 445无法手动指定要改只能改注册表所以我完全无法在主机上访问子网下的 NAS 设备

这也太难受了继续改进

既然这些软件都需要跑在一台 Windows 机器上那我专门弄一台机器来跑校园网相关的东西不就好了吗

入手双网口工控机软路由

于是我把目光投向了最近几年很火的软路由

就像计算机有软件和硬件的区别路由器也有之分通常我们在各个电商平台上搜索路由器这三个关键词所得到的几乎所有商品都属于硬路由它是由路由器厂商基于自行开发或是开源的嵌入式设备操作系统根据特定的硬件设备设计出来的传统硬件设备

而与之对应的软路由是基于软件工具在普通的硬件上来实现传统路由器的功能我们可以在旧电脑工控机开发板服务器甚至是硬件虚拟机中安装软路由系统然后通过强大的软件实现各种各样的功能

——从听说到上手人人都能看懂的软路由入门指南

一番比较后我在某鱼上入手了一台二手的双网口工控机安装 Windows 7 系统后将上面的所有校园网相关的软件都转移到了这台低功耗小主机上

至于为什么买双网口的机器虽然 VirtualBox 只能直通 USB 网卡所以还是得外接不过考虑到以后不用校园网了还可以原地变身软路由所以不如直接一步到位买个好点的毕竟现在 CPU 差不多的也就几百块没必要省那点钱买个电子垃圾

写在后面

这套方案我用了一年多基本上没啥问题24 小时开机低功耗子网设备无感知爽到

另外不要怪我写得这么笼统毕竟每个学校的校园网都不太一样很难写出一篇普适性的教程这篇文章充其量算个 PoC证明一下只要能折腾还是能捣鼓出舒适的宿舍网络环境的

如果你是大佬甚至可以写个软件实现一样的功能隐藏网卡软件 NAT 啥的不过我是菜鸡也不想在这上面花太多心思所以就这样吧又不是不能用.jpg

至于这么折腾值不值得那就见仁见智了至少我是愿意的你不让我开热点我就不开那我岂不是很没有面子老子又不是没交钱凭什么

smiling-dog

最后祝各位早日摆脱傻逼校园网