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

CentOS怎么修改具体的网络路由优先级配置

修改网卡配置文件中的 IPV4_ROUTE_METRIC

CentOS 7+(包括 RHEL、Rocky、AlmaLinux)使用 NetworkManager 或传统 network 服务管理路由,优先级由 metric 值控制——数值越小,优先级越高。永久生效的唯一可靠方式是写入网卡配置文件。

操作路径固定:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME(如 ifcfg-ens192)。必须添加或修改这一行:

IPV4_ROUTE_METRIC=50

为什么不能只用 ip route replaceroute add

这些命令改动的,其实只是内核当前正在使用的路由表:机器一旦重启,配置就会失效;即便不重启,只要遇到 NetworkManager 接管,或者执行了 systemctl restart network,这些临时路由也很容易被重新覆盖。更需要警惕的是,如果多张网卡都配置了 GATEWAY,却没有显式设置 IPV4_ROUTE_METRIC,系统通常会自动给它们分配默认 metric,常见就是 100。结果是什么?路由冲突几乎是必然的——执行 ip route show 时,很可能会同时看到两条 default via ... metric 100。一旦出现这种情况,内核就只能按“先到先得”的方式来选路,整个行为也就变得不可控了。

常见错误现象:

验证是否生效:看 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 不起作用?得靠策略路由

如果两块网卡在同一子网(比如都接 192.168.1.0/24),仅靠 metric 无法区分出口——因为内核路由决策优先匹配最长前缀,子网完全一致时才看 metric。这时必须用策略路由(policy routing):

这种场景下,IPV4_ROUTE_METRIC 完全无效,硬套只会浪费调试时间。

本文转载于:https://www.php.cn/faq/2977996.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。