必须用route或ip route命令添加静态路由:route add -net 192.168.50.0 netmask 255.255.255.0 gw 10.0.1.254(兼容旧系统)或ip route add 192.168.50.0/24 via 10.0.1.254(推荐),并验证生效。

要在Linux系统中让发往特定IP网段(如192.168.50.0/24)的流量强制走指定网关(如10.0.1.254),必须用route add明确指定目标网段参数,否则内核路由表不会识别该路径——这不是靠DHCP分配或ifconfig配置能自动完成的事。
用route命令添加网段路由
方法一:使用-net和netmask参数组合
以root身份执行:route add -net 192.168.50.0 netmask 255.255.255.0 gw 10.0.1.254。
这是最兼容的写法,适用于所有传统Linux发行版,包括CentOS 6/7、RHEL、Debian旧版本。
方法二:直接使用CIDR格式(部分老内核不支持)route add -net 192.168.50.0/24 gw 10.0.1.254。
注意:CentOS 6及更早内核可能报错“SIOCADDRT: No such process”,此时必须退回方法一写法。
方法三:限定出接口(当存在多网卡时必需)route add -net 192.168.50.0/24 gw 10.0.1.254 dev eth1。
【gw必须可达且与dev接口处于同一二层网络】,否则路由虽写入但实际不可用——比如网关10.0.1.254不在eth1所在子网,包会直接丢弃。
用ip route命令添加网段路由(推荐)
第一步:执行添加命令ip route add 192.168.50.0/24 via 10.0.1.254。
语法简洁,无需拆分netmask,现代Linux(内核3.0+)全部原生支持。
第二步:指定出口设备(显式声明更稳妥)ip route add 192.168.50.0/24 via 10.0.1.254 dev eth1。
这一步能避免多网卡环境下内核选错接口,尤其当默认路由和静态路由共存时。
第三步:验证是否生效
运行ip route show | grep "192.168.50.0",输出应包含完整条目;若无返回,说明未写入成功。
验证与排错关键操作
执行route -n查看当前IPv4路由表,确认新路由出现在列表中且Gateway列值为10.0.1.254。
用ping -c 3 192.168.50.1测试连通性,若超时,立即检查网关10.0.1.254本身是否可达(ping 10.0.1.254)。
删除错误路由:route del -net 192.168.50.0/24 或 ip route del 192.168.50.0/24。











