ip route del不会删除整个表

Vin*_*ars 12 linux routing

我最近开始使用ip route命令进行高级路由.现在我遇到了一些让我感到困惑的事情.添加到表中的默认路由将很容易删除,而另一条路径仍然存在.

我添加了这两个规则:

ip route add dev wlan0 default via 192.168.0.1 table 21
ip route add dev wlan0 192.168.0.0/24 table 21
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

ip route show table 21
Run Code Online (Sandbox Code Playgroud)

我看到这两条规则都存在.

default via 192.168.0.1 dev wlan0 
192.168.0.0/24 dev wlan0  scope link  
Run Code Online (Sandbox Code Playgroud)

如果我然后尝试删除表21,并再次显示它:

ip route del table 21
ip route show table 21
Run Code Online (Sandbox Code Playgroud)

仍然存在该规则.

192.168.0.0/24 dev wlan0  scope link
Run Code Online (Sandbox Code Playgroud)

有谁能解释一下?手册页说del旨在删除ROUTE,其中还包括表格.

nic*_*nic 16

正如@ user3291010已经指出的那样,要删除完整表,请使用以下命令:

此命令删除表21:

ip route flush table 21
Run Code Online (Sandbox Code Playgroud)

您尝试的命令用于从表中删除特定规则.它需要一个匹配的前缀.当您没有提供前缀时,它只删除了第一个条目,这恰好是默认路由.

要删除第二个条目,只删除第二个条目,可以运行以下命令:

ip route delete table 21 192.168.0.0/24
Run Code Online (Sandbox Code Playgroud)

据我所知,没有办法使用该delete命令删除所有条目.


小智 6

也许尝试:

ip route flush table 21
Run Code Online (Sandbox Code Playgroud)