我最近从 Windows 切换到 Void Linux,从那以后,我的互联网连接就变得极其不稳定。
症状:
- 在实际环境中/全新安装 Void Linux 后,浏览互联网非常流畅,下载和上传的互联网速度约为 100 Mbps。
- 几个小时后,浏览互联网不一致,虽然下载速度保持在 100 Mbps 左右(略低(?),并且也不一致,在 50-300 Mbps 之间),但上传速度受到很大影响:在 0 到 50 Mbps 之间(经过测试)在速度测试网和测试网)。
- 我尝试过的所有浏览器(Firefox 和 Chromium)都会出现这种情况。
- 当我的笔记本电脑装有 Windows 时,这种情况就不会发生。
- 这种情况仅发生在我的 Void Linux 笔记本电脑上,我的家庭网络上的其他设备没有出现此问题。
- 我大学的 eduroam WiFi 上不会发生这种情况。
ping
dig
当网站加载时间很长时,您可以随时访问并获得即时、正确的回复;进行 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
链路的容量,则必须将数据分割成多个数据包(分片)。这些多个数据包必须通过链路发送、接收、确认并在远端重新组装。如果您的链路配置错误,并且您必须对发送的每个数据包进行分段,则实际数据传输速率会下降。
以太网(有线)网络使用MTU
1500 字节。
由于 WiFi 每个数据包的额外开销(8 字节 PPPoE 标头),WiFi 使用MTU
1492。
您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
在终端窗口中运行并留意可疑消息。您可以随时使用其他信息更新您的问题。