切换到 Linux 后笔记本电脑互联网连接不可靠

切换到 Linux 后笔记本电脑互联网连接不可靠

我最近从 Windows 切换到 Void Linux,从那以后,我的互联网连接就变得极其不稳定。

症状:

  • 在实际环境中/全新安装 Void Linux 后,浏览互联网非常流畅,下载和上传的互联网速度约为 100 Mbps。
  • 几个小时后,浏览互联网不一致,虽然下载速度保持在 100 Mbps 左右(略低(?),并且也不一致,在 50-300 Mbps 之间),但上传速度受到很大影响:在 0 到 50 Mbps 之间(经过测试)在速度测试网测试网)。
  • 我尝试过的所有浏览器(Firefox 和 Chromium)都会出现这种情况。
  • 当我的笔记本电脑装有 Windows 时,这种情况就不会发生。
  • 这种情况仅发生在我的 Void Linux 笔记本电脑上,我的家庭网络上的其他设备没有出现此问题。
  • 我大学的 eduroam WiFi 上不会发生这种情况。
  • pingdig当网站加载时间很长时,您可以随时访问并获得即时、正确的回复;进行 CLI 速度测试表明(大部分)下载速度正常(见上文)。
  • Wireshark 显示大量 TCP 重传和重复 ACK,每个重传之间会经过几秒钟,但我不能 100% 确定正常数量是多少。 (从我所能收集到的一点点来看,我相当确定这个数额是不正常的。)
  • 互联网有时随机掉落。
  • 所有这些症状都是极其随机的,我似乎总是遇到新的问题。

我尝试过的事情:

  • 由于在我运行系统升级时互联网开始下降,我认为切换到较旧的内核版本可能会起作用,但事实并非如此(在版本 5.14、5.15 和 5.16 上进行了测试)。
  • 我有将我的笔记本电脑供应商列入黑名单acer_wmi驱动程序列入黑名单,但似乎并没有什么影响。
  • 我努力了设置我的 MTU到一个广泛的值(1000 - 1492)无济于事。
  • 我尝试过使用多个公共 DNS 服务器(Cloudflare、Google、OpenDNS)。
  • 我检查了我的 WiFi 卡的电源管理,电源管理已关闭。

我的想法:

  • 我不认为这可能是硬件问题,因为我的笔记本电脑连接到大学的 WiFi 没有任何问题,并且家庭网络上的其他设备连接到路由器并且具有良好的下载和上传速度。
  • 我认为这可能是驱动程序问题,但我找不到任何好的资源来解决 WiFi 驱动程序问题+当我需要解决某些问题时,这种不可靠的互联网没有帮助。

信息:

  • 日志文件或dmesg.
  • 网卡:Intel Corporation Wi-Fi 6 AX200
  • 防火墙已关闭。
  • 虽然我不是唯一使用家庭网络的人,但它是确实不拥堵(我几乎是唯一一个在上面产生流量的人)。

iwconfig输出:

lo        no wireless extensions.

wlp1s0    IEEE 802.11  ESSID:"energifyn-70209695"
          Mode:Managed  Frequency:5.24 GHz  Access Point: 00:0F:94:C5:7E:D8
          Bit Rate=40.5 Mb/s   Tx-Power=22 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=43/70  Signal level=-67 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:12  Invalid misc:7   Missed beacon:0

ip address输出:

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
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 18:26:49:43:cd:99 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.251/24 brd 192.168.20.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 85264sec preferred_lft 85264sec
    inet6 fe80::3d37:94bc:a28a:60c5/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

ip route输出:

default via 192.168.20.254 dev wlp1s0 proto dhcp src 192.168.20.252 metric 3002
192.168.20.0/24 dev wlp1s0 proto dhcp scope link src 192.168.20.252 metric 3002

ip -s -s link show dev wlp1s0输出:

2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 18:26:49:43:cd:99 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped missed  mcast
    2497582    3439     0       0       0       0
    RX errors: length   crc     frame   fifo    overrun
               0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    615263     2579     0       0       0       0
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       2

resolv.conf内容:

# Generated by resolvconf
domain fibernetcpe
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 192.168.20.254

答案1

检查您的 WiFi MTU,使用

ip link

或者

ip l | grep $(ip r | awk '/default/ {print $5}' ) | awk '{print $2, $4, $5}'

还要注意您的 WiFi 接口的名称。

(最大传输单元MTU)是单次网络传输中可以发送的最大数据包的大小。如果数据包超出了 MTU链路的容量,则必须将数据分割成多个数据包(分片)。这些多个数据包必须通过链路发送、接收、确认并在远端重新组装。如果您的链路配置错误,并且您必须对发送的每个数据包进行分段,则实际数据传输速率会下降。

以太网(有线)网络使用MTU1500 字节。

由于 WiFi 每个数据包的额外开销(8 字节 PPPoE 标头),WiFi 使用MTU1492。

MTU应该由 DHCP 服务器设置,检查路由器的配置。

您可以设置自己的MTU(设置不会在重新启动后保留)

sudo ip link set dev name mtu 1492

其中“name”是上面的接口名称。

这是一个例子:

walt@squid:~(0)$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp63s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:24:21:7f:e5:1c brd ff:ff:ff:ff:ff:ff
3: wlxf46d04b1790f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether f4:6d:04:b1:79:0f brd ff:ff:ff:ff:ff:ff
walt@squid:~(0)$   sudo ip link set dev wlxf46d04b1790f mtu 1492
[sudo] password for walt: 
walt@squid:~(0)$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp63s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:24:21:7f:e5:1c brd ff:ff:ff:ff:ff:ff
3: wlxf46d04b1790f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether f4:6d:04:b1:79:0f brd ff:ff:ff:ff:ff:ff

我的 WiFi“接口名称”是“ wlxf46d04b1790f”。

答案2

一些技巧。

不确定 TCP 重传次数过多是否与您的 wifi 连接有关,但有可能是干涉如果你说它在不同的环境下工作得很好。检查您连接的是 2.4 Ghz 还是 5 Ghz 以及哪个频道(频率)。您也许可以将路由器配置为选择另一个通道,或者让它确定一个不太拥挤、更优化的通道(如果它足够复杂)。

您的路由器可能同时支持 2.4 Ghz 和 5 Ghz,但您的计算机 WiFi 是否能够在这两个频率范围上运行还有待观察。无论硬件功能如何,操作系统和驱动程序都必须支持这些功能。

A驱动程序问题也是可以的。尝试识别您的硬件,特别是芯片组并检查https://wireless.wiki.kernel.org/查看它是否受支持以及合适的驱动程序是什么。尝试lspci -v获取有关您的机载设备的一些信息。使用例如验证您的 Linux 内核版本uname -a

我还建议sudo dmesg -wT在终端窗口中运行并留意可疑消息。您可以随时使用其他信息更新您的问题。

相关内容