使用路由命令切换默认网关

使用路由命令切换默认网关

我的笔记本电脑连接到两个网络,WiFi 和以太网。这是两个完全独立的子网。以太网连接是我正在开发的开发路由器。在一天开始时,当我连接所有东西时,我有一个脚本来设置路由,以便我可以正确连接到以太网设备,没有这个就无法工作。这是一个简单的小route add 192.168.1.1 dev enp0s20u3u1脚本。

有时,我希望能够通过此设备路由所有流量。如果只有一个命令即可切换,那就太方便了,但尽管这应该很容易,但对我来说却行不通。

我断开了 WiFi 连接,并用于route add default gw 192.168.1.1创建新的默认路由。但它不起作用。

✔ ~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     255.255.255.0   UG    0      0        0 enp0s20u3u1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 enp0s20u3u1
192.168.1.2     0.0.0.0         255.255.255.255 UH    102    0        0 enp0s20u3u1
192.168.124.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   0.0.0.0         255.255.255.0   U     0      0        0 docker0
✔ ~$ ping 8.8.8.8
connect: Network is unreachable
✘-2 ~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.31 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.684 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.684/1.000/1.317/0.318 ms
✔ ~$ ssh [email protected] ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=56 time=7.621 ms
64 bytes from 8.8.8.8: seq=1 ttl=56 time=4.963 ms
^CKilled by signal 2.
✘-255 ~$ 

我确信这是一个路由问题,因为它确实有效:

$ route add 8.8.8.8 gw 192.168.1.1
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=56 time=8.323 ms

为什么内核网络堆栈会忽略我创建的默认路由?它是否使用了错误的标志、度量、引用?在 Google 上搜索这个问题很困难,因为有无数个与此症状有关的问题,而用户只是没有设置默认网关。

相关内容