尝试连接wifi时“通过本地选择中止认证(原因:3 = DEAUTH_LEAVING)”


13

我在PC上安装了64位Debian 9 Stretch(GNOME桌面)。安装atheros固件后,自动检测到我的USB无线适配器(TP-LINK TL-WN722N):

apt-get install firmware-atheros

但是,无论它们受密码保护还是不受保护,我都无法连接到任何无线框架。

我插入了USB。它已被检测到,已发送身份验证,已获得身份验证,但立即中止了身份验证。禁用IPV6不能解决我的问题。这是我的dmesg报告:

[   59.880805] usb 1-1.4: new high-speed USB device number 4 using ehci-pci
[   60.005727] usb 1-1.4: New USB device found, idVendor=0cf3, idProduct=9271
[   60.005729] usb 1-1.4: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[   60.005731] usb 1-1.4: Product: USB2.0 WLAN
[   60.005732] usb 1-1.4: Manufacturer: ATHEROS
[   60.005734] usb 1-1.4: SerialNumber: 12345
[   60.324981] usb 1-1.4: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[   60.325069] usbcore: registered new interface driver ath9k_htc
[   60.348095] usb 1-1.4: firmware: direct-loading firmware ath9k_htc/htc_9271-1.4.0.fw
[   60.629962] usb 1-1.4: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
[   60.880826] ath9k_htc 1-1.4:1.0: ath9k_htc: HTC initialized with 33 credits
[   61.111895] ath9k_htc 1-1.4:1.0: ath9k_htc: FW Version: 1.4
[   61.111897] ath9k_htc 1-1.4:1.0: FW RMW support: On
[   61.111899] ath: EEPROM regdomain: 0x809c
[   61.111900] ath: EEPROM indicates we should expect a country code
[   61.111901] ath: doing EEPROM country->regdmn map search
[   61.111911] ath: country maps to regdmn code: 0x52
[   61.111912] ath: Country alpha2 being used: CN
[   61.111912] ath: Regpair used: 0x52
[   61.122477] ieee80211 phy0: Atheros AR9271 Rev:1
[   61.185069] ath9k_htc 1-1.4:1.0 wlx18a6f7160a49: renamed from wlan0
[   61.224640] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   61.361032] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   61.535923] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   61.743450] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   69.190250] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   70.360621] wlx18a6f7160a49: authenticate with 74:23:44:dc:0f:d7
[   70.551637] wlx18a6f7160a49: send auth to 74:23:44:dc:0f:d7 (try 1/3)
[   70.556012] wlx18a6f7160a49: authenticated
[   75.555233] wlx18a6f7160a49: aborting authentication with 74:23:44:dc:0f:d7 by local choice (Reason: 3=DEAUTH_LEAVING)
[   76.872114] wlx18a6f7160a49: authenticate with 74:23:44:dc:0f:d7
[   77.061146] wlx18a6f7160a49: send auth to 74:23:44:dc:0f:d7 (try 1/3)
[   77.065158] wlx18a6f7160a49: authenticated
[   82.061225] wlx18a6f7160a49: aborting authentication with 74:23:44:dc:0f:d7 by local choice (Reason: 3=DEAUTH_LEAVING)
[   83.775718] wlx18a6f7160a49: authenticate with 74:23:44:dc:0f:d7
[   83.965040] wlx18a6f7160a49: send auth to 74:23:44:dc:0f:d7 (try 1/3)
[   83.969807] wlx18a6f7160a49: authenticated
[   88.969792] wlx18a6f7160a49: aborting authentication with 74:23:44:dc:0f:d7 by local choice (Reason: 3=DEAUTH_LEAVING)
[   91.207178] wlx18a6f7160a49: authenticate with 74:23:44:dc:0f:d7
[   91.395860] wlx18a6f7160a49: send auth to 74:23:44:dc:0f:d7 (try 1/3)
[   91.400263] wlx18a6f7160a49: authenticated
[   93.996839] wlx18a6f7160a49: aborting authentication with 74:23:44:dc:0f:d7 by local choice (Reason: 3=DEAUTH_LEAVING)
[   94.061841] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready
[   94.233433] IPv6: ADDRCONF(NETDEV_UP): wlx18a6f7160a49: link is not ready

我不知道为什么会这样,也不知道为什么一次尝试就多次中止了。

编辑:iwconfig报告:

enp3s0    no wireless extensions.

wlx18a6f7160a49  IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

lo        no wireless extensions.

你是如何接近从AP
瑞˚F里贝罗

Answers:


15

不知何故,我的固件在使用长接口名称时遇到了麻烦。所以我运行了这个命令来防止它:

ln -s /dev/null /etc/systemd/network/99-default.link

而且有效。


总而言之,本文帮助我理解此修复程序实际上起作用的原因。这是因为我们覆盖默认/lib/systemd/network/99-default.link包含一个文件NamePolicy不讨好的固件。顺便说一句,我仍然无法加入某些网络。碰巧默认监管域与我的位置不匹配,所以我不得不根据发出– iw reg set <MyCountryCode>并编辑/etc/default/crda文件
user3249994 2009年

我在rt2x00上观察到了同样的问题,该解决方法立即起作用。不过,如果有人可以解释它的工作原理以及正确的解决方案,我将不胜感激。
Helmut Grohne

