要永久设置默认路由,必须同时使用 /etc/sysconfig/network-scripts/route-IFNAMEifcfg-IFNAME 里的 IPV4_ROUTE_METRIC,并且把所有 GATEWAY= 配置全部禁用。等 network 服务重启之后,再用 ip route 去验证多路径的 metric 优先级是否生效。

CentOS 7如何配置具体的网络路由优先级设置

route 命令不能持久化,别直接用它设默认路由

临时加上一条 route add default gw 192.168.10.1 dev ens33,表面上确实能立刻生效,可一旦重启,或者执行 systemctl restart network,这条路由就会直接消失。问题出在这里:从 CentOS 7 开始,NetworkManager 和 ifup/ifdown 脚本不再读取 route 命令对内核路由表做出的临时变更,真正认的,只有配置文件里明确写下的声明。

常见错误现象:执行 route -n 看到新路由,ip route 却没出现;或者重启后 default 路由自动回退到某张网卡(通常是第一个 up 的网卡)。

永久设置某网卡的默认路由和 metric

假设你要让 ens192 承担默认出口,且优先级高于其他网卡,必须分两步做:

第一步:在 /etc/sysconfig/network-scripts/route-ens192 中写入默认路由行(注意格式严格):

default via 192.168.1.1 dev ens192

第二步:在 /etc/sysconfig/network-scripts/ifcfg-ens192 中添加或修改:

IPV4_ROUTE_METRIC=10

如果另一张网卡 ens224 也要配默认路由(比如作为 fallback),就在它的 route-ens224 文件里写:

default via 172.20.17.1 dev ens224

并在 ifcfg-ens224 中设:

IPV4_ROUTE_METRIC=100

数值越小越优先,系统会按 metric 自动选 default 出口。

验证时看 ip route,别信 route -n

route -n 显示的是传统 BSD 风格路由表,CentOS 7+ 实际走的是 netlink 接口,ip route 才反映真实内核路由状态。

执行 ip route 后应看到类似输出:

default via 192.168.1.1 dev ens192 metric 10
default via 172.20.17.1 dev ens224 metric 100
192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.100

注意两点:

多默认路由冲突时 metric 不起作用?检查 GATEWAY 是否重复定义

如果设置了 IPV4_ROUTE_METRICip route 里仍只有一条 default,大概率是某张网卡的 ifcfg-IFNAME 文件里还写着 GATEWAY=...

CentOS 7 规则:只要任意一张网卡配置了 GATEWAY,NetworkManager 就会把它当作唯一默认网关,忽略其他网卡的 route-IFNAMEIPV4_ROUTE_METRIC

metric 生效的前提是:多条 default 路由同时存在于内核路由表中。而这个“同时存在”,依赖于 clean 的配置——没有 GATEWAY 干扰,没有 NetworkManager 的 auto-gateway 逻辑介入。

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