商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > CentOS 7如何配置具体的网络路由优先级设置

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

  发布于2026-08-13 阅读(0)

扫一扫,手机访问

要永久设置默认路由,必须同时使用 /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 的网卡)。

  • 不要在 /etc/rc.local 里写 route add —— NetworkManager 会覆盖它
  • 不要依赖 nmcli connection modify ... ipv4.routes 设置默认网关,它不支持 default 关键字,会静默失败
  • 真正生效的入口只有两个:/etc/sysconfig/network-scripts/route-IFNAME(静态路由)和 /etc/sysconfig/network-scripts/ifcfg-IFNAME 中的 IPV4_ROUTE_METRIC

永久设置某网卡的默认路由和 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 出口。

  • route-IFNAME 文件里每行只能是一条路由,不能带注释,空格必须是英文空格
  • viadev 是关键字,前后各一个空格,顺序不能颠倒
  • metric 值建议避开 0(系统保留给 loopback)、256+(部分旧脚本截断)

验证时看 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

注意两点:

  • 同一目标(如 default)出现多条时,kernel 选 metric 最小的那条
  • 如果只看到一条 default,说明另一条被 IPV4_ROUTE_METRIC 抑制了,或 route-IFNAME 文件未被加载
  • 改完配置后必须执行 nmcli connection reload && systemctl restart networkifdown/ifup 不触发 route-IFNAME 重载

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

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

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

  • 删掉所有 ifcfg-* 文件里的 GATEWAY= 行(包括注释掉的)
  • 确保只有 route-IFNAME 文件负责定义 default via
  • 确认 BOOTPROTO=static,否则 IPV4_ROUTE_METRIC 不生效

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

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

热门关注