linux添加静态路由核心是明确流量路径:route兼容旧系统,ip route更推荐;临时配置重启失效,永久生效需写入对应发行版配置文件,如centos的/etc/sysconfig/network-scripts/route-eth0或ubuntu的/etc/network/interfaces。

Linux添加静态路由,核心是让系统知道“去某个网段该走哪条路”。route 是传统命令,兼容性好;ip route 是现代推荐方式,语法简洁、功能更强。两者都能完成网段路由和网关配置,但细节和持久化逻辑不同。
添加目标网段的静态路由
要让发往 192.168.50.0/24 的流量经过网关 10.0.1.254,必须明确指定网段参数,否则内核无法识别为网络路由。
-
用 route 命令(兼容旧系统):
sudo route add -net 192.168.50.0 netmask 255.255.255.0 gw 10.0.1.254
这是最稳妥写法,CentOS 6/7、RHEL、Debian 8 等老系统均支持。 -
用 ip route 命令(推荐):
sudo ip route add 192.168.50.0/24 via 10.0.1.254
无需拆分掩码,语义清晰,内核 3.0+ 全面支持。 -
多网卡环境务必指定出口设备:
比如网关 10.0.1.254 实际连在 eth1 上,应补上 dev 参数:
sudo ip route add 192.168.50.0/24 via 10.0.1.254 dev eth1
否则内核可能选错接口,导致路由写入却不可用。
添加单台主机的精确路由
当只需控制某一台设备(如监控服务器或数据库节点)的路径时,用主机路由更精准,避免影响整个网段。
-
通过网关转发:
sudo route add -host 172.16.5.101 gw 192.168.10.1
适用于目标不在本机直连子网的情况。 -
直连同网段设备(不经过网关):
sudo route add -host 172.16.5.101 dev eth0
要求目标 IP 和 eth0 在同一子网,系统会直接 ARP 获取 MAC 地址发包。 -
对应 ip route 写法:
sudo ip route add 172.16.5.101 via 192.168.10.1 dev eth0
或直连:
sudo ip route add 172.16.5.101 dev eth0
配置默认网关与替换现有路由
默认网关是所有未匹配其他路由的数据包最终出口。添加前建议先确认是否已有默认路由,避免冲突。
-
添加新默认网关:
sudo ip route add default via 192.168.1.1 dev eth0
或使用 route:
sudo route add default gw 192.168.1.1 eth0 -
替换而非追加(避免多条 default):
sudo ip route replace default via 192.168.2.1 dev eth1
replace 会覆盖已存在的 default 条目,比先 del 再 add 更安全。 -
查看当前默认路由:
ip route show | grep "^default"
或 route -n | grep "^0\.0\.0\.0"
验证、删除与持久化要点
临时添加的路由重启即失效,生产环境必须做持久化;验证不充分容易误配导致断网。
-
验证是否生效:
运行 ip route show | grep "192.168.50.0",确认条目存在;
用 ping -c 3 192.168.50.1 测试连通性;
若失败,先 ping 10.0.1.254 确认网关可达。 -
快速删除错误路由:
sudo ip route del 192.168.50.0/24
或 sudo route del -net 192.168.50.0/24 -
永久生效方法:
CentOS/RHEL:在 /etc/sysconfig/network-scripts/route-eth0 中写入
192.168.50.0/24 via 10.0.1.254 dev eth0
Ubuntu/Debian:在 /etc/network/interfaces 的 iface eth0 部分添加
up ip route add 192.168.50.0/24 via 10.0.1.254 dev eth0
通用方案(慎用于 NFS 场景):写入 /etc/rc.local,确保文件有执行权限。











