必须手动添加静态路由条目:一、用ip route临时配置;二、通过network-scripts持久化(centos/rhel 7及更早);三、用nmcli配置(rhel/centos 8+等);四、通过systemd-networkd配置(debian 10+等);五、利用rc.local通用注入。

如果您需要在Linux系统中为网络流量指定固定路径,而非依赖动态路由协议或默认网关,则必须手动添加静态路由条目。以下是实现静态路由配置及确保其重启后持续生效的具体操作步骤:
一、使用ip route命令临时添加静态路由
该方法仅在当前运行的内核路由表中生效,系统重启或网络服务重载后将丢失。适用于测试或临时调试场景。
1、以root权限执行命令添加到目标网络的路由:ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0
2、验证是否成功写入路由表:ip route show
3、若需删除该条目,使用命令:ip route del 192.168.10.0/24
二、通过network-scripts配置文件实现持久化(CentOS/RHEL 7及更早版本)
该方式依赖于传统network服务管理机制,在/etc/sysconfig/network-scripts/目录下为每个接口定义路由规则,系统启动时由network服务自动加载。
1、编辑对应网卡的路由配置文件,例如eth0:vi /etc/sysconfig/network-scripts/route-eth0
2、在文件中按格式添加静态路由行:192.168.10.0/24 via 192.168.1.1 dev eth0
3、重启网络服务使配置生效:systemctl restart network
三、使用NetworkManager的nmcli工具配置持久路由(RHEL/CentOS 8+、Fedora、Ubuntu 20.04+)
该方式适配基于NetworkManager管理网络的现代发行版,通过nmcli修改连接配置,确保路由随连接激活而自动部署。
1、查询当前活动连接名称:nmcli connection show --active
2、为指定连接添加静态路由(示例连接名为"System eth0"):nmcli connection modify "System eth0" +ipv4.routes "192.168.10.0/24 192.168.1.1"
3、重新加载并激活连接:nmcli connection down "System eth0" && nmcli connection up "System eth0"
四、通过systemd-networkd配置静态路由(Debian 10+、Ubuntu 18.04+等启用systemd-networkd的系统)
该方式适用于使用systemd-networkd作为网络管理后端的系统,路由配置直接嵌入.network文件,由systemd-networkd守护进程解析执行。
1、确认目标网络配置文件路径,通常为:/etc/systemd/network/10-eth0.network
2、在[Route]节下追加路由条目:Destination=192.168.10.0/24\nGateway=192.168.1.1
3、重启systemd-networkd服务:systemctl restart systemd-networkd
五、利用/etc/rc.local脚本注入路由(通用兼容方案)
该方法不依赖特定网络管理工具,适用于所有支持rc.local机制的Linux发行版,通过开机自启脚本执行ip route命令完成路由注入。
1、确认rc-local服务已启用:systemctl is-enabled rc-local
2、向/etc/rc.local中添加路由命令(位于exit 0之前):ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0
3、赋予执行权限并重启服务:chmod +x /etc/rc.local && systemctl restart rc-local











