网络折腾2025.07约 7 分钟

把宿舍校园网折腾成双 WAN

一台刷入 ImmortalWrt 的 RAX3000M、两根千兆网线,加上 VLAN、MWAN3 和自动认证脚本。我把宿舍网络从能用折腾到了更快、更稳定。

  • OpenWrt
  • 双 WAN
  • MWAN3
  • 自动认证
原文发布于 CSDN · 2025-07-14 ↗原帖同步

为什么开始折腾

中南大学校园网最多允许三个设备同时在线。为了让宿舍里的设备都能稳定联网,我开始研究路由器刷机,后来又想把两条链路一起用起来。

当时使用的是 RAX3000M,系统刷成了 ImmortalWrt。宿舍座位面板接出的网线只有百兆,直接限制了有线速度;从宿舍 AP 接千兆网线到路由器,单条链路能跑到约 400 Mbps。两条链路做多线程负载均衡后,测试峰值超过了 800 Mbps。

完整的界面截图、配置位置和脚本在 CSDN 原文 中。这里主要记录方案怎么形成,以及后来修过哪些问题。

用 VLAN 划出第二个 WAN 口

这台路由器有一个物理 WAN 口和三个 LAN 口。我从 LAN 口中划出一个接口作为第二个 WAN,通过 VLAN 将原有 LAN 和新增 WAN 分开。

划分以后,还要同步修改 br-lan 对应的设备,并新建 DHCP 客户端接口。两个 WAN 接口的网关跃点必须不同,否则路由选择会出问题。接好两根网线后,两个接口都能从上层网关获得地址,才算完成这一阶段。

用 MWAN3 做负载均衡

MWAN3 中分别建立两个接口和成员,再创建包含两条链路的 balance 策略。两条链路速度接近,所以权重都设为 1。

这种方式提升的是多线程传输的总吞吐量。单个连接不会凭空变成双倍速度,下载器、测速工具或多个设备同时使用时更容易看到叠加效果。

掉线后自动认证

校园网断线以后需要重新认证。我分析了登录页面的网络请求,确认认证依赖账号、密码和当前 WAN 接口获得的 IP。随后为两条链路分别写了恢复脚本,并让 MWAN3 在接口断开时调用对应脚本。

第一版脚本把 IP 写死了。路由器重启后地址发生变化,认证就会失败。后续版本改为运行时读取接口 IP,再构造请求。账号和密码只保存在自己的路由器中,文章和仓库示例都使用占位值。

重启以后又踩了两个坑

第一个问题是 MWAN3 启动太早。路由器刚开机,网络接口还没准备好,MWAN3 已经开始检查,于是接口会显示禁用。我把启动顺序调到网络初始化之后,问题才稳定消失。

第二个问题是开机不一定触发「断线」事件。只依赖 MWAN3 通知,首次认证可能不会执行。最后我在本地启动脚本中等待网络初始化,再主动运行一次多接口认证脚本。

最后的效果

路由器重启后会完成首次认证;接口掉线时能触发重登;两条链路在 MWAN3 中保持在线。这个方案在铁道校区学生宿舍实际使用过,解决了设备接入、重复登录和带宽受限三个具体问题。

它也留下了一个很典型的教训:配置页面显示正确,只能说明静态设置差不多了。开机顺序、动态地址和故障恢复,要在真实运行中反复测试才能发现。