家里一直挂着联通和移动两条宽带,主路由做双 WAN 负载均衡,旁路由跑 OpenWrt 24.10 管代理分流。前阵子想给旁路由也加一条备份链路,结果发现 mwan3 在 OpenWrt 24 上直接消失了。
查了一圈,不是因为没人维护,而是 fw4 切到 nftables 之后,mwan3 那套 iptables 规则链根本跑不起来。社区有人做了 nftables 移植,但要等稳定版进 feed,时间说不准。
这时候看到 mini-mwan,第一感觉是:这也太轻了。

500 行 Lua 代替一万行 shell
mini-mwan 是个纯 Lua 写的守护进程,代码量大概 500 行,对比 mwan3 的一万行以上,文件大小差了将近两个数量级。作者 Alex Schwartzman 的定位很明确:OpenWrt 24+ 上需要一个能跑起来的基础多 WAN 工具,不求功能最全,但求不折腾。
它的核心思路跟 mwan3 完全不同。mwan3 靠 iptables/nftables 打标记、建规则链、配 ipset,故障排查时要翻三层防火墙逻辑;mini-mwan 直接走标准 Linux 内核路由——接口通了,就往上加一条带 metric 的默认路由;接口断了,就把这条路由撤掉。排查时一个 ip route show 就能看明白,不需要懂 nftables。
这种模式的好处是防火墙无关。fw3、fw4、甚至不设防火墙都能用,不会因为底层防火墙后端换了一套就挂掉。

IPv4-first 是个务实选择
mini-mwan 有个设计我挺认同:路由决策只看 IPv4 连通性。如果某个接口 IPv4 能 ping 通,它才给这条接口加路由;IPv4 不通,哪怕 IPv6 隧道还活着,也不会把流量导过去。
这听起来像是功能缺失,其实是防泄漏。家用环境里经常有这种场景:旁路由挂了代理隧道,IPv6 走的是代理出口,IPv4 走的却是直连。如果 DNS 同时返回了 A 和 AAAA 记录,有些系统会优先 IPv6,结果流量从代理绕了一圈,IPv4 反而裸奔。mini-mwan 的做法是fail-closed——IPv4 不通就都不导,宁可断网也不漏。
当然,如果你的主链路是纯 IPv6,这个工具目前不支持。
能做什么、不能做什么
mini-mwan 支持两种模式:failover 和 multi-uplink。故障转移按 metric 优先级切,负载均衡按 weight 分配。接口健康检查用 ICMP ping,可以自定义目标和间隔。
它也带了一个 LuCI 界面,装完 luci-app-mini-mwan 之后能在 Web 上开关接口、看流量统计。不过界面比较朴素,基本就是状态页加配置表单,没有 mwan3 那种策略规则编辑器。
明确不支持的功能:按协议/端口分流、粘性会话、复杂策略规则。如果你的需求是”游戏走 WAN1、下载走 WAN2″,mini-mwan 做不到,得等政策路由或者 SQM。

安装比想象中简单
作者提供了预编译的 .ipk,OpenWrt 24 用 opkg 装,25 以后切了 apk 也能装。依赖只有四个包:lua、libuci-lua、luci-lib-nixio、lua-cjson,标准固件一般都有。
UCI 配置结构也很直白:
uci set mini-mwan.global.mode='failover'
uci set mini-mwan.wan1.metric='100'
uci set mini-mwan.wan2.metric='200'
uci commit mini-mwan
/etc/init.d/mini-mwan restart
metric 越小优先级越高,跟 Linux 路由表里的一致,不需要学新概念。
我的判断
mini-mwan 适合谁?OpenWrt 24/25 用户,有两三条宽带想做故障转移或简单负载均衡,不想研究 nftables 规则链的人。或者旁路由上需要一条备份链路,主链路断了自动切到另一条,这种场景它完全够用。
不适合谁?需要精细化流量调度、按域名/协议分流、或者搞 SD-WAN 那套的企业级需求。这种场景还是等 mwan3 的 nftables 移植稳定,或者上 OPNsense/VyOS。
我目前的双 WAN 还在主路由上跑,旁路由暂时用不到 mini-mwan。但如果哪天主路由的负载均衡抽风,我可能会考虑在旁路由上单独挂一条备用出口,500 行 Lua 的维护成本确实低。