我正在尝试以一种允许我的方式设置我的路线连接到 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
删除该路线。