WiFi 身份验证超时

Bar*_*chs 25 linux fedora wireless-networking wpa-supplicant

从今天起,我遇到了一个非常烦人的问题,即 HP ProBook 上的 WiFi 不再进行身份验证。我没有更改任何设置,我的手机连接到 WiFi 正常。尝试另一个 WiFi 接入点(实际上是我的手机热点)也不起作用。

扫描似乎有效,因为 SSID 显示正常。此外,如果没有提供钥匙,它会很好地要求它。但是,我在dmesg以下内容中看到了这一点:

[ 1854.199036] wlo1: authenticate with 92:68:c3:f4:ec:3a
[ 1854.201743] wlo1: send auth to 92:68:c3:f4:ec:3a (try 1/3)
[ 1854.275690] wlo1: send auth to 92:68:c3:f4:ec:3a (try 2/3)
[ 1854.334745] wlo1: send auth to 92:68:c3:f4:ec:3a (try 3/3)
[ 1854.393245] wlo1: authentication with 92:68:c3:f4:ec:3a timed out
Run Code Online (Sandbox Code Playgroud)

我在 Fedora 20 上遇到了这个问题,所以我升级到了 21。问题还是一样。甚至更新到 22 测试版,使用wpa_supplicant2.3 版。同样的问题。

在我试图解决这个问题时,我发现了一些额外的东西:

  • 该适配器在 Windows 7 中工作正常,所以我的路由器和硬件都很好。
  • 我尝试使用wpa_cli,但收到无法连接的消息。
  • ctrl_interfacewpa_supplicant.conf不创建

在 中wpa_supplicant.log,我得到了这个:

wlo1: SME: Trying to authenticate with 00:24:01:df:c2:fb (SSID='MYSSID' freq=2467 MHz)
wlo1: SME: Trying to authenticate with 00:24:01:df:c2:fb (SSID='MYSSID' freq=2467 MHz)
wlo1: SME: Trying to authenticate with 00:24:01:df:c2:fb (SSID='MYSSID' freq=2467 MHz)
wlo1: SME: Trying to authenticate with 00:24:01:df:c2:fb (SSID='MYSSID' freq=2467 MHz)
wlo1: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="MYSSID" auth_failures=1 duration=10 reason=CONN_FAILED
Run Code Online (Sandbox Code Playgroud)

更新即使没有任何加密的接入点也不会关联。

Bar*_*chs 18

我在这里找到了解决方案:

echo "options iwlwifi 11n_disable=1 wd_disable=1" | sudo tee /etc/modprobe.d/iwlwifi.conf
Run Code Online (Sandbox Code Playgroud)

重新启动,它再次工作。

  • 在这里添加一些澄清 802.11n/ac 部分可以狡猾地禁用它们 (5认同)
  • 好奇为什么你不直接说“将其添加到conf文件中”而不是“tee”构造? (4认同)
  • 一些注释*(@BartFriederichs 请在帖子中添加一些注释)*。第一:“wd_disable”参数不再存在。`11n_disable=1` 确实对我有帮助,但正如其他人提到的那样,这在某种程度上降低了速度。我建议您尝试与“1”不同的值,例如“11n_disable=8”等。有关允许的值及其含义,请参阅“modinfo iwlwifi”。另一个注意事项:也要修改你的路由器设置。例如,我的路由器可以选择禁用“802.11n”。但真正对我有帮助的是让路由器从不使用 40Mh 宽度。只有 20Mh 就可以工作,所以最后我不必完全禁用“11n”。 (3认同)
  • @gws,完全不知道,但这是来自来源的引用,加上这样人们就可以轻松地将其复制并粘贴到终端中,而不用启动编辑器。 (2认同)
  • 对于它的价值,可悲的是,这是升级到 Ubuntu 20.04LTS 后让我摆脱困境的原因。我的 Thinkpad 笔记本电脑将无法再连接到 TP-Link 路由器,而它仍在与另一个运行 OpenWRT 的路由器一起工作。哈。 (2认同)
  • @linuxdev2013“可以狡猾地禁用它们”吗?这给我带来了更多的困惑,假设这是错误的语法/拼写错误 (2认同)

小智 9

如果 WiFi 速度对您很重要,我建议您切换iwd为替代方案wpa_supplicant,因为禁用 802.11n(如带有该选项的其他答案11n_disable中的建议)可能会导致支持 802.11n 的 2.4GHz 网络的网络性能下降。

我让它在运行 Manjaro GNOME 的 HP Elitebook 1030 上运行,我很高兴现在可以从家庭网络提供的整个 WiFi 带宽中获益。以前,禁用 802.11n 是我所知道的唯一选择。这里有一个关于如何启动iwd和运行而不是wpa_supplicant.

安装与设置

安装所需的包:

sudo dnf install iwd
Run Code Online (Sandbox Code Playgroud)

编辑 NetworkManager 配置(我假设您正在运行 NetworkManager):

sudo nano /etc/NetworkManager/NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)
# https://iwd.wiki.kernel.org/networkmanager#nm_configuration
[device]
wifi.backend=iwd
Run Code Online (Sandbox Code Playgroud)

上面的配置将使 NetworkManager 使用iwd而不是wpa_supplicant您遇到问题的网络管理器。

我们现在需要启动/停止/重新启动所需的服务以加载和应用配置。

sudo systemctl stop wpa_supplicant.service
sudo systemctl stop NetworkManager.service
sudo systemctl start iwd
sudo systemctl restart NetworkManager.service
Run Code Online (Sandbox Code Playgroud)

并使您的更改永久生效(通过在启动时启动正确的服务并且不干扰错误的服务):

sudo systemctl disable wpa_supplicant.service
sudo systemctl enable iwd
Run Code Online (Sandbox Code Playgroud)

您现在应该能够使用普通 GUI 连接到 WiFi 网络。如果这种连接方式不适合您,请尝试使用iwctl命令行界面。连接到正确的网络应该可以这样工作。要获取分配的 IP 地址,您可能需要运行命令dhclient

请参阅下面的 Arch Wiki 链接,了解有关iwd和 的更多信息iwctl。如果您遇到密码 (PSK) 无法正常工作等问题,另请参阅 Arch Wiki。

如果您可以成功连接到网络,请尝试删除该/etc/modprobe.d/iwlwifi.conf文件以在下次启动/模块重新加载时重新激活 802.11n。iwd毕竟,这就是切换到 的目的。

sudo rm /etc/modprobe.d/iwlwifi.conf
Run Code Online (Sandbox Code Playgroud)

来源

步骤取自linux-whv.deArchWiki on iwd