Linux永久保存静态路由需将CIDR格式条目写入/etc/sysconfig/network-scripts/route-接口名文件,接口名须与ip link show查得的UP状态物理网卡一致,语法为“目标网络/掩码位数 via 下一跳IP”,保存后执行systemctl restart network或ifdown/ifup生效。

Linux永久保存静态路由规则,必须把路由条目写进系统启动时自动加载的配置文件里,否则重启后所有用ip route add或route add加的路由都会消失。
确认网卡接口名再建对应路由文件
系统不会自动识别你用的是哪个网卡,必须先查清真实接口名,再创建匹配的配置文件,否则路由根本不会加载。
运行ip link show或nmcli device status,看输出中处于UP状态的接口名,比如ens33、eth0、enp0s3——注意别把lo(回环口)当成物理网卡。
根据查到的接口名,创建路由配置文件:sudo touch /etc/sysconfig/network-scripts/route-ens33(把ens33替换成你的真实接口名)。
【文件名必须和接口名完全一致,多一个字母、少一个数字都会导致路由不生效】
按标准格式写入CIDR路由条目
这个文件只认一种语法:每行一条,目标网络用/后接子网位数(即CIDR格式),后面紧跟via和下一跳IP,不能写netmask,也不能写ip route add命令本身。
正确写法示例:
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 10.20.0.0/16 via 10.10.1.1 或 10.20.0.0 netmask 255.255.0.0 gw 10.10.1.1。
触发网络服务重载使配置立即生效
保存文件后,不能靠重启服务器,必须让网络服务重新读取配置。
CentOS/RHEL 7/8 执行:sudo systemctl restart network
或者针对单个接口操作更安全:sudo ifdown ens33 && sudo ifup ens33(把ens33换成你的接口名)。
验证是否成功:ip route show dev ens33,看到刚写的条目才算真正加载进内核路由表。



















