Linux 上 WiFi 速度缓慢的故障排除

它总是在你最后找到的地方。
198 位读者喜欢这篇文章。
Tools for the sysadmin

opensource.com

我对诊断 Linux 系统上的硬件问题并不陌生。尽管我过去几年的大部分专业工作都涉及虚拟化,但我仍然喜欢蹲在桌子底下,摆弄设备和内存模块。好吧,除了“蹲在桌子底下”的部分。但这并不意味着持久而神秘的错误不会令人沮丧。最近,我在我的 Ubuntu 18.04 工作站上遇到了其中一个错误,这个问题持续了几个月都没有解决。

在这里,我将分享我的问题以及我为解决它所做的许多尝试。即使你可能永远不会遇到我遇到的具体问题,但故障排除过程可能会有所帮助。此外,你还可以幸灾乐祸地享受我浪费了多少时间和精力去追寻无用的线索。

一切都始于我注意到我的工作站上的网络延迟和下载速度非常糟糕。好吧,让我回溯一下。实际上,它始于几年前我搬家,懒得在新家中的所有需要连接的房间里铺设网线。相反,我买了一堆 USB WiFi 适配器。性能不如以太网,但已经足够好了——通常在机器之间为 2Mbps 到 4Mbps。

但是,在一个阴沉的冬日,我的工作站连接开始恶化。据我所知,这似乎发生在我短暂地将我的接口置于监听模式以尝试网络嗅探的时候。现在延迟很高,我通常很幸运能获得 300kbps 的下载速度,并且 ifconfig 报告了大量的传输错误。情况非常糟糕,我经常将较大的基于互联网的软件包下载到笔记本电脑,然后使用 USB 将它们传输到我的工作站。这是什么年代了?

排除不可能

我的 USB WiFi 接口会随着时间推移而退化吗?没问题:家里可能散落着 10 个这样的接口——所有不同的型号。所以我尝试了另外两三个,但结果同样令人沮丧。

虽然可能性不大,但检查我的 ISP 服务连接也无妨。多个 DSL 速度测试网站都证实,我的提供商正在按承诺提供服务。也许是我的 ISP 提供的 WiFi 路由器出了问题。不是。即使笔记本电脑就放在工作站旁边,它也能很好地连接到同一路由器。

我确定是 WiFi 问题吗?也许是通用的网络问题。为了弄清楚,我将两条旧的 CAT5 电缆连接起来,从路由器开始,穿过餐厅的桌子底下,穿过客厅,穿过走廊,一直延伸到我的办公室。连接瞬间变得愉快:25Mbps 下载速度。但我感觉,从长远来看,妻子可能不会喜欢餐厅里的电缆。这不是一个解决方案,但它确实证实了问题是 WiFi 特有的。

我短暂切换到监听模式是否以某种方式搞乱了一些晦涩的 WPA_supplicant 设置?(WPA_supplicant 是一个使用 WPA(WiFi Protected Access)协议管理客户端连接的软件包。) 最快速确定问题的方法是将我的工作站启动到 live USB Ubuntu 会话,以获得纯净的、开箱即用的操作系统体验。结果呢?即使使用 live 会话,我仍然遇到连接不良的问题。这几乎排除了软件配置问题,不是吗?

那么还剩下什么?在绝望中,我给一位老朋友发了电子邮件,他给了我一些合乎逻辑的建议,包括检查 dmesg 是否有错误,lsmod 是否有冲突的驱动程序,以及我的无线芯片组的固件版本。考虑到过去几年在将如此广泛的 WiFi 芯片组集成到 Linux 内核方面取得了多大进展——以及深入研究固件版本有多么复杂——我跳过了最后一项,并寄希望于最好的结果。

最后,我的朋友建议我清除 wpa_supplicant 并重新安装它。考虑到那时我将没有 WiFi 连接, “重新安装” 部分可能会变得棘手。但这还是可行的。所以我做了,而且,我的连接确实有所改善……持续了一周左右。然后又回到了 250kbps 的黑暗时代。

绝望之下,我尝试卸载 NetworkManager 并将其替换为 Wicd 软件包。关于这一点,有两个有趣的观察结果

  • 你知道吗,在 GNOME 3 中卸载 NetworkManager 会自动导致 gnome-control-center 也被卸载?顺便说一句,这被认为是一个功能,而不是一个错误
  • 而且你知道为什么 Wicd 不是我熟悉的任何 Linux 发行版中使用的默认 WiFi 工具吗?我现在非常确定——虽然它在某些极端情况下可能是救命稻草——但这主要是因为该模块更可能引入许多烦人的错误行为。

