Linux用户经常面临的最大挑战之一是与Wifi有关。这是因为内核中经常缺少WIFI驱动。因此,用户不得不面对各种与 "Wifi不工作 "有关的问题。 如果你使用的是非英特尔的Wifi模块,这些问题就更常见了。在本指南中,我们将解决基于Ubuntu的Linux发行版上所有主要的连接问题,以便你能尽快恢复上网。
诊断互联网连接问题的预先检查
在你继续进行故障排除之前,有必要检查一些东西。这些是。
- 你的网络是否有互联网接入?在你的手机上检查你的互联网连接,以获得一个快速的答案。
- 你是否使用[最好的Linux兼容网络适配器]之一?如果你的网络适配器与你的Linux发行版不兼容,它就不能工作。
- 如果你是通过有线连接到互联网,你的电缆是否连接正确?检查电线的两端是否有任何松动的连接。
- 一些笔记本电脑有一个互联网连接的切换键,让你打开或关闭你的Wifi。确保它是打开的。
- 进入你的系统设置,检查Wifi开关是否打开了
- 检查飞行模式是否打开或关闭。如果你发现它打开了,就把它关掉。
解决方案1:硬件问题与软件问题
接下来,你必须确定你的网络问题是硬件Wifi问题还是软件连接问题。Wifi问题可能是这两者中的任何一个。然而,硬件连接问题相对容易解决。你所需要做的就是打开Linux命令终端,输入以下命令。
Ping localhost
这是一个非常简单的方法来确定你的硬件是工作正常还是有一些问题。localhost地址检查你的网络接口控制器(NIC)的电路。在出现问题的情况下,你可能要把你的系统拿去维修或自己去修理。
如果ping的结果是没有硬件问题,但你没有看到你的无线网卡。请继续阅读,看看你可以做什么来解决这个问题。
解决方案2:重新安装,从原始的ISO文件中重新安装驱动程序
你的Linux发行版根本没有检测到你的互联网驱动程序吗?试着在ISO的帮助下重新安装驱动程序。如果你有一个新的安装,你一定有这个ISO镜像的地方。通过从原始ISO文件重新安装驱动程序,可以很容易地解决常见的连接错误。
第1步:要做到这一点,在网上进入你的操作系统的相应版本页面。例如,如果你使用的是Ubuntu,你可以从这里下载其最新的Ubuntu 20.04.2.0 LTS版本,在另一个设备上,或者在Linux上使用以太网连接。把它复制到你的主目录。
第2步:打开Linux命令终端,输入以下命令,就像手动装载CD Rom一样装载该镜像。
sudo mkdir /media/cdrom
cd ~
sudo mount -o loop ubuntu-* /media/cdrom
第3步:在Unity Dash中,查找软件和更新
第4步:在Ubuntu软件选项卡中,选中 "CDrom with Ubuntu... "选项并输入 "Close"。
第5步:最后,进入 "软件和更新 "中的 "额外驱动程序 "选项卡,选择你的专属驱动程序并点击 "应用更改"。
有时,Ubuntu可能不显示额外的驱动程序。在这种情况下,你必须从互联网上下载合适的驱动程序。有时,尽管有额外的驱动程序,Wifi仍然无法工作。在这种情况下,请参考下面的方法。
解决方案3:在Broadcom无线适配器的帮助下解决Ubuntu中没有Wifi的问题
第1步:由于这个方法只适用于Broadcom无线适配器(Broadcom 43系列),请确保你没有使用任何其他的wifi适配器,在终端输入这个命令。
Sudo lshw –C network
你会看到一个以BCM43开头的无线适配器。否则,不要继续使用这个方法。
第2步:接下来,通过使用以下命令删除你系统上可能已经有的任何Broadcom适配器驱动程序。
sudo apt remove Broadcom-sta-dkms bcmwl-kernel-source
第3步:通过以太网电缆连接到互联网,并使用此命令自动安装Broadcom驱动程序
Sudo apt install firmware-b43-installer
如果你没有以太网,你将不得不在另一个Linux系统上手动安装驱动程序,然后从那里复制和粘贴驱动程序到你的问题系统。
要做到这一点,首先通过在终端键入以下命令检查你所处的Ubuntu版本。
$ name -a
接下来,从这个链接中为你相应的Ubuntu版本下载无线驱动。它将是一个DEB文件。用USB把它传输到没有Wifi驱动的系统中。
现在你可以通过双击该软件包或使用以下命令来安装它。
cd ~/Downloads
sudo dpkg -i firmware-b43-installer_*。
解决方案4:你的发行版能否检测到无线设备?
有时,你的Linux发行版(Ubuntu或任何其他)无法检测到你的无线设备。如果是这种情况。
第1步:进入你的Linux命令终端,键入以下命令。
Sudo lsusb
(如果你使用USB无线加密狗)
如果你使用的是内部无线网卡,请使用以下命令代替。
Sudo lspci
你也可以使用lshw来了解你的机器是否有无线设备。然而,你必须先在你的机器上安装lshw工具才能做到这一点。下面是要使用的命令。
Sudo lshw -c network
以下是你应该能够看到的内容(或类似的内容)
*-network
description: Wireless interface
product: PRO/Wireless 3945ABG Network Connection
vendor: Intel Corporation
如果你的操作系统能够找到网卡,并且你看到网卡被识别出来的正面回应,你就很幸运了。Ubuntu通常通过 "以太网或网络控制器 "来识别它。
一个积极的响应意味着你的Linux发行版能够连接到网卡,这意味着固件工作得很好。问题出在你的系统上,它不知道该怎么做。这就是驱动程序发挥作用的地方。你需要安装驱动模块。
要做到这一点,回到命令终端,输入以下命令
Sudo lsmod
这个命令将显示一个模块的列表。要激活你的模块,请输入以下命令。将 "modulename "替换为你的机器的无线芯片组的名称
Sudo modprodbe modulename
例如,如果你的芯片组是RT2870,你的命令应该是。
Sudo modprobe rt2870usb
专业提示。在谷歌上搜索你的芯片组名称和Linux,即 "RT2870 Linux",以了解某个特定的Linux发行版是否支持你的硬件。
在终端中再次运行lsmod命令,以确保模块已经成功加载。
解决方案5:启动时自动加载Wifi模块
在少数情况下,Wifi模块在启动时不会被加载。在这种情况下,你可以强制该模块永久加载。下面是你如何做的。
第1步:键入以下命令
Sudo nano /etc/modules
该命令将打开nano文本编辑器。输入你的模块名称并保存该文件。现在,重新启动你的系统,看看无线网卡是否能识别出要连接的网络?如果你卡住了,你也可以重复同样的过程。
解决方案6:将DNS改为谷歌或OpenDNS
DNS问题不是很常见,但在你最不怀疑的时候会造成麻烦。因此,检查你的系统的DNS地址是否有问题是一个好主意。使用下面的命令来检查你的系统的DNS是从哪里来的。
nmcli device show wlan1 | grep ip4.dns
这个命令将显示你的路由器正在使用的LAN地址。如果这个命令不起作用,把wlan1改为wlan2,wlan3,或任何你的无线网络使用的地址。你可以通过在终端使用 "IP as "命令来这样做。
接下来,你需要ping你的路由器的LAN和谷歌(或OpenDNS)DNS服务器。这是在ping命令的帮助下完成的。
Ping 8.8.8.8
(在谷歌的情况下)
Ping 208.67.222.222
(如果是OpenDNS)
有了这些信息,你可以很容易地确定问题是否与DNS有关。如果你网络中的所有设备都出现了负载错误,那么就把路由器的DNS改为OpenDNS或谷歌的DNS服务器。这通常是通过登录192.168.1.1和admin:admin或类似的方式,在路由器的管理页面进行。如果这个问题只针对一台机器。你可以通过进入网络管理器和编辑IPv4设置来改变其DNS设置。
最后,重新启动你的机器以巩固你的设置。
最后的思考
解决Linux中的Wifi问题可能是很棘手的。一个问题可能有一百个不同的原因。希望我们的解决方案可以为你提供一些好的地方来开始解决你的问题。