我最近在笔记本电脑上重新安装了 Debian 10。在此之前,我家的 AP 无线连接工作正常(无延迟、无断线……)。
但自从重新安装后,当我的笔记本电脑连接到 AP 时有时我的笔记本电脑无法通过无线接口连接任何东西。
笔记本电脑是Debian 10:
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
$ uname -a
Linux XXXX 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
我在用着wpa_supplicant v2.8-开发连接到我的 AP 和isc-dhclient-4.4.1从中获取 IP 地址。
这个问题没有固定的频率。有时我的笔记本电脑 5 分钟内就会断网,有时几个小时都没有问题。
当我意识到我的笔记本电脑失去连接时,我只需执行sudo wpa_cli reassociate
(sudo wpa_cli reconfigure
也可以工作),一切就会重新开始工作。
当我的笔记本电脑“断开连接”时,wpa_supplicant仍然连接到我家的 AP:
$ sudo wpa_cli status
bssid=b0:bb:e5:aa:bb:cc
freq=5260
ssid=MY-SSID
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.1.47
address=f4:8c:50:aa:bb:cc
uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
ieee80211ac=1
iproute2仍显示现有的 IP 地址:
$ ip a s wlo1
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f4:8c:50:aa:bb:cc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.47/24 brd 192.168.1.255 scope global dynamic wlo1
valid_lft 59381sec preferred_lft 59381sec
在我的家庭网络之外什么都无法访问:
$ ping -c4 9.9.9.9
PING 9.9.9.9 (9.9.9.9) 56(84) bytes of data.
From 192.168.1.47 icmp_seq=1 Destination host unreachable
From 192.168.1.47 icmp_seq=2 Destination host unreachable
From 192.168.1.47 icmp_seq=3 Destination host unreachable
From 192.168.1.47 icmp_seq=4 Destination host unreachable
--- 9.9.9.9 ping statistics ---
4 packets transmitted, 0 received, 4 errors, 100% packet loss, time 54ms pipe 4
笔记本电脑仍具有其默认网关:
$ ip r
default via 192.168.1.254 dev wlo1
192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.47
但甚至连 AP 都无法访问:
$ ping -c4 192.168.1.254
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
From 192.168.1.47 icmp_seq=1 Destination host unreachable
From 192.168.1.47 icmp_seq=2 Destination host unreachable
From 192.168.1.47 icmp_seq=3 Destination host unreachable
From 192.168.1.47 icmp_seq=4 Destination host unreachable
--- 9.9.9.9 ping statistics ---
4 packets transmitted, 0 received, 4 errors, 100% packet loss, time 36ms pipe 4
我必须输入以下wpa_cli
内容才能将笔记本电脑重新关联到 AP:
$ sudo wpa_cli
wpa_cli v2.8-devel
Copyright (c) 2004-2019, Jouni Malinen <[email protected]> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Selected interface 'wlo1'
Interactive mode
> reassociate
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>SME: Trying to authenticate with b0:bb:e5:aa:bb:cc (SSID='MY-SSID' freq=5260 MHz)
<3>Trying to associate with b0:bb:e5:aa:bb:cc (SSID='MY-SSID' freq=5260 MHz)
<3>Associated with b0:bb:e5:aa:bb:cc
<3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
<3>WPA: Key negotiation completed with b0:bb:e5:aa:bb:cc [PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to b0:bb:e5:aa:bb:cc completed [id=0 id_str=]
>
此后,一切运行正常,直到下次断开连接。
但我不知道这个问题的原因是什么......
wpa_supplicant 配置文件非常精简(和重新安装之前一样,没有~50 个其他 AP 配置):
$ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1
p2p_disabled=1
fast_reauth=1
network={
ssid="MY-SSID"
psk="XXXXX"
}
我以与以前相同的方式启动 wpa_supplicant 守护进程:
sudo wpa_supplicant -B -i wlo1 -c /etc/wpa_supplicant/wpa_supplicant.conf
内核环缓冲区没有显示任何有趣的内容:
[64851.308454] wlo1: deauthenticating from b0:bb:e5:aa:bb:cc by local choice (Reason: 2=PREV_AUTH_NOT_VALID)
[64851.320788] wlo1: authenticate with b0:bb:e5:aa:bb:cc
[64851.328643] wlo1: send auth to b0:bb:e5:aa:bb:cc (try 1/3)
[64851.335289] wlo1: authenticated
[64851.336970] wlo1: associate with b0:bb:e5:aa:bb:cc (try 1/3)
[64851.340532] wlo1: RX ReassocResp from b0:bb:e5:aa:bb:cc (capab=0x511 status=0 aid=69)
[64851.343218] wlo1: associated
[64851.394031] wlo1: Limiting TX power to 23 (23 - 0) dBm as advertised by b0:bb:e5:aa:bb:cc
第一行取消认证是通过重新关联引起的wpa_cli。最后一行关于 wlo1(当连接丢失时)没有显示任何内容,并且在问题发生之前很久就出现了。
我不知道这里还能给出什么。我也不知道这里的问题是什么...
对于先前进行的研究:
- wpa_supplicant 是唯一管理我的 AP 连接的软件(例如与 NetworkManager 没有冲突)
- 我的 AP 上的其他设备没有问题
- 如果没有手动操作,wpa_supplicant 将不会重新关联自身
- 即使 NIC 正在使用,笔记本电脑也会断开连接
- 有些帖子建议正确设置
REGDOMAIN
值/etc/default/crda
什么都没起作用。所以如果这里有人知道我应该寻找什么...
或者有人可能有魔术吗?
祝你今天过得愉快!