网络命令82 条

ip rule 策略路由

默认路由只有一张表;策略路由可以「按源地址/按 fwmark 走不同出口」——多网卡、多线路分流的核心工具。

Linux 运维命令速查系统更新于 2026-10-13

策略路由解决什么问题

默认路由只有一张主表,而 ip rule 提供的策略路由可以做到“按源地址、按防火墙标记、按目标地址选择不同的路由表”,这是多网卡、多线路分流的核心工具。规则按优先级从小到大匹配,命中后按指定表查路由;表的内容用 ip route 配合 table 参数维护,规则本身不负责填路由。

基本信息

适用平台Linux(iproute2)
语法ip rule add [from 源] [fwmark 标记] table 表号
配套命令ip route add ... table N、ip route show table N
内置规则优先级 32766 的 main 与 32767 的 default 是兜底
优先级不指定时由系统自动分配,关键场景应显式写 pref
查看ip rule show

典型使用场景

  • 多网卡机器按源网段分流(内网走 A 线、公网走 B 线)
  • 按 fwmark 分流,配合 iptables -j MARK 做应用级选路
  • 专线加宽带的主备与负载分担
  • 容器或 VPN 场景指定出口路由表
  • 排查“流量为什么从错误的线路出去”

常用示例

常用示例
ip rule show                                  # 现有规则与优先级,改之前先看清楚
ip rule add from 192.168.10.0/24 table 100    # 来自该网段的流量查表 100
ip route add default via 192.168.10.1 dev eth1 table 100   # 给表 100 填默认网关
ip route show table 100                       # 核对表内容是否符合预期
ip rule add fwmark 1 table 100                # 按标记分流,配合 iptables -j MARK 打标
ip rule add from 192.168.10.0/24 table 100 pref 1000   # 显式指定优先级
ip rule del from 192.168.10.0/24 table 100    # 删除规则:条件必须与添加时一致
ip route flush cache                          # 规则或路由变更后清理路由缓存

规则字段读法

字段含义注意
优先级 pref数值越小越先匹配自定义规则必须排在 32766 之前才会生效
from 源匹配源地址或网段最常用的分流维度
fwmark匹配报文的防火墙标记需要配合 iptables/nftables 打标
table 表号命中后使用哪张路由表表必须先用 ip route add 填好
无 from/fwmark 的规则匹配全部流量会覆盖所有流量,务必谨慎
32766 / 32767main 与 default 兜底规则是最后的退路,不要删除
规则命中即停止,顺序决定结果:不指定 pref 时新规则会得到一个自动分配的优先级,插入位置未必符合预期,关键场景显式指定 pref。
修改策略路由可能影响远程会话:动手前确认有带外或本地控制台通道,改完用新连接验证(例如指定源地址发起请求),已建立的连接不会按新规则重选路。

易错点

  • 只加规则不填表:规则命中后表为空,流量直接走不通,添加规则前先用 ip route add 填表
  • 删除规则条件不全:ip rule del 必须与添加时的条件一致,否则删不掉或删错规则
  • 用已有连接验证新规则:已建立的连接沿用旧选路结果,必须用新连接测试
  • 优先级随手指定:pref 值冲突或排到兜底规则之后,规则看似存在却不生效

数据来源与参考

  • man 8 ip-rule(iproute2 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