Linux双网卡策略路由需绕过单一默认路由表限制,通过定义自定义路由表(如tab_eth0/tab_eth1)、为各表配置含直连网段和default路由的条目、添加按源IP或目标网段匹配的ip rule规则实现分流。

1. 定义自定义路由表
编辑 /etc/iproute2/rt_tables,在末尾添加两行(数字是表ID,需唯一且大于255):
100 tab_eth0101 tab_eth1
保存后系统就能识别这两个新路由表名。ID建议从100起,避开内核保留的 254(main)、255(local)等。
2. 为每个表配置路由条目
假设:
– eth0 IP 是 192.168.10.100/24,网关 192.168.10.1
– eth1 IP 是 10.0.20.100/24,网关 10.0.20.1
执行:
ip route add 192.168.10.0/24 dev eth0 src 192.168.10.100 table tab_eth0ip route add default via 192.168.10.1 dev eth0 table tab_eth0ip route add 10.0.20.0/24 dev eth1 src 10.0.20.100 table tab_eth1ip route add default via 10.0.20.1 dev eth1 table tab_eth1
注意:每张表都要包含直连子网路由(否则出向会失败),且 src 参数明确指定源IP,避免响应包选错出口。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
3. 添加策略规则绑定流量到对应表
常用两种匹配方式,选一种或组合使用:
-
按源IP分流(最常用):
ip rule add from 192.168.10.100/32 table tab_eth0ip rule add from 10.0.20.100/32 table tab_eth1 -
按目标网段分流(如内网走某卡):
ip rule add to 172.16.0.0/12 table tab_eth0ip rule add to 10.0.0.0/8 table tab_eth1
规则按 priority(优先级)从小到大匹配,默认不指定时 priority 从 0 开始递增。可用 ip rule add ... priority 100 显式控制顺序,避免被系统默认规则覆盖。
4. 验证与排错
运行以下命令确认配置生效:
-
ip rule show— 查看所有策略规则及其 priority -
ip route show table tab_eth0— 检查表内容是否完整 -
ip route get 8.8.8.8 from 192.168.10.100— 模拟从该源IP发包,看走哪条路径 -
ping -I 192.168.10.100 8.8.8.8— 强制指定源IP测试连通性
如果 ping 不通,先检查网卡是否 up、ARP 是否可解析、防火墙是否放行 ICMP;再确认路由表里有没有缺直连路由或 default 路由。
不复杂但容易忽略。


















