发布于2026-08-12 阅读(0)
扫一扫,手机访问
在 RHEL/CentOS 7 及以上版本里,需要在网卡配置文件中补上一项 IPV4_ROUTE_METRIC=数值,比如 /etc/sysconfig/network-scripts/ifcfg-ens192 这类文件。这里的规则很直接:数值越小,优先级越高;同时,不同网卡的取值必须保持唯一。这样配置后会永久生效,核心目的就是避免默认 metric 相互冲突,进而让路由选择变得不可预测、难以控制。

IPV4_ROUTE_METRICCentOS 7+(包括 RHEL、Rocky、AlmaLinux)使用 NetworkManager 或传统 network 服务管理路由,优先级由 metric 值控制——数值越小,优先级越高。永久生效的唯一可靠方式是写入网卡配置文件。
操作路径固定:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME(如 ifcfg-ens192)。必须添加或修改这一行:
IPV4_ROUTE_METRIC=50
0 或 10;100、200 等更高值;IPV4_ROUTE_METRIC 值必须互不相同,否则系统可能任意选择默认路由。ip route replace 或 route add这些命令改动的,其实只是内核当前正在使用的路由表:机器一旦重启,配置就会失效;即便不重启,只要遇到 NetworkManager 接管,或者执行了 systemctl restart network,这些临时路由也很容易被重新覆盖。更需要警惕的是,如果多张网卡都配置了 GATEWAY,却没有显式设置 IPV4_ROUTE_METRIC,系统通常会自动给它们分配默认 metric,常见就是 100。结果是什么?路由冲突几乎是必然的——执行 ip route show 时,很可能会同时看到两条 default via ... metric 100。一旦出现这种情况,内核就只能按“先到先得”的方式来选路,整个行为也就变得不可控了。
常见错误现象:
ping 外网通,但 SSH 连入时响应慢或超时;ip route get 8.8.8.8 返回的出口设备与预期不符。ip route 输出里的 metric重启网络后运行:
ip route show
输出中每条 default 路由末尾必须带明确的 metric N,例如:
default via 172.20.17.1 dev ens224 metric 100
192.168.1.0/24 via 192.168.1.1 dev ens192 metric 0
注意:
metric 字样的默认路由,说明 IPV4_ROUTE_METRIC 未被读取(检查拼写、空格、是否漏掉引号);metric 1024 这类大数值,往往是 NetworkManager fallback 分配的,代表配置未生效;ip route get 测试具体目标走哪条路径,比只看 default 更准。如果两块网卡在同一子网(比如都接 192.168.1.0/24),仅靠 metric 无法区分出口——因为内核路由决策优先匹配最长前缀,子网完全一致时才看 metric。这时必须用策略路由(policy routing):
/etc/iproute2/rt_tables,新增自定义表名与 ID(如 200 net_a);ip rule add from table net_a 绑定源地址;ip route add default via dev table net_a 设置该表路由;/etc/rc.d/rc.local 或 systemd service 才能持久化(RHEL/CentOS 7+ 中 rc.local 默认不执行,需手动启用)。这种场景下,IPV4_ROUTE_METRIC 完全无效,硬套只会浪费调试时间。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9