【OpenWrt】通过MWAN3实现校园网多账号速率聚合

背景与前置条件

坐标海南大学,校园网是通过跳转到认证页然后输入学号和密码来进行验证的。本宿舍经过个人测试,(实际上是木棉公寓新宿舍独享限制)学校为每人限制了200Mbps的总带宽上限(实测~190 Mbps),且单流的带宽为100Mbps(实测~95 Mbps)。那么理论上每多一个聚合账户,带宽至少增加100Mbps

需要一台刷了OpenWrt的路由器,然后安装mwan3和luci-app-mwan3(一个是服务一个是面板)

要聚合的校园网账户应该小于等于路由器的wan口+lan口数,并且小于学校路由器的lan口数,再准备多根网线。我这边是聚合两个账户,我插了两条线,一条在路由器的wan口,一条在lan4口,那么只需要在路由器后台把物理上的lan4口也转换成wan口的功能就行了。

正片开始

lan口转wan口阶段

LuCI 里没有”把 LAN 口变成 WAN 口”这个按钮。这件事实际是两步拼起来的:
1.把这个网口从 LAN 桥里摘出来——它才不再是 LAN
2.给这个裸网口建一个新接口并划进 WAN 防火墙区——它才成为 WAN

第一步,摘出桥。 路径是 网络 → 接口 → 设备
  • 找到 br-lan 那行,设备类型显示”桥接设备”(Bridge device)
  • 点右侧配置
  • 在桥接端口(Bridge ports)里,去掉 lan4 的勾
  • 保存
第二步,建 WAN 接口。 回到 网络 → 接口 → 接口 标签页
  • 左下角“添加新接口”
  • 名称:wan2 —— 后面配 mwan3 要用这个名字,必须和这里一字不差
  • 协议:DHCP 客户端
  • 设备:下拉选 lan4
  • 点创建接口

弹出的编辑框里,三个地方都要动:

  • 高级设置 – 使用网关跃点数(Use gateway metric)- 20
  • 高级设置 – 使用对端通告的 DNS 服务器(Use DNS servers advertised by peer) – 去掉勾
  • 防火墙设置 – 创建/分配防火墙区域(Create / Assign firewall-zone) – wan

这三个字段各有各的理由

  • 跃点数:多条默认路由靠这个数字排序,小的优先。主线路填 10,这条填 20 就是次优先。不填的话两条路由并列,走哪条是随机的,你会遇到”时快时慢”的怪现象。
  • 取消对端 DNS:勾着的话这条线拿到的上游 DNS 会被塞进 /etc/resolv.conf。如果你自己搭了 AdGuard Home 之类的 DNS 链路,会被污染。
  • 防火墙区域选 wan:这一步才给这条线带来 NAT(源地址伪装)和入向防护。漏掉的后果是内网设备根本出不去,而且这个口会被当成内网,安全上是敞开的。这是最容易漏、后果最直接的一步。

第三步,保存并应用。 然后回接口列表,wan2 那栏应该显示拿到了 IP

第四步,拔掉两个网线中的一个,然后打开校园网认证登录页面,完成登录认证。然后再插回去,拔掉另外一个再打开校园网认证登录页面,完成登录认证。这样两个账户都登录上去了。

附:命令行版


# 1. 摘出桥
uci del_list network.@device[0].ports='lan4'

# 2. 建接口
uci set network.wan2=interface
uci set network.wan2.device='lan4'
uci set network.wan2.proto='dhcp'
uci set network.wan2.metric='20'
uci set network.wan2.peerdns='0'

# 3. 划进 wan 防火墙区(按名字找,别靠下标猜)
uci add_list firewall.@zone[1].network='wan2'

uci commit network; uci commit firewall
/etc/init.d/network reload

mwan3配置阶段

进入 网络-MultiWAN 管理器
(可选,如果你安装了passwall,要把这里的防火墙掩码改成0x0F800000)。简单说这一步的意义就是不和passwall抢数据包的标记,如果你用openclash、passwall2等,最好可以问问AI这里是否要修改,以免影响分流。

接下来几个页面操作都是很有逻辑的

层作用
接口声明”这条线存在”,怎么探测它还活着
成员给某条接口贴上”优先级 + 权重”
策略把若干成员组成一套方案
规则什么流量用哪套方案


设置部分:

两条线就新建两个接口,参数可以按照我的填。
每条线就是一个成员,那就再新建两个成员,参数还是按照这个填。两条线的权重都是1那么就是1:1聚合,权重不一样就是类似灾备的感觉。
这里就是分组了,页面左上角的文字也说的很清楚
这个就是定义那些流量或者那些协议走这个
然后开启mwan3再去 状态-MultiWAN 管理器 看是否都绿了就代表成功了
晒一下steam下载速度

我遇到的一些问题

1.升级了新版 Xray ,但是旧 PassWall 仍生成已被 Xray 移除的 proxySettings 字段,因此校验失败。升级 PassWall 修复了这一点。
2.升级 PassWall 时,软件包管理器会把 Sing-box 当作不再需要的依赖自动卸载;如果你的机场节点需要它,补装后网络才恢复。

passwall和mwan3有回环,不过最新的passwall已经通过PR更新了,一定要更新到最新的(26.9.9)具体的PR内容可以看这次Pull requests · Openwrt-Passwall/openwrt-passwall

然后升级后你可能紧接着遇到下一个问题,我怎么断网了!因为旧 PassWall 26.9.1 生成的配置,不兼容新版 Xray 26.9.9。我都晕了。

重启路由器后发现mwan3没有如约正常启动,原因是mwan3_start() 目前用 nft insert 往 mangle/mwan3_hook 里插豁免规则。这条链是 mwan3 通过 iptables-nft 创建并持有的,链里一旦混入 nft 原生规则,iptables-nft 就无法把整条链翻译回去,任何 iptables 读取都会失败。这个我提交了PR,看看作者能不能给合并了。(蹭一下10k star的项目贡献,已蹭哈哈)

写在最后

一个校园网最多连接两个设备,海大校园网有个无感认证,可以手动把路由器网口的mac地址录进去,这样即使断电在电力恢复后也能重新连接回去,而不需要二次认证。

应该没啥了,下班!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