这是我的route -n
输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
如果我尝试通过此命令添加静态路由:
route add -net 192.168.50.0 netmask 255.255.255.0 gw 192.168.50.1
我得到以下输出:
SIOCADDRT: No such process
为什么?有人能解释一下在 Linux 中添加静态路由的概念吗?
如果我在该目录下还有一个route-eth0
文件/etc/sysconfig/network-scripts/
,里面有这一行:123.123.123.0/24 via 123.123.124.1
,重启网络后也没有任何效果。
那么,有人能给我一些解释、链接或相关资料吗?
谢谢!
注意:我观察到:如果我添加了网络192.168.50.0
并指向“默认”网关 (0.0.0.0),我的命令就可以正常工作。但如果我没有添加,我就会收到前面提到的错误。那么,你能告诉我我需要做什么以及我错在哪里吗?
PS:我是 Linux 网络方面的一名新手。
答案1
您尝试添加的路线是递归的。
route add -net 192.168.50.0 netmask 255.255.255.0 gw 192.168.50.1
翻译如下:
192.168.50.0/24 的下一跳是 192.168.50.1
好的。192.168.50.1 的下一跳是什么?
192.168.50.0/24 的下一跳是 192.168.50.1
> 呃?但这是不可能的。然后输出神秘的
SIOCADDRT: No such process
您添加的第二条路线证实了这一点:
route add -net 192.168.50.0 netmask 255.255.255.0 gw 192.168.122.x
您的默认网关应位于 192.168.122.0/24 网络中,以便您的计算机可以访问。
答案2
如果“您尝试在为处理该网络流量的网关设置主机路由之前为该网络设置路由”,则可能会收到“SIOCADDRT:没有此过程”错误。
解答:首先创建主机路由,然后创建网络路由。
例如,对于有问题的网络:本地 -> 192.168.50.1 -> 192.168.50.xx
route add -host 192.168.50.1 dev eth0
route add -net 192.168.50.0 netmask 255.255.255.0 gw 192.168.50.1
这对我有帮助https://support.symantec.com/en_US/article.TECH142841.html