连接到 Wifi 时,我无法 ping 通直接连接的计算机

连接到 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

答案1

您看到此情况的原因是 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(又名/8),而 wifi 网络则添加一条路由169.254.0.0/255.255.0.0(又名/16)。被/16认为更具体,因为它指的是较小的网络,因此它优先于有线网络。

至于如何解决这个问题,我会检查无线网络配置或 DHCP 服务器,看看为什么会推送额外的路由。同时,您可以使用以下命令手动删除错误的路线

ip route del 192.254.0.0/16 dev enp3s0

但这并不是真正的解决办法,只是一个创可贴。

相关内容