新硬件,老问题依旧

情况就这样持续了几周令人不适的时间,直到,由于大多是不相关的原因,我决定构建一个替代工作站。

令人高兴的是,我与新机器的连接很稳定。直到它不再稳定为止。

几天之内,我又回到了透过浓雾看互联网的状态。速度测试显示我的延迟在 100 毫秒范围内,传输速度非常慢。到底发生了什么?两台机器唯一共享的硬件是电源,但这绝不可能是原因。

事实上,工作站升级让事情变得更简单了,因为它几乎排除了所有可能性。而且,正如夏洛克·福尔摩斯所说,当你排除了不可能,剩下的就是可能的。

那么还剩下什么?实际上只有一件事,但它需要所有那些死胡同和失败才能让我想到它。因为我的工作站放在桌子底下,而且 WiFi 接收可能会因太多物理障碍物而受到影响,所以我想尽可能地抬高我的 USB WiFi 适配器。为此,我通过一根三英尺长的 USB 延长线将其连接到我的工作站,并将其放在我的桌面上。凭直觉,我拔掉了延长线,并将适配器直接插入其中一个集成的 USB 端口。

立竿见影的成功。也许从一开始使用延长线就是一个坏主意,或者更可能的是,它随着时间的推移而退化,但现在一切都运行得很顺利。我敢打赌你没猜到这个结局。我当然也没有。

标签
David Clinton
DAVID CLINTON 是一位系统管理员、教师和作家。他管理过、撰写过并创建过许多重要技术主题的培训材料,包括 Linux 系统、云计算(特别是 AWS)和容器技术(如 Docker)。

7 条评论

我的 USB wifi 设备也出现过问题。我妻子的 WIndows7(叹气...)台式电脑有时会无法关机,只是“卡住”。usb wifi 插在延长线中以使其“向上”(听起来熟悉吗??)在尝试了各种方法之后,我将 usb wifi 设备直接插入 PC 后部,一切都完美运行了。关机时不再“卡住”,也没有其他奇怪的事情了。

是的。听起来确实很熟悉。我认为部分问题在于市面上有很多廉价的 USB 组件,而且没有简单的方法来区分它们。更不用说我们将它们在家中无标签地放置太久了。 :)

回复 ,作者:Ralph Peters (未验证)

David,一篇很棒的文章!我们这些“软件类型”的人已经习惯于责怪代码(而且,我敢说,出于一些正当理由),以至于当我们遇到怀疑硬件的人时,我们准备指责他们“不懂事情”。

就我个人而言,我多次处理过不稳定的电缆(虽然还没有遇到 USB 问题)。我甚至有一个 8 端口的交换机,其中一个端口不稳定。我从未确定这仅仅是一些间歇性的物理问题(如弯曲的连接器)还是电气问题,因为我花了很长时间诊断它,以至于当我最终确定问题时,我把整个设备扔进了最近的垃圾箱。可能不是正确的做法,但感觉确实很好。

我自己对 Linux 的入门(早在 Ubuntu 7.10 时代)几乎被一个廉价的非托管交换机上的不可靠端口搞砸了。我只是无法让我的所有瘦客户端从 LTSP 服务器启动,我几乎准备把整个 Linux 都扔进垃圾箱。那绝对是错误的! :)

回复 ,作者:clhermansen

我的 wifi 也遇到了问题,有时很好,有时在办公桌上的同一个位置却很糟糕。直到我注意到:只有当我将笔记本电脑连接到外部显示器时,连接才会变差——并且自然地合上了盖子。打开笔记本电脑盖子立即解决了我的所有 wifi 问题,可能是因为天线……

好文章!
我也遇到过类似的问题,我客户办公室使用的无线鼠标。大约半小时后,鼠标会失去连接,我必须将其关闭再打开,并将其移到靠近底座单元几分钟,然后才能再次开始工作。非常烦人。
具有讽刺意味的是,我的客户从没有这个问题,因为他与我不同,是左撇子,因此鼠标离底座单元近一两英尺,因此始终在范围内。
当然,射频单元的设计不是很好,除非它也是由左撇子设计的?

“在 GNOME 3 中卸载 NetworkManager 会自动导致 gnome-control-center 也被卸载”

这对我来说是一个有价值的信息。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.