我在一台旧 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