![禁用 802.11n 稳定但速度慢,启用速度快但不稳定](https://linux22.com/image/895024/%E7%A6%81%E7%94%A8%20802.11n%20%E7%A8%B3%E5%AE%9A%E4%BD%86%E9%80%9F%E5%BA%A6%E6%85%A2%EF%BC%8C%E5%90%AF%E7%94%A8%E9%80%9F%E5%BA%A6%E5%BF%AB%E4%BD%86%E4%B8%8D%E7%A8%B3%E5%AE%9A.png)
我最近从 Windows 10 切换到 Ubuntu 16.04。在了解到 17.04 实际上支持 KabyLake CPU 后,我彻底清空了硬盘并切换到 17.04。
我有一台戴尔 Inspiron 15 5000 系列,配备英特尔无线 3165。
当我使用 Windows 10 时,WiFi 可以全速完美运行,不会断开连接,但自从切换到 Ubuntu 后,我的 WiFi 连接速度非常慢。我在 Google 上搜索并找到了各种建议的解决方案,例如忽略 IPv6、禁用/启用 802.11n。
我尝试的所有方法都不起作用,除了更改 中的 802.11n 值外,没有任何效果/etc/modprobe.d/iwlwifi.conf
。
目前此文件有options iwlwifi 11n_disable=1
,但测试速度https://fast.com/给我大约 2-4 Mbps。将值更改为 8 可使我的 WiFi 全速运行(60-80 Mbpshttps://fast.com/),但在短暂不活动之后它停止工作(没有断开连接,但 ping 8.8.8.8 无法解析主机并且网页无法加载),但经过大约一分钟的尝试后,它似乎又开始全速工作。
调试 wifi 信息 [如果有任何遗漏请告诉我]
sudo lshw -class network
*-network
description: Wireless interface
product: Wireless 3165
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlp1s0
version: 79
serial: 70:1c:e7:e2:80:0b
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.10.0-28-generic firmware=22.391740.0 ip=20.0.0.109 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:291 memory:d1000000-d1001fff
*-network:0
description: Ethernet interface
physical id: 2
logical name: br-2e55f403ebd6
serial: 02:42:45:45:7d:eb
capabilities: ethernet physical
configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=172.19.0.1 link=no multicast=yes
*-network:1
description: Ethernet interface
physical id: 3
logical name: br-a78071d77c33
serial: 02:42:1a:5c:4b:f6
capabilities: ethernet physical
configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=172.18.0.1 link=no multicast=yes
*-network:2
description: Ethernet interface
physical id: 4
logical name: docker0
serial: 02:42:16:38:8a:cc
capabilities: ethernet physical
configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=172.17.0.1 link=no multicast=yes
lspci
00:00.0 Host bridge: Intel Corporation Device 5904 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 02)
00:13.0 Non-VGA unclassified device: Intel Corporation Device 9d35 (rev 21)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d58 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Intel Corporation Wireless 3165 (rev 79)
iwconfig
wlp1s0 IEEE 802.11 ESSID:"OL5"
Mode:Managed Frequency:5.18 GHz
Bit Rate=433.3 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=61/70 Signal level=-49 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:86 Missed beacon:0
答案1
笔记:恢复/etc/modprobe.d/iwlwifi.conf
原状。
笔记:检查加密是否设置为 WPA2-高级加密标准 (AES)(不是 WPA/WPA2 也不是 TKIP)在您的路由器中。
您的问题可能出在 DSL 连接的 MTU 设置上。
Ubuntu 的网络配置中有一个 MTU 设置,而路由器中有一个 WAN MTU 设置。
对于 DSL,常见的 MTU 设置是 1492。请先在 Ubuntu 中的无线网络配置文件中尝试此值。
要确定正确的设置,请从所有 MTU 设置 = 1500 和 VPN = 关闭开始。(VPN 需要不同的测试)。
在终端:
ping [-c count] [-M do] [-s packet_size] [host]
使用的选项是:
c count
:ping 次数M hint
:选择路径 MTU 发现策略。可以是do
(禁止碎片,即使是本地碎片),want
(进行 PMTU 发现,当数据包大小较大时在本地进行碎片),或dont
(不设置 DF 标志)。s packet_size
:指定要发送的数据字节数。
您应该始终从 1472 开始,然后每次减少 10。一旦收到回复,就增加 1,直到收到碎片数据包。取该值(最后一个好值)并将 28 添加到该值以考虑各种 TCP/IP 标头。例如,假设 1452 是合适的数据包大小(您第一次收到对 ping 的 ICMP 回复)。实际的 MTU 大小将是 1480,这是我们正在使用的网络的最佳值。
ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation
ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation
ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?
ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?