RouterOS 家庭多宽带聚合实战:PCC负载均衡配置与避坑记录

发布于2026-09-08 20:50 阅读14次 家里有两条宽带却只能用一条?本文记录我用 RouterOS 做 PCC 多线负载均衡的完整配置过程,涵盖接口划分、路由标记、回程分流等关键步骤,并总结了 NAT 顺序、MTU、连接跟踪等容易踩坑的地方,适合想折腾多线接入的朋友参考。
# 一、为什么要做多线聚合
家里一条电信 300M、一条移动 200M,普通路由器只能切换单线。换 RouterOS 之后可以用 **PCC(Per Connection Classifier)** 按连接分流,两条宽带同时干活,下载、视频各走各的,体验提升非常明显。
> 注意:PCC 是"按连接分流"而不是"叠加带宽",单线程测速不会变快,但多任务并发时总吞吐量接近两线之和。
# 二、网络规划
| 角色 | 接口 | 网段 |
| --- | --- | --- |
| 电信 WAN | ether1 | PPPoE 拨号 |
| 移动 WAN | ether2 | 192.168.2.0/24 |
| 内网 LAN | bridge-lan | 192.168.88.0/24 |
# 三、核心配置步骤
**1. 划分接口**:ether2 设置 DHCP Client 即可,电信线直接建 PPPoE Client,勾选 `add-default-route=no`,这是最常见的翻车点。
**2. 配置 PCC 规则**(mangle 链):
```routeros
/ip firewall mangle
add chain=input in-interface=pppoe-out1 action=mark-connection \
new-connection-mark=cm-ct passthrough=yes
add chain=prerouting dst-address-type=!local \
per-connection-classifier=both-addresses:2/0 \
action=mark-connection new-connection-mark=cm-ct
add chain=prerouting per-connection-classifier=both-addresses:2/1 \
action=mark-connection new-connection-mark=cm-cmcc
add chain=prerouting connection-mark=cm-ct \
action=mark-routing new-routing-mark=to-ct passthrough=no
```
**3. 补齐路由表**:两条线各加一条带 `routing-mark` 的默认路由,distance 保持一致即可。
# 四、避坑清单(重点)
1. **NAT 顺序不能错**:masquerade 规则的 out-interface 必须分别绑定两条 WAN,漏一条就会出现"一半设备能上网"的诡异现象;
2. **回程流量必须标记**:`chain=input` 的 mark-connection 不能省,否则远程管理或端口映射会断流;
3. **MTU 问题**:PPPoE 环境把 WAN 侧 MTU 改成 1480、MSS 用 mangle 的 `change-mss` 钳到 1440,网页打不开多半是它;
4. **不要迷信 both-addresses**:内网设备少时用 `both-addresses`,公司场景建议 `both-ports`,分流更均匀;
5. **升级前备份**:RouterOS 大版本升级后 mangle 规则偶有失效,导出 `.rsc` 备份是保命习惯。
# 五、验证方法
终端里执行 `/ip route print` 确认两条标记路由都有效,再用 `torch` 工具观察两条 WAN 的实时流量。开多台设备跑流媒体,能看到两条线的流量都在增长,就说明分流生效了。
折腾一个下午换来长期稳定的多线体验,值得。有问题的朋友欢迎评论区交流。