![如何使用 iproute2 删除默认路由](https://linux22.com/image/91304/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20iproute2%20%E5%88%A0%E9%99%A4%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1.png)
我使用 NetworkManager 连接到 openVPN 服务器。配置为所有流量都通过 VPN:
> ip route
default via 10.4.4.73 dev tun0 proto static metric 50
default via 192.168.178.1 dev wlp2s0 proto static metric 600
10.4.4.73 是 tun0 设备的对等地址。第二条路由通过我的本地路由器路由流量。为了尝试删除默认路由,我发出了命令:
ip route del default via 10.4.4.73 dev tun0
它不会引发错误,但也不会更改路由表。删除该路线的正确方法是什么?
答案1
该ip route del
命令对我来说看起来没有错。如果它不起作用,您要么必须指定所有属性或路线(即ip route show
打印的所有内容,包括“metric”和“proto”),要么您可以通过省略“via”部分来摆脱它。
无论如何,如果您这样做,NetworkManager 可能会在稍后恢复路由,并且在重新激活 OpenVPN 连接时肯定会恢复路由。
也许,你应该这样做
nmcli connection modify $OVPN_CONN_NAME ipv4.never-default yes
看man nm-settings
。
答案2
我在删除启动时为第二个接口添加的默认路由时遇到了同样的问题。使用正确选择器的正确命令如下:
ip route del to default via 192.168.0.1
这只会删除 192.168.0.1 接口上的路由。该操作缺少“to”作为选择器。