Linux
當連接到 Wifi 時,我無法 ping 直接連接的電腦
我正在執行最新版本的 Pop!奧斯。
我有一台筆記型電腦通過乙太網電纜連接到我的主電腦。
筆記型電腦 IP 是 169.254.83.40,我的主機 IP 是 169.254.83.50 在連接的介面上。我的wifi介面在主電腦上是192.168.0.20。
當我連接到 wifi 並嘗試從我的主電腦 ping 我的筆記型電腦時,我得到以下資訊。
PING 169.254.83.40 (169.254.83.40) 56(84) bytes of data. From 192.168.0.20 icmp_seq=1 Destination Host Unreachable From 192.168.0.20 icmp_seq=2 Destination Host Unreachable From 192.168.0.20 icmp_seq=3 Destination Host Unreachable
從wifi斷開連接後,我可以成功ping通。下面是我的 ifconfig 輸出。
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255 ether e8:4e:06:7d:d7:8f txqueuelen 1000 (Ethernet) RX packets 38305 bytes 36156135 (36.1 MB) RX errors 0 dropped 1 overruns 0 frame 0 TX packets 26255 bytes 3680006 (3.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 169.254.83.50 netmask 255.0.0.0 broadcast 169.255.255.255 ether a8:a1:59:2b:6c:ee txqueuelen 1000 (Ethernet) RX packets 1294 bytes 87685 (87.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1818 bytes 121833 (121.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12029 bytes 1257930 (1.2 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12029 bytes 1257930 (1.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 netstat -nr Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 enp3s0 0.0.0.0 169.254.83.50 0.0.0.0 UG 0 0 0 enp4s0 169.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 enp4s0 169.0.0.0 169.254.83.50 255.0.0.0 UG 0 0 0 enp4s0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp3s0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
您看到這一點的原因是 wifi 連接添加了一條比有線連接上的路線更具體的路線(我已用星號標註了重要的內容):
Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 enp3s0 0.0.0.0 169.254.83.50 0.0.0.0 UG 0 0 0 enp4s0 **169.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 enp4s0 169.0.0.0 169.254.83.50 255.0.0.0 UG 0 0 0 enp4s0 **169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp3s0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
(
enp4s0
是有線的,enp3s0
是無線的)您的有線網路到達 169.254.83.40 的路由是
169.0.0.0/255.0.0.0
(aka/8
),而 wifi 網路添加的路由是169.254.0.0/255.255.0.0
(aka/16
)。被/16
認為更具體,因為它指的是較小的網路,因此它優先於有線網路。至於如何解決這個問題,我會檢查無線網路配置或 DHCP 伺服器,看看為什麼會推送額外的路由。同時,您可以手動刪除錯誤路線
ip route del 192.254.0.0/16 dev enp3s0
但這不是一個真正的解決方案,只是一個創可貼。