linux静态路由真正持久化关键在于写入系统网络服务能自动识别的配置文件:centos/rhel用/etc/sysconfig/static-routes(全局)或route-接口名(接口级),ubuntu/debian 18.04+用netplan yaml,旧版debian改/etc/network/interfaces,避免rc.local等非标准方式导致竞态或失效。

Linux静态路由要真正持久化,关键不是用哪个命令加,而是把规则写进系统网络服务能自动识别的配置文件里。不同发行版加载机制不同,硬套一种方法容易重启后失效、服务启动失败,甚至影响NFS挂载或SSH连接。
CentOS/RHEL 系统:优先用 /etc/sysconfig/static-routes
这是最稳妥的全局方式,被 network 服务原生支持,时机早、无竞态、重启网络或机器都生效。
- 文件不存在就新建,路径必须是 /etc/sysconfig/static-routes,权限保持默认(644)即可
- 每行格式严格为:any net 目标网段/前缀 gw 下一跳,开头any不能省、不能替换成接口名
- 支持主机路由:any host 192.168.30.5 gw 192.168.1.254
- 改完后执行 service network restart(SysVinit)或 systemctl restart network(RHEL 7+)
CentOS/RHEL 接口级路由:用 route-接口名 文件
适合路由和特定网卡强绑定的场景,比如多网卡服务器中某条路由只走 eth1。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 文件名必须匹配实际接口,如网卡是 ens33,就建 /etc/sysconfig/network-scripts/route-ens33
- 每行一条路由,推荐 CIDR 格式:10.20.0.0/16 via 10.10.1.1,dev 可省略(默认走该文件对应接口)
- 也支持 default 路由:default via 10.10.1.254
- 生效命令同上:systemctl restart network 或 ifdown ens33 && ifup ens33
Ubuntu/Debian 系统:走 Netplan YAML 配置
Ubuntu 18.04+ 默认用 Netplan,/etc/sysconfig/static-routes 完全不被读取,混用会失效。
- 编辑 /etc/netplan/*.yaml(如 01-netcfg.yaml)
- 在对应接口下添加 routes 块,例如:
routes:
- to: 192.168.50.0/24
via: 192.168.1.254
metric: 100 - 保存后运行 netplan apply,无需重启服务或机器
Debian 旧版或非 Netplan 环境:改 /etc/network/interfaces
适用于仍用 ifupdown 的 Debian 系统或某些定制环境。
- 在目标接口配置块末尾加 up 和 down 指令:
up ip route add 192.168.60.0/24 via 192.168.1.254
down ip route del 192.168.60.0/24 via 192.168.1.254 - 执行 ifdown eth0 && ifup eth0 即可加载或卸载路由
- 注意:不能只写 up 不写 down,否则重启网络时旧路由残留,易引发冲突










