Networking

切換到 Linux 後筆記型電腦網際網路連接不可靠

  • February 17, 2022

我最近從 Windows 切換到 Void Linux,從那以後,我的網際網路連接一直非常不可靠。

症狀:

  • 在實時環境中/全新安裝 Void Linux 後,瀏覽網際網路很流暢,下載和上傳網際網路速度約為 100 Mbps。
  • 幾個小時後,瀏覽網際網路不一致,雖然下載速度保持在 100 Mbps 左右(略低(?),並且也不一致,在 50-300 Mbps 之間),但上傳速度受到很大影響:在 0 到 50 Mbps 之間(經過測試在speedtest.nettestmy.net上)。
  • 這發生在我嘗試過的所有瀏覽器(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

一些技巧。

不確定大量 TCP 重傳是否與您的 wifi 連接有關,但如果您說它在不同的環境中正常工作,則可能會**受到干擾。**檢查您連接的是 2.4 Ghz 還是 5 Ghz 以及哪個頻道(頻率)。您也許可以配置您的路由器以選擇另一個頻道,或者讓它確定一個不那麼擁擠、更優化的頻道,如果它足夠複雜的話。

您的路由器可能同時支持 2.4 Ghz 和 5 Ghz,但您的電腦 wifi 是否能夠在這兩個頻率範圍內執行還有待觀察。無論硬體功能如何,作業系統和驅動程序都必須支持這些功能。

也可能是驅動程序問題。嘗試辨識您的硬體,尤其是晶片組並檢查https://wireless.wiki.kernel.org/以查看它是否受支持以及合適的驅動程序可能是什麼。嘗試lspci -v獲取有關您的板載設備的一些資訊。驗證您的 Linux 核心版本,例如使用uname -a.

我還建議sudo dmesg -wT在終端視窗中執行並註意可疑消息。您可以隨時使用其他資訊更新您的問題。

檢查您的 WiFi MTU,使用

ip link

或者

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

還要注意您的 WiFi 介面的名稱。

( MTUMaximum Transmission Unit)是單次網路傳輸可以發送的最大數據包的大小。如果一個數據包超出 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”。

引用自:https://unix.stackexchange.com/questions/690007