3
尽管我同意这是一个功能性的解决方法,但是如果有人可以更好地解释“为什么”,那将是很棒的……我想这与NetworkManager中的某些功能有关,但这纯粹是一个小问题。
CJ斯蒂尔

1
这有帮助,我已经解决了一个多月的问题,几个月前我升级了debian并开始看到此问题,但仅使用特定的路由器。我有英特尔wifi芯片(iwlwifi模块)。
KrzysztofKrasoń19年

1
这适用于我的Ralink MTK7601u无线适配器。$ sudo nmcli dev wifi connect MySSID引发错误消息,例如Error: Connection activation failed: (53) The Wi-Fi network could not be found.dmesg报告几乎相同。
Arnie97 '19

7

正如其他人所说,该问题是由设备获得的非标准名称引起的(即不是wlan *)。链接/ dev / null对我不起作用,因此我必须创建udev规则来重命名接口:

/etc/udev/rules.d/70-persistent-net.rules

加:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?\*", ATTRS{product}=="802.11 n WLAN", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"

调整ATTRS{product}到您的特定设备。在这里查看如何找到它


我遇到了同样的问题,只是遇到了这个解决方案...是否只是ATTRS{product}需要更换?是否DRIVERS还需要有东西存在,或者它实际上应该被设置为=?谢谢!
J. Taylor,

1
一年多以前做过吗,坦率地说,我不记得细节了。我相信ATTRS {product}应该足以匹配您的设备。同样,它应该是DRIVERS ==“?*”-叠星吃。
Maciek

链接断开了!
麻醉机

这是针对使用NetworkManager的用户的解决方案。该规则可以更加灵活,这样您就不必在意了ATTRS{product}。矿井的配置如下:SUBSYSTEM=="net", ACTION=="add", KERNEL=="wlan*", NAME="wlan0"
rodvlopes

1

我在使用两个不同的USB WiFi棒时遇到相同的问题。对此修复程序也适用于我,谢谢。
我认为问题是与NetworkManager和固件有关的:当我使用同一台计算机和USB记忆棒,相同的Linux发行版(Debian 9.3),但使用wicd代替NetworkManager时,则出现了很长的非标准设备名称工作,并且此修复程序不是必需的。


我安装了wicd,之后连接正常,谢谢!
Hayden Thring

1

接受的答案也对我有用。但是我不确定,使用指向/ dev / null的链接是最好的解决方案,因为在3到4个月内我会很困惑地在这个地方找到这样的链接。

在我的Raspberry Pi上的Raspbian安装中,我找到了一个常规文件/etc/systemd/network/99-default.link,其内容如下:

# This machine is most likely a virtualized guest, where the old persistent
# network interface mechanism (75-persistent-net-generator.rules) did not work.
# This file disables /lib/systemd/network/99-default.link to avoid
# changing network interface names on upgrade. Please read
# /usr/share/doc/udev/README.Debian.gz about how to migrate to the currently
# supported mechanism.

我使用此常规文件而不是符号链接来解决此问题。我认为此解决方案的优点是系统上有某种文档(也许我应该添加指向此页面的链接…)。

这将给未来我带来些什么。>;->


0

就像其他人所说的那样,问题是由设备获得的非标准名称引起的(即不是wlan *)。下面是使用systemd.networkdNetworkManager时设置网络接口名称的正确方法。

系统化

链接到/dev/null可能会解决问题时,正确的方法是创建一个.link file设置设备名称。

创建/etc/systemd/network/50-wlan.link具有以下内容:

[Match]
Type=wlan

[Link]
Name=wlan0

重新启动或重新启动网络,然后检查结果: udevadm info /sys/class/net/wlan0 | grep ID_NET_NAME=

可在此处找到更多详细信息和调试信息:https : //www.freedesktop.org/software/systemd/man/systemd.link.html

网络管理员

使用NetworkManager时,可以通过在/etc/udev/rules.d目录中创建规则来重命名接口。

创建/etc/udev/rules.d/70-rename-wlan.rules具有以下内容:

SUBSYSTEM=="net", ACTION=="add", KERNEL=="wlan*", NAME="wlan0"

如果一切顺利,您应该wlan0经过一会儿后在设备中看到reboot

root@bananapi:~# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group 
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group 

并且您可以使用连接到wifi nmcli d wifi connect MEU_WIFI_SSID password MEU_PASSWORD。该nmcli会坚持在重启后连接并重新连接。


我认为NetworkManager和systemd-networkd都不会重命名您的设备。这是由udev完成的。因此,是的,编写udev规则是可行的,创建.link文件也是如此(在这种情况下,.link文件由udev处理,而不是systemd-networkd处理)。
thaller

在第二个示例中,很明显udev可以完成工作,而不是NetworkManager。您可能很强硬,但是在第二个示例中systemd-networkd也可以完成工作(也许它与udev进行了交流)。
rodvlopes

-1

接受的解决方案对我不起作用。

我已通过在连接属性中禁用IPv6解决了该问题。运行nm-connection-editor,选择有问题的连接,按带有齿轮图标的按钮(在我的情况下),转到“ IPv6设置”选项卡,在“方法”中选择“忽略”选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.