mwan3是OpenWrt上一款经典的多WAN负载均衡与故障切换工具,很多人接了两条甚至三条宽带之后,发现流量几乎是平均分配的,并没有按照各条线路的实际带宽比例走。这背后的原因通常不是mwan3出了问题,而是权重参数没有正确配置。本文围绕mwan3负载均衡的权重调整展开,从配置结构讲起,给出完整的操作步骤,并汇总常见疑问的排查方法。

一、先弄清楚mwan3的配置层级和权重的作用位置
mwan3的配置逻辑分为三层:interface(接口)、member(成员)、policy(策略)。interface对应OpenWrt里的WAN口,member是把某个接口和一个权重值绑定在一起的组合,policy则由一个或多个member组成,最后由规则(rule)决定哪些流量走哪个policy。权重这个参数,实际是写在member这一层的,这也是很多新手找不到修改入口的原因,他们总以为权重应该在WAN口设置里。
理解了层级关系,权重的含义就好解释了。假设wan口是100M宽带,wan2口是500M宽带,如果两个member的权重都是1,流量就会各占一半,500M的线路明显被浪费。合理的做法是把wan2的member权重设为5,wan设为1,这样新建立的连接会大致按照1比5的比例分配到两条线路上。需要注意的一点是,mwan3的负载均衡是按连接(会话)粒度分的,不是按数据包,同一个连接内的所有流量始终走同一条线路,所以用单线程下载测试是看不出分流效果的。
另外要确认一个前提:权重只有在policy的load balancing模式下才有意义。如果你的policy配置成了故障转移模式,也就是只写第一个member为优先、其余作为备份,那么权重值再怎么改也不会影响流量走向,流量永远优先走第一个可用的member。判断方法是查看配置文件中policy的members字段,如果所有member写在一起且没有用括号区分优先级,就是均衡模式。
二、通过LuCI界面和命令行调整权重的具体步骤
先说图形界面的方式。登录OpenWrt后台,进入网络菜单下的多WAN流量分配器(MultiWAN Manager),切换到成员(Members)标签页,你会看到系统自动生成的类似wan_m1_w1、wan2_m1_w1这样的条目。条目命名规则里的m1代表跃点数,w1代表权重。点击对应条目进行编辑,把权重改为目标值,比如wan2改成5,保存并应用即可。如果列表里没有合适的组合,可以新建一个成员,选择接口后填写跃点数和权重。跃点数相同的member之间才会按权重均衡,跃点数不同则体现为优先级,这一点在新建时一定要留意。
如果习惯命令行,直接编辑/etc/config/mwan3文件更高效。下面是一个双线按1比5分流的示例配置:
config member 'wan_m1_w1' option interface 'wan' option metric '1' option weight '1' config member 'wan2_m1_w5' option interface 'wan2' option metric '1' option weight '5' config policy 'balanced' list member 'wan_m1_w1' list member 'wan2_m1_w5'
两个member的metric都是1,说明它们处于同一优先级,流量才会按1比5的权重分配。修改完成后执行service mwan3 reload让配置生效,也可以用mwan3 reload命令。之后通过mwan3 status查看当前状态,确认两个接口都显示online,并且policy下面两个member都在启用列表中,任何一个接口显示offline都会导致权重失效,流量全部压到剩下的线路。
验证分流效果建议开启mwan3的连接跟踪统计,执行mwan3 status能看到每个policy的命中情况。也可以多开几个不同的下载任务,或者在状态页面观察两个WAN口的实时流量曲线,如果比例大致接近设定的权重比,说明配置成功。切记不要用同一个下载链接测速,因为单连接只会走一条线。
三、常见疑问排查:权重不生效、负载不均等问题的处理
第一个高频问题是改了权重但流量仍然平均走。这种情况先检查三点:一是两个member的metric是否一致,跃点数不同就变成主备模式了;二是rule是否真的引用了你修改的那个policy,很多配置里存在多个policy,规则实际走的是另一个;三是mwan3服务是否reload过,改文件不重载是不会生效的。此外,mwan3对IPv4和IPv6是分开配置的,如果你的流量走的是IPv6而只改了IPv4的成员,自然看不到变化。
第二个常见疑问是多条线路分担流量后,访问某些网站时IP来回切换导致登录态丢失。这是负载均衡的固有特点,不同连接走了不同出口IP。解决办法是在规则(rules)里为网银、支付类等对IP敏感的目标地址指定固定policy,让这类流量永远走同一条线。也可以启用粘性会话,mwan3支持通过ipset配合规则实现按源IP的粘性分配,让同一个内网设备的连接尽量稳定在一条线路上。
第三个问题是配置完权重后部分网站打不开或速度反而变差,这通常是策略路由和连接跟踪冲突导致的。排查思路是确认系统开启了连接跟踪(nf_conntrack),检查是否存在其他软件如vpn策略路由、科学上网插件也在管理路由表,多个工具抢路由标记往往互相干扰。可以执行ip rule list查看路由规则顺序,mwan3依赖自定义的路由表和fwmark标记,如果其他插件的规则优先级更高,mwan3的分流就会失灵。建议同一台设备上只保留一个流量分流工具做主控,避免多重标记叠加。
最后补充一个容易被忽略的细节:权重设置的比例是按连接数近似分配的,不等于带宽精确占比。运营商实际带宽、线路质量抖动都会影响体验,建议先按带宽比例设置权重,观察几天的实际流量分布后再微调。同时定期查看mwan3 status里的接口健康状态,及时清理反复掉线的线路配置,才能让多宽带环境长期稳定运行。