无法 ping 路由器,但广播 ping 返回其响应

无法 ping 路由器,但广播 ping 返回其响应

我在一台旧 iMac(2008 年末)上全新安装了 Linux Mint Mate 64。我无法使用网线连接,所以我需要使用 wlan。我已经安装了 Broadcom 驱动程序,网络管理器显示了 wi-fi 连接,一切似乎都很好...但我无法连接到除本地主机之外的任何东西。

我已尝试减少问题,但我相信连接路由器时出现问题。如果我 ping 它,我就会 100% 丢包。如果我 ping 广播,我会收到路由器的回复!

$ ping 192.168.10.1 
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
From 192.168.10.111 icmp_seq=1 Destination Host Unreachable

$ ping -b 192.1168.10.255
WARNING: pinging broadcast address
PING 192.168.10.255 (192.168.10.255) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=3 ttl=255 time=299ms
...

请注意,DHCP 有效,因为机器在第一个ping命令中被正确识别为 192.168.10.111。


编辑1:更多信息

$ arp -a

Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.10.104                   (incomplete)                              wlan0
192.168.10.112           ether   38:c9:86:24:d6:88   C                     wlan0
192.168.10.1                     (incomplete)                              wlan0

# arp -d 192.168.10.1

没有回复,命令返回,没有任何输出。

$ route -an

“a”标志未被识别。

$ route -n

Kernel IP routing table Destination     Gateway         Genmask        Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.1    0.0.0.0         UG    1024   0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

请注意,我之前已成功删除 169.254.0.0 路由,但在重新启动网络管理器后它又重新出现。

编辑 1 结束


编辑2 在不同的机器上,在同一网络中(也使用 wi-fi 连接)arp -a返回以下内容:

$ arp -a
? (169.254.221.46) at c8:ff:28:46:52:c5 on en1 [ethernet]
router.local (192.168.10.1) at 0:a0:a2:62:c1:dc on en1 ifscope [ethernet]
nas.local (192.168.10.104) at 0:11:32:38:e:1 on en1 ifscope [ethernet]
? (192.168.10.105) at a8:86:dd:a5:8d:37 on en1 ifscope permanent [ethernet]
? (192.168.10.255) at ff:ff:ff:ff:ff:ff on en1 ifscope [ethernet]

该机器是mac,因此该route命令不提供路由列表,但我尝试了不同的命令

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.10.1       UGSc           61        0     en1
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             70 30572605     lo0
169.254            link#5             UCS             1        0     en1
169.254.221.46     c8:ff:28:46:52:c5  UHLSW           0        0     en1
192.168.10         link#5             UCS             2        0     en1
192.168.10.1/32    link#5             UCS            11        0     en1
192.168.10.1       0:a0:a2:62:c1:dc   UHLWIir        51      393     en1   1149
192.168.10.104     0:11:32:38:e:1     UHLWIi          5    81773     en1    733
192.168.10.105/32  link#5             UCS             1        0     en1
192.168.10.105     a8:86:dd:a5:8d:37  UHLWI           0  1138657     lo0
192.168.10.255     ff:ff:ff:ff:ff:ff  UHLWbI          0       16     en1

我仍在调查 169.254.xx 路由的来源,但它们似乎不会在其他计算机上引起任何问题。

结束编辑2


编辑3

$ arping -I wlan 0:a0:a2:62:c1:dc
arping: unknown host 0:a0:a2:62:c1:dc

尝试使用 IPv6 和 IPv4 地址对其他计算机执行 ping/arping 操作时,arp 列表中的每台计算机都会返回“目标主机无法访问”

结束编辑3


我不知道如何“调试”此连接问题。我搜索过论坛,尝试手动设置 BSSID(它是空的),我将 DNS 设置为 192.168.10.1,8.8.8.8(并重新启动所有内容很多次),但没有运气。我应该尝试什么?

答案1

使用命令检查您的路由表route -n

使用 检查您的 ARP 表arp -a。如果您的 ARP 表混乱,请使用arp -d

当您找到路由器 MAC 地址后,请使用arping -I wlan0 <router_mac_address>

这将使用 ARP 而不是 ICMP。如果你可以使用wireshark/tcpdump,请发布一些痕迹

答案2

为了解决这个问题,我有选择地禁用了我的无线卡的所有可能的驱动程序。

$ sudo modprobe -r b43 ssb wl brcmfmac brcmsmac bcma

我还删除了任务栏图标中显示的所有连接network-manager

此时我已开始分别重新启用每个驱动程序。每次我都必须等待一段时间才能network-manager重新连接。这是一个例子:

$ sudo modprobe -r wl
(wait for network-manager to re-connect to the WLAN)
$ ping 192.168.10.1
(ping unable to connect, so I'll remove the driver again)
$ modprobe -r wl

我这样做直到发现 b43 是正确的驱动程序。此时,我已将 apt 中的所有其他驱动程序清除/列入黑名单,现在一切正常。

这份文件很有启发性:https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx

相关内容