Dra*_*mok 9 command-line bash routing
我正在尝试以一种允许我连接到 Solum demo 的 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
Run Code Online (Sandbox Code Playgroud)
我怀疑第三条路线(在 Vagrant box 启动时自动生成)干扰了第二条路线(手动创建),所以我试图删除它。
但是,使用以下任一命令
$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0
Run Code Online (Sandbox Code Playgroud)
返回:
SIOCDELRT: No such process
Run Code Online (Sandbox Code Playgroud)
通常在route
找不到路线时弹出。
另一方面,使用
$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24
Run Code Online (Sandbox Code Playgroud)
产量:
route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables
(rest of usage)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?有什么原因我不能删除那条路线吗?假设它干扰了我设置的那个,我错了吗?
(我使用的是 Ubuntu 14.04+)。
Jos*_*Jos 11
要从路由表中删除单个路由,您需要指定足够的参数,以便与其中一个路由进行唯一匹配。
如果您想删除整个子网(而不是单个主机),您需要同时使用-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 的有用补充)