到目前为止我尝试过的

到目前为止我尝试过的

自从我开始在路由器上使用 openwrt 后,一些奇怪的事情就开始发生。

我通常每天有 4 台设备(2 部手机和 2 台笔记本电脑)连接到 WiFi AP/路由器,但其中一台笔记本电脑(即 XPS 13 9365)突然开始“断开连接”。我之所以引用这个词,是因为理论上我仍然处于连接状态,但网络连接就是停止工作了。

这很奇怪,因为有些日子根本不会出现这个问题,而其他日子则是一场真正的噩梦,连接每隔几分钟就会停止工作。而且只适用于 XPS 13。其他设备运行良好,即使我同时连接了大约 10 个设备。

这是我注意到网络停止后立即得到的结果:

$ sudo iw dev "wlp60s0" link
Connected to **:**:**:**:**:** (on wlp60s0)
    SSID: my_ap
    freq: 2447
    RX: 15583826 bytes (14173 packets)
    TX: 1550845 bytes (6382 packets)
    signal: -40 dBm
    rx bitrate: 144.4 MBit/s MCS 15 short GI
    tx bitrate: 144.4 MBit/s MCS 15 short GI

    bss flags:  short-preamble short-slot-time
    dtim period:    2
    beacon int: 100

我还有一个 IP 地址等等:

$ ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: enx00e04c6810ec: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
5: wlp60s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.11/24 brd 10.0.0.255 scope global dynamic wlp60s0
       valid_lft 43060sec preferred_lft 43060sec
    inet6 fe80::fa63:3fff:fe2f:837/64 scope link 
       valid_lft forever preferred_lft forever

因此,从上面可以看出,我仍然连接到 AP 并且具有有效的 IP。但无论我尝试 ping 谁,我都会得到 100% 的数据包丢失。其他连接方式(如 ssh、浏览器等)也不起作用。请参阅:

$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
^C
--- 10.0.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1011ms

我还尝试检查是否有系统消息。但无济于事:

$ dmesg
$

笔记:sudo dmesg -c启动后立即发出命令以便更容易识别问题并且网络仍然可用。

我在Ubuntu 20.04.3下:

$ cat /etc/issue
Ubuntu 20.04.3 LTS \n \l

我的无线设备:

$ lspci | grep -i network
3c:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)

作为临时解决方法,我开发了一个脚本来停止 NetworkManager 并通过命令行重新连接。如下所示:

iface="wlp60s0"
essid="my_ap"
tmpfile="/tmp/wpa.conf"
pass="my_pass"

sudo systemctl stop NetworkManager.service
sudo iw dev "$iface" del
sudo iw phy phy0 interface add "$iface" type managed
sudo ip link set "$iface" up
sudo wpa_passphrase "$essid" "$pass" > "$tmpfile"
sudo wpa_supplicant -i"$iface" -c"$tmpfile" -B
sudo dhclient -v "$iface"

这让生活变得轻松一些,但当然这只是暂时的、基本的,远非理想。而且它也没有多大帮助,因为我无论如何都会时不时地失去连接,就像我使用 NetworkManager 时一样。它只是比等待 NetworkManager 重新启动更快……

到目前为止我尝试过的

  • 使用 禁用 wifi power_save sudo iw dev wlp60s0 set power_save off
  • 通过 NetworkManager 编辑/etc/NetworkManager/conf.d/default-wifi-powersave-on.conf并更改wifi.powersave = 3wifi.powersave = 2重新启动来禁用 wifi 省电。(来源:https://unix.stackexchange.com/a/315400/108418
  • 更改路由器上的 wifi 安全性(WPA -> WEP 或其他)(来源:20.04 更新后无法连接 5Ghz wifi
  • 将 wifi 模式从“N”改为“Legacy”。这个方法似乎解决了问题,但可能是因为我用的时间不够长。此外,网络速度下降显然使这个选项不切实际。
  • 启用 NetworkManager 调试模式并尝试识别可能的问题。

以上方法均无效。

我访问过的其他链接

这些是我的一些尝试,但症状不完全相同,或者提出的解决方案对我来说不起作用......

https://www.reddit.com/r/linuxquestions/comments/ausg6k/arch_wifi_stays_connected_but_theres_no_internet/ehc3oph/

https://blog.stigok.com/2017/03/26/wifi-loses-connectivity-periodically-wpasupplicant-reason-4.html

所以我在这里发布这一切,希望有人已经经历过这一切,也许可以提供一些启发......

非常感谢!

更新 #1

我找到了重现此问题的方法。每次我访问此页面并浏览照片(让浏览器同时并行加载多张照片)时,连接都会断开。

https://www.facebook.com/terraadentropelomundo/photos/

我想知道无线驱动程序在同时处理多个连接时是否存在问题。

更新 #2

在浏览其他论坛以寻求解决方案后,我遇到了这个问题:

当我将 AP 上的“信标间隔”从默认的 100 毫秒更改为 50 毫秒后,情况似乎有所好转。到目前为止,三天内没有出现断线的情况。

编辑:可以确认,经过此更改后问题似乎已得到解决。

(来源:https://bugs.archlinux.org/task/58457#comment185619

这是有道理的,因为我在将 AP 移至 openwrt 后开始遇到此问题。因此,英特尔驱动程序/固件肯定存在一些问题,但更改 AP 上的信标似乎可以解决问题。我会再测试几天,看看问题是否消失。

更新 #3

没用。即使在 openwrt 中使用 beacon 50ms,我仍然会不时断开连接,并且没有任何消息显示dmesg...

相关内容