无法删除网关为 0.0.0.0 的路由

无法删除网关为 0.0.0.0 的路由

我正在尝试以一种允许我的方式设置我的路线连接到 Solum 演示的 Vagrant box

我的路由表包含但不限于以下路由:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

我怀疑第三条路线(在 Vagrant box 启动时自动生成)正在干扰第二条路线(手动创建),所以我尝试删除它。

但是,使用以下命令之一

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

返回:

SIOCDELRT: No such process

route通常在找不到路线时就会弹出。

另一方面,使用

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

产量:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

我做错了什么?有什么原因让我无法删除该路线吗?我认为它会干扰我设置的路线,这是错的吗?

(我使用的是 Ubuntu 14.04+)。

答案1

要从路由表中删除单个路由,您需要指定足够的参数,以便可以与其中一条路由进行唯一匹配。

如果要删除整个子网(而不是单个主机),则需要同时使用标志-net和网络地址范围的指示,即参数netmask(例如 255.255.255.0)或数字(例如 /24)(意味着前 24 位是网络号,其余 8 位用于主机)。 在您的例子中,两者

sudo route del -net 192.168.76.0/24

sudo route del -net 192.168.76.0 netmask 255.255.255.0

就会起作用。

(感谢@nephente 的有益补充)

答案2

评论来自乔斯几乎是正确的:

$ sudo route del -net 192.168.76.0/24删除该路线。

相关内容