在企业环境中,服务器常有多网卡、多出口的复杂网络环境。 如果仅使用临时命令 ip route add,路由表在系统重启后就会丢失。 本文带你实现 RHEL/CentOS 7+ 永久静态路由配置,并讲解 路由优先级(metric)调整方法。
一、背景说明
RHEL/CentOS 7 之后,网络管理机制 发生变化:
-
NetworkManager 接管了大部分网络配置;
-
传统的 /etc/sysconfig/static-routes 文件已经失效;
-
静态路由应写入对应网卡的配置文件:
/etc/sysconfig/network-scripts/route-
例如: 若网卡名为 ens192,则文件路径为:
/etc/sysconfig/network-scripts/route-ens192
二、示例环境
我们希望:
- 内网段 192.168.1.0/24 从 ens192 出;
- 默认网关(外网访问)走 ens224;
- 同时设置 ens192 优先级更高。
三、配置永久静态路由
编辑对应网卡的路由配置文件:
vi /etc/sysconfig/network-scripts/route-ens192
写入以下内容:
192.168.1.0/24 via 192.168.1.1 dev ens192
default via 172.20.17.1 dev ens224
💡 说明:
- 第一行:表示内网网段的路由;
- 第二行:设置默认出口(外网)网关。
保存后,执行:
nmcli connection reload
systemctl restart network
四、调整路由优先级(Metric)
在 RHEL7+ 中,可以通过参数 IPV4_ROUTE_METRIC 调整路由优先级。 数值越小,优先级越高。
示例:编辑网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens192
vi /etc/sysconfig/network-scripts/ifcfg-ens192
添加或修改以下行:
IPV4_ROUTE_METRIC=0
如果有多块网卡,比如 ens224,则可以设置:
IPV4_ROUTE_METRIC=100
这样系统会优先选择 ens192 作为主路由出口。
保存后重启网络:
systemctl restart network
五、验证配置结果
查看当前路由表:
ip route
输出示例:
default via 172.20.17.1 dev ens224 metric 100
192.168.1.0/24 via 192.168.1.1 dev ens192 metric 0
✅ 可以看到:
- 默认路由走外网 ens224
- 内网优先走 ens192
- 路由优先级通过 metric 数值体现
六、知识拓展:为什么不用 rc.local?
有些旧教程会建议在 /etc/rc.local 中添加:
ip route add 10.15.150.0/24 via 192.168.1.1 dev ens192
⚠️ 但在 RHEL7+ 中:
- rc.local 默认 未启用执行权限;
- NetworkManager 可能在其后重写路由;
- 因此该方法在多数场景下 无效或不稳定。
七、示例:多条静态路由配置
若需要为同一网卡配置多条静态路由,可以直接在 route-<interface> 文件中追加:
10.15.150.0/24 via 192.168.1.1 dev ens192
10.25.250.0/24 via 192.168.1.1 dev ens192
无需重启系统,只需重启网络服务:
systemctl restart network