如何从 Linux 路由表中删除路由

59 networking linux routing ip-routing

事实证明这比我想象的要难。我要删除的路由是“!” 被拒绝的路线,但我似乎无法制定正确的“路线删除”命令来实现它。

这是路由表...

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
67.40.227.206   *               255.255.255.255 UH    0      0        0 ppp0
192.168.46.79   *               255.255.255.255 UH    0      0        0 ipsec0
192.168.46.79   -               255.255.255.255 !H    2      -        0 -
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
10.1.0.0        *               255.255.0.0     U     0      0        0 ipsec0
10.1.0.0        -               255.255.0.0     !     2      -        0 -
default         *               0.0.0.0         U     3      0        0 ppp0
default         *               0.0.0.0         U     4      0        0 ppp0
Run Code Online (Sandbox Code Playgroud)

我有 192.168.46.79 和 10.1.0.0 的两个条目。这些是由我正在使用的基于 Linux 的小型路由器自动生成的。我可以从外壳本身 ping IPSEC 隧道,但是由于我根本不明白的原因,来自 LAN 的流量采用第二条路由(被拒绝的“!”或“!H”路由)。

Phi*_*oud 73

使用route -n您将获得的命令

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         160.98.123.1    0.0.0.0         UG    600    0        0 wlan0
Run Code Online (Sandbox Code Playgroud)

sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0

您将分别从上面获得所有参数

  • 重启后,又来了。如何永久删除? (3认同)

Fal*_*mot 18

带有!标志的路由类型要么不可达,要么禁止。 route,作为来自网络工具的古老实用程序,不区分两者。使用iproute2。

删除这些路由的 net-tools 方法是route del在其上使用。但是,net-tools 无法区分被拒绝的路由和另一个路由(因为 dev 参数是可选的,但不指定设备可能会删除无法访问的路由)。

iproute2 允许你这样做:

ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32
Run Code Online (Sandbox Code Playgroud)

它可能不是无法访问,而是禁止。使用ip route不带参数来确定哪个。


bau*_*art 10

我认为是这样的: route del -net 10.1.0.0 netmask 255.255.0.0 metric 2

我不是 100% 确定。但是,由于您有 2 个默认路由,我认为您还有其他愚蠢的事情要做。

  • +1 : 2 个默认路由始终是某些配置错误的标志(除非它们实际上指向不同的网关并具有不同的指标)。 (2认同)