永久保存静态路由需将cidr格式路由条目写入/etc/sysconfig/network-scripts/route-接口名文件,如route-ens33,每行格式为“目标网络/cidr via 下一跳”,保存后执行systemctl restart network或ifdown/ifup生效,重启后自动加载。

永久保存静态路由,关键不是记命令,而是把路由规则写进系统能自动识别的配置文件里。临时用 ip route add 或 route add 加的路由,只存在内存中,重启就清空——必须走持久化路径。
确认网卡名称再建对应路由文件
系统不会猜你用的是哪个网卡,文件名必须和实际接口名完全一致:
- 运行
ip link show或nmcli device status查看真实接口名(比如ens33、eth0、enp0s3) - 根据接口名创建路由配置文件,例如接口是
ens33,就建/etc/sysconfig/network-scripts/route-ens33 - 不能写成
route-eth0却配在ens33上,否则加载失败
按标准格式写入路由条目
这个文件只认一种写法:CIDR 格式 + via 网关,每行一条,不支持 netmask 或命令语法:
-
10.20.0.0/16 via 10.10.1.1(子网路由) -
192.168.100.52/32 via 10.10.1.2(主机路由) -
default via 10.10.1.254(默认网关) - 可选加
dev ens33显式指定出口,但通常省略即可(文件名已绑定接口) - 别写
ip route add ...或route add -net ...这类命令,系统会直接忽略
生效方式要匹配系统机制
改完文件后,不能靠重启服务器,得触发网络服务重新加载:
- CentOS/RHEL 7/8:执行
sudo systemctl restart network - 或针对单个接口:
sudo ifdown ens33 && sudo ifup ens33 - 验证是否生效:
ip route show dev ens33,看到刚写的条目才算成功 - 下次开机时,network 服务会自动读取该文件并加载,无需额外操作
避开常见错误做法
有些方法看似简单,实际隐患大:
-
/etc/rc.local执行太晚,NFS 挂载、数据库等服务可能已启动失败 - 把
ip route add命令塞进rc.local,容易因网卡未就绪报 “Network is unreachable” - 用
route -n > /etc/routes只是导出快照,不是配置,系统根本不会读它 -
/etc/sysconfig/static-routes在 RHEL/CentOS 7+ 已被弃用,不再生效











