在 Ubuntu 14.04通过 up ip route add ... 添加永久静态路由
你的配置基本是正确的,在 Ubuntu 14.04(ifupdown 管理网络)里,确实可以通过 up ip route add ... 添加永久静态路由。
你这段:
auto eth0
iface eth0 inet static
address 192.168.95.208
netmask 255.255.255.0
# 添加永久静态路由
up ip route add 10.6.203.0/24 via 192.168.95.1 dev eth0
含义是:
-
当
eth0启动时 -
添加一条到
10.6.203.0/24 -
下一跳是
192.168.95.1 -
走
eth0
这是合法且常见的写法。
不过有几点建议。
建议增加 down 删除路由
否则网卡重启时可能报:
RTNETLINK answers: File exists
推荐完整写法:
auto eth0
iface eth0 inet static
address 192.168.95.208
netmask 255.255.255.0
gateway 192.168.95.1
up ip route add 10.6.203.0/24 via 192.168.95.1 dev eth0
down ip route del 10.6.203.0/24 via 192.168.95.1 dev eth0
另外要确认:
1. 192.168.95.1 必须可达
它必须是:
-
eth0 同网段
-
可 ping 通
-
真正能转发到
10.6.203.0/24
否则路由无效。
2. 不要和默认路由冲突
如果:
-
eth0
-
eth1
都配置了 gateway
Ubuntu 14.04 可能会产生双默认路由问题。
通常:
-
只保留一个默认网关
-
另一块网卡只加静态路由
例如:
eth0 -> 默认网关
eth1 -> 业务网段静态路由
推荐查看当前路由
配置后执行:
ip route
应该看到:
10.6.203.0/24 via 192.168.95.1 dev eth0
Ubuntu 14.04 特别注意
14.04 默认没有 netplan,使用的是:
/etc/network/interfaces
所以你这种 up ip route add 的方式是正确时代的方法。
生效方式
修改后:
sudo ifdown eth0 && sudo ifup eth0
或者:
sudo service networking restart
查看:
ip route
验证:
ping 10.6.203.x
更稳妥的写法(推荐)
有些老系统 ip 命令路径问题,建议:
up /sbin/ip route add 10.6.203.0/24 via 192.168.95.1 dev eth0
down /sbin/ip route del 10.6.203.0/24 via 192.168.95.1 dev eth0
Ubuntu 14.04 上兼容性更好。