Campus Network Router Connection with Web Authentication
需求
由于校园网络的设备数量限制,我想使用校园有线网络连接自己的路由器,以解除设备数量限制,并实现所谓的硬件VPN,通过路由器将流量转发到代理服务器,这样在这个路由器形成的网络中的设备就不需要启动VPN软件,从而省去一些麻烦。
难点与解决方案
校园网络与家庭网络不同,需要进行网页认证才能连接。起初,我以为可以直接购买一台现成的路由器(ASUS
TUF
AX3000)进行认证,但结果发现认证界面不会弹出。于是我购买了一台软路由R2S(本质上是微型计算机),并安装了OpenWrt系统作为上级路由器,因为它本质上是一个嵌入式Linux系统,带有命令行工具,我可以使用curl命令向校园网络认证界面(华中科技大学使用192.168.50.3)发送HTTP请求以实现登录。至于VPN,我只需在软路由软件中配置订阅的代理服务器地址。是的,本质上它仍然是软件VPN,但由网关处理。
过程演示
设备准备
一台路由器,一台软路由,两根网线,一台计算机。
使用网络数据包捕获获取校园网络认证的HTTP请求内容值
首先,将一根网线的一端连接到校园有线网络端口,另一端连接到你的计算机。通过浏览器访问校园网络认证界面,最好禁用WiFi。提前输入你的账号和密码,但不要点击登录。

进入开发者模式
按F12进入浏览器的开发者模式,简单浏览一下,了解网页的逻辑,特别是登录功能。

在POST位置设置断点
就像正常调试代码一样。 
点击登录以获取内容值

使用curl命令发送请求
编写一个shell脚本,或者根本不写。
在使用chmod命令赋予其执行权限后,执行脚本。如果返回值为“success”,则表示命令执行成功并完成校园网络认证;如果不成功,请重复内容获取操作,因为我第一次也失败了。
配置软路由
安装OpenWrt系统
由于GitHub上有许多开源选项,效果应该相似,所以可以选择任何一个。大多数在淘宝上购买的软路由都是预装的。如果你有一台全新的机器,可以参考下面的视频安装OpenWrt系统。
访问软路由后台
将TF卡正确插入软路由,并确保软路由上的sys指示灯正常。

将一根网线的一端连接到校园有线网络端口,另一端连接到软路由的WAN端口。将另一根网线的一端连接到软路由的LAN端口,另一端连接到你的计算机。此时,计算机和软路由处于同一局域网。通过浏览器访问软路由的IP地址(通常由卖家提供;如果没有,可以检查网关的IP地址或禁用DHCP进行手动分配)并使用用户名和密码登录。

在命令行中使用curl命令
访问软路由的命令行工具,并使用上面编写的curl命令进行校园网络认证。最好尝试ping一下百度,看看是否有效。

配置互联网访问
我使用的是内置软件OpenClash。你可以使用任何代理软件,然后像在其他设备上一样通过输入订阅URL进行配置。

配置硬路由
由于软路由无法像普通路由器一样发送无线网络信号(至少我的入门级机器无法),你需要使用真正的路由器发送WiFi信号或提供更多的有线网络连接端口。我的ASUS路由器就是为了这个目的。重点是连接到软路由LAN端口的电缆,将原本连接到计算机的端连接到路由器的WAN端口。当然,你也可以将其连接到LAN端口,但需要使用路由器的AP模式。不同之处在于,当连接到WAN端口时,软路由成为上游路由器,无法通过输入其IP地址访问软路由的后台(至少以我目前的技术水平);而连接到LAN端口时,软路由与我们的设备处于同一局域网(此时,路由器就像一个具有无线功能的交换机)。
我将其连接到WAN端口,然后使用任何可以访问互联网的设备连接到WiFi信号,并根据路由器背面的信息(如名称和密码)完成初始路由器设置。这个过程相对简单,不再详细说明。
最后说明
由于学校电力和网络中断的限制,导致设备在夜间断开连接,我们不能每次都重复登录软路由后台以连接校园网络。然而,似乎在启用无缝认证后,即使在断开一段时间后也能自动重新连接。我仍然计划在有时间时编写一个自动登录和登出脚本,以遵守学校规定。
上述方法确实适用于我的情况,而我购买的路由器本身支持刷机。实际上,对于不需要认证的一般家庭网络,你不需要软路由。一些ASUS路由器系列支持刷Merlin固件,本质上是为ASUS路由器适配的OpenWrt系统。由于我还没有找到更好的解决方案,只能维持现状。软路由更多地作为一个辅助路由器,专门为家中的电视盒子提供广告拦截服务,或进行流媒体加速,最重要的是,能够访问互联网观看外国流媒体软件。



