### [ROS软路由(RouterOS)策略路由入门:让指定流量走指定线](https://www.jiyueip.com/article/6293) **Published:** 2026-07-20T04:27:26 **Author:** 斑斓助理 **Excerpt:** RouterOS 策略路由用 mangle 给流量打标记再查路由表,实现指定流量走指定线,双线接入记得设 distance 主备。 ## RouterOS 的策略路由到底解决什么 家里或公司接了两条宽带(比如一条电信一条联通),默认情况下 RouterOS 只有一条默认路由生效,另一条接了跟没接差不多。策略路由干的事,就是按你的规则把不同流量引到不同出口:电信的走电信线,特定设备走代理,某段 IP 走 VPN。说白了,就是给流量分路。 ## 先搞定双线接入 进 WinBox(或者 Web 管理页),给两个 WAN 口分别配好 IP 和网关。默认路由这样加: - 主线路(假设电信):dst-address 填 0.0.0.0/0,gateway 填电信网关,distance 设 1; - 备用线路(联通):同样 dst-address 0.0.0.0/0,gateway 填联通网关,distance 设 2。 distance 数值小的优先级高,主线路掉了,系统才切到 distance 更大的那条。如果两条都想用上而不是一主一备,那就得上负载均衡。 ## 策略路由的核心:mangle 打标记 RouterOS 的做法是在防火墙的 mangle 表里给流量打标记,再用标记去查对应的路由表。一个常见的玩法: | 步骤 | 做什么 | | --- | --- | | 建地址列表 | 把要走特定线的内网 IP 圈出来,比如某台机器或某个网段 | | mangle 打标记 | 在 prerouting 链里对这个地址列表的流量 mark-routing,起个名字比如 to\_isp2 | | 加路由规则 | 新建一条路由,dst-address 0.0.0.0/0,gateway 填那条线的网关,routing-mark 填 to\_isp2 | 注意 mangle 的 chain 方向:prerouting 处理的是经过路由器转发的流量,input 处理的是发往路由器自己的流量,这俩搞混了规则就不生效。另外 mark-connection 和 mark-routing 经常要配对用,少了哪个都会出问题。 ## 想做负载均衡可以上 PCC 如果两条线都要用,PCC(Per Connection Classifier)是常用方案。它按源和目的地址把连接摊到不同线上。命令大致是给 LAN 口的流量按 both-addresses 分类,分别 mark 到不同 routing-mark,再各自配路由。实际效果受两条线的带宽和运营商影响,不是简单一加一等于二。 ## 链路挂了能自动切吗 可以写个监控脚本,定时 ping 网关,连续失败就把主路由 disable、备用 enable。RouterOS 的 scheduler 能定时跑这个脚本,断线切换不用人工盯着。 ## 合规提醒 RouterOS 策略路由、负载均衡、VPN 分流等配置仅用于合法合规的网络管理,如多线接入、内网管控、企业组网等。不得利用策略路由从事翻越网络监管、攻击或任何违法违规行为,使用方需遵守网络安全法及运营商协议。 ## 常见问题 ### 规则配了却没生效 先确认 chain 方向对不对,再看有没有优先级更高的规则把流量截走了。把规则序号往前挪,或者简化测试条件排查。 ### 双线为什么只走了一条 默认路由只有一条生效,另一条没设 distance 或者没做负载均衡,等于闲置。要么设主备 distance,要么上 PCC 负载。 ### DNS 在双线环境下出错怎么办 内网统一用一套 DNS,比如让 RouterOS 自己做递归解析,再用 NAT 把内网主机的 DNS 请求转给路由器处理,避免两家运营商解析结果不一致。 **Tags:** 代理技术选型, 服务器运维, 软路由 **Categories:** 行业洞察 ---