
简介这份PDF资料面向刚安装Ubuntu 20.04却无法连接Wi-Fi、系统托盘缺少无线图标的用户尤其适合Linux入门者与运维新手排查网卡驱动缺失或网络配置错误的问题。资源包共1个PDF文件大小约27KB内容以图文步骤形式整理便于离线查阅与快速对照操作。资料围绕两条解决路径展开一是通过有线网络更新软件源并安装Broadcom无线网卡驱动bcmwl-kernel-source后重启二是借助ip a查看网卡状态编辑/etc/netplan下的YAML配置文件补充wifis、access-points与dhcp4等字段再用netplan try与netplan apply使配置生效。文中还提示了重启网络服务、检查硬件兼容性及查阅系统日志等排错思路。目前已有33077人学习下载适合需要快速恢复无线连接、理解Netplan配置逻辑的读者参考。1. Ubuntu 20.04 连 WiFi 这件事为什么有人两分钟搞定有人折腾一晚上装完 Ubuntu 20.04 桌面版右上角网络菜单里空空如也连个 WiFi 选项都没有——这个场景我见过太多次。有人以为是系统装坏了重装三遍有人翻出手机 USB 共享网络先顶着还有人直接拉网线从此再也没碰过无线。其实 Ubuntu 20.04 连接 WiFi 就两条路一条是桌面图形界面点几下另一条是命令行用 netplan 或 nmcli 配置。两条路都不难难的是你连 WiFi 图标都看不到的时候根本不知道从哪下手。这篇文章面向三类人刚装完 Ubuntu 20.04 发现没有 WiFi 选项的新手、想在无桌面环境里配无线的运维、以及被驱动问题卡住的开发者。我会把两种方法拆开讲清楚包括驱动排查、netplan 配置、nmcli 命令、常见翻车点。看完你至少能做到不管有没有图形界面都能让 Ubuntu 20.04 连上 WiFi。2. 先确认无线网卡被系统认了没有驱动与硬件排查在动手配 WiFi 之前有一件事比什么都重要确认你的无线网卡在系统里是活的。很多人上来就改 netplan改了半天发现网卡根本没被识别白忙一场。这一章先把硬件和驱动层面的事情理清楚后面配网络才有意义。2.1 用三条命令确认无线网卡状态打开终端依次执行下面三条命令。不要跳步每条的输出都看一眼。# 查看所有网络接口确认有没有 wlan0 或 wlp 开头的无线接口 ip link show # 查看 PCI 设备里有没有无线网卡Intel、Realtek、Qualcomm 等 lspci | grep -i network # 查看 USB 无线网卡如果你用的是外接 USB WiFi 模块 lsusbip link show的输出里如果只有lo和enp3s0这类有线接口没有wlan0或wlp2s0说明系统没认出无线网卡。lspci | grep -i network能帮你确认硬件本身在不在 PCI 总线上——如果这条命令有输出但ip link里没有无线接口基本可以断定是驱动没加载。lsusb则是给 USB 无线网卡用的插上去没反应的时候先看这里。三条命令跑完你会遇到两种情况一是有wlan0或wlp开头的接口那直接跳到第 3 章配网络就行二是没有无线接口继续往下看驱动怎么处理。2.2 驱动没加载怎么办从 lspci 到 modprobe如果lspci能看到无线网卡但ip link里没有对应的无线接口常见原因是驱动模块没加载。先确认内核有没有对应的驱动模块# 查看已加载的无线相关内核模块 lsmod | grep -i -E iwlwifi|rtl|ath|mt76 # 查看内核是否检测到无线网卡但驱动加载失败 dmesg | grep -i -E firmware|wifi|wireless|iwl|rtllsmod没有输出说明驱动模块压根没加载。dmesg里如果有firmware missing或failed to load之类的字样那就是缺固件。Ubuntu 20.04 默认仓库里有大部分常见无线网卡的固件包# 更新软件源并安装常见无线网卡固件 sudo apt update sudo apt install linux-firmware # 如果是 Intel 网卡额外确认 iwlwifi 固件 sudo apt install firmware-iwlwifi 2/dev/null || true # 重新加载驱动模块以 iwlwifi 为例 sudo modprobe -r iwlwifi sudo modprobe iwlwifilinux-firmware这个包涵盖了 Intel、Realtek、Broadcom 等主流无线网卡的固件文件装完之后重新加载模块再用ip link show确认无线接口是否出现。modprobe -r是先卸载再加载相当于给驱动一次重新初始化的机会。如果modprobe报错说模块不存在那说明你的内核根本没有编译这个驱动需要换内核版本或者手动编译驱动——这种情况在 Ubuntu 20.04 上比较少见但 Realtek 某些新型号确实会遇到。注意如果你的无线网卡是 Realtek RTL8821CE、RTL8852 这类较新的型号Ubuntu 20.04 自带内核5.4可能不带驱动。常见做法是升级到 HWE 内核sudo apt install linux-generic-hwe-20.04或者从源码编译驱动。升级内核后重启再检查ip link。2.3 没有有线网络怎么装驱动离线安装的思路这里有个死循环要装驱动得先有网络要有网络得先有驱动。如果你手头只有这台没无线的 Ubuntu 机器又没有网线怎么办常见做法是用另一台能上网的机器下载.deb包用 U 盘拷过来手动安装。具体来说在能上网的机器上访问 Ubuntu 的包索引页面搜索linux-firmware和你的网卡对应的驱动包下载.deb文件。然后# 在目标机器上安装本地 deb 包 sudo dpkg -i linux-firmware_*.deb # 如果依赖不全用 apt 修复 sudo apt install -fdpkg -i是直接安装本地包apt install -f是修复依赖关系。这个流程在离线环境里很常用不光是无线驱动其他软件包也一样处理。如果你用的是 USB 无线网卡还有一个更简单的办法手机开 USB 网络共享先用手机的网络装好驱动再切回 WiFi。3. 方法一桌面图形界面连接 WiFi 的完整流程如果你装的是 Ubuntu 20.04 桌面版而且无线网卡驱动正常那图形界面是最省事的。但这里有几个细节新手很容易卡住。3.1 右上角网络菜单的正确打开方式Ubuntu 20.04 用的是 GNOME 桌面网络菜单在屏幕右上角。点击之后你会看到如果有无线网卡且驱动正常菜单里会直接显示「Wi-Fi」开关和可用网络列表如果只有「有线网络」和「网络设置」没有 Wi-Fi 选项说明驱动没加载或者无线被 rfkill 软禁用了先检查 rfkill# 查看无线设备是否被软/硬禁用 rfkill list # 如果有 Soft blocked: yes解除禁用 sudo rfkill unblock wifirfkill list会列出所有无线设备的状态。Soft blocked: yes表示软件层面禁用了 WiFiHard blocked: yes表示硬件开关关了有些笔记本侧面有物理 WiFi 开关。rfkill unblock wifi解除软禁用硬禁用需要你手动拨一下笔记本的物理开关。3.2 选择网络、输入密码、验证连接WiFi 开关打开后菜单里会列出周围的热点。点你要连的那个输入密码等几秒。连上之后图标会变成扇形信号标志。验证是否真的连上了# 查看无线接口的 IP 地址 ip addr show wlan0 # 测试 DNS 和连通性 ping -c 4 223.5.5.5 ping -c 4 www.baidu.comip addr show wlan0里如果有inet 192.168.x.x这样的地址说明 DHCP 拿到了 IP。ping 223.5.5.5通但ping www.baidu.com不通那是 DNS 问题去/etc/resolv.conf或者网络设置里改 DNS。两个都通说明 WiFi 连接完全正常。提示如果图形界面里能看到 WiFi 列表但连不上先确认密码没输错然后检查路由器是不是开了 MAC 地址过滤。Ubuntu 20.04 默认不会随机化 MAC 地址但如果你手动改过记得改回来。3.3 图形界面连不上的时候怎么排查图形界面点半天没反应或者一直转圈连不上按这个顺序查# 查看 NetworkManager 服务状态 systemctl status NetworkManager # 查看最近的网络日志 journalctl -u NetworkManager --since 5 minutes ago # 查看无线接口的详细状态 nmcli device status nmcli device wifi listsystemctl status NetworkManager确认网络管理服务在跑。journalctl看日志里有没有association failed、wrong password、timeout之类的关键词。nmcli device status会告诉你每个接口的状态是connected、disconnected还是unmanaged。如果无线接口显示unmanaged说明 NetworkManager 没接管这个接口需要检查/etc/NetworkManager/NetworkManager.conf里的配置。4. 方法二命令行配置 WiFi 的两种武器nmcli 与 netplan没有桌面环境或者图形界面挂了就得靠命令行。Ubuntu 20.04 上命令行配 WiFi 有两条路nmcli和netplan。选哪个取决于你的系统装了什么。4.1 nmcli桌面版和无桌面版都能用的万能工具nmcli是 NetworkManager 的命令行前端。Ubuntu 20.04 桌面版默认装了 NetworkManager所以nmcli直接能用。无桌面版如果也装了 NetworkManager同样可以用。连接 WiFi 的完整命令# 扫描周围 WiFi nmcli device wifi list # 连接指定 WiFi替换 SSID 和密码 nmcli device wifi connect 你的WiFi名称 password 你的密码 # 如果 WiFi 是隐藏的需要指定 SSID 和密码 nmcli device wifi connect 隐藏WiFi名称 password 你的密码 hidden yesnmcli device wifi list会列出所有可见的 SSID、信号强度、加密方式。nmcli device wifi connect是最常用的连接命令SSID 和密码替换成你自己的。隐藏网络加hidden yes参数。连上之后验证# 查看连接状态 nmcli connection show --active # 查看 IP 地址 ip addr show wlan0 # 测试连通性 ping -c 4 223.5.5.5nmcli connection show --active会列出当前活跃的连接确认 WiFi 连接在里面。ip addr确认拿到了 IP。ping确认网络通。如果连不上nmcli会返回具体的错误信息比如Error: Connection activation failed: (7) Secrets were required, but not provided.这种一般是密码错了或者加密方式不匹配。4.2 netplanUbuntu 20.04 服务端的标准配置方式Ubuntu 20.04 服务版默认用 netplan 管理网络。netplan 的配置文件在/etc/netplan/目录下通常是01-network-manager-all.yaml或者50-cloud-init.yaml。先看目录里有什么ls /etc/netplan/然后编辑对应的 YAML 文件。假设你的无线接口是wlan0配置如下# /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd wifis: wlan0: dhcp4: true access-points: 你的WiFi名称: password: 你的密码renderer可以是networkd或NetworkManager。服务版一般用networkd桌面版如果装了 NetworkManager 就用NetworkManager。dhcp4: true表示自动获取 IP。access-points下面写 SSID 和密码。写完保存应用配置# 应用 netplan 配置 sudo netplan apply # 如果报错用 debug 模式看详细信息 sudo netplan --debug applynetplan apply会立即生效。如果配置有语法错误会报错并提示行号。--debug模式输出更详细的信息方便排查。验证# 查看无线接口状态 ip addr show wlan0 # 查看路由 ip route show # 测试连通性 ping -c 4 223.5.5.5ip addr确认拿到 IPip route确认默认路由存在ping确认网络通。注意netplan 的 YAML 文件对缩进非常严格必须用空格不能用 Tab。缩进错了会直接报错。另外SSID 和密码如果有特殊字符记得用引号包起来。4.3 nmcli 和 netplan 怎么选对比项nmclinetplan适用场景桌面版、临时连接服务版、固定配置配置持久化自动保存到 NetworkManager写入 YAML 文件多网络切换方便命令直接切需要改配置文件学习成本低命令直观中YAML 语法要熟悉依赖服务NetworkManagernetworkd 或 NetworkManager我一般这样选桌面版用 nmcli服务版用 netplan。如果你在服务版上也想用 nmcli先确认 NetworkManager 装了并且接管了无线接口。5. 避坑指南Ubuntu 20.04 连 WiFi 最常见的 5 个翻车现场这一章全是血泪经验。下面 5 个问题我几乎每次装 Ubuntu 20.04 都会遇到至少一个按「现象 → 原因 → 解决」写清楚。5.1 现象右上角没有 WiFi 选项设置里也找不到无线原因无线网卡驱动没加载或者 rfkill 软禁用了 WiFi。解决先rfkill list看是不是软禁用是的话sudo rfkill unblock wifi。然后lspci | grep -i network确认硬件在lsmod | grep iwlwifi确认驱动加载了。驱动没加载就sudo apt install linux-firmware然后sudo modprobe iwlwifi。如果是 Realtek 新网卡升级 HWE 内核。5.2 现象能看到 WiFi 列表输入密码后一直转圈连不上原因密码错误、加密方式不匹配、或者路由器开了 MAC 过滤。解决先用nmcli device wifi connect SSID password 密码在命令行试看具体报什么错。如果报Secrets were required检查密码。如果报Timeout检查路由器是不是隐藏了 SSID 或者开了 MAC 过滤。另外确认 WiFi 加密方式是 WPA2 还是 WPA3Ubuntu 20.04 对 WPA3 支持不完善路由器改成 WPA2 混合模式试试。5.3 现象netplan apply 报错Invalid YAML或unknown key原因YAML 缩进用了 Tab或者字段名拼错了。解决用sudo netplan --debug apply看具体哪一行报错。YAML 必须用空格缩进通常是 2 个空格一级。字段名对照 netplan 官方文档检查wifis不是wifiaccess-points不是access_points。5.4 现象连上 WiFi 但 ping 不通外网ping IP 可以但域名不行原因DNS 配置问题。解决cat /etc/resolv.conf看 DNS 服务器。如果是127.0.0.53那是 systemd-resolved 在管。用resolvectl status看实际 DNS。手动改 DNS 可以编辑/etc/systemd/resolved.conf加DNS223.5.5.5 8.8.8.8然后sudo systemctl restart systemd-resolved。5.5 现象重启后 WiFi 不自动连接每次都要手动连原因netplan 配置里没写dhcp4: true或者 NetworkManager 没保存连接。解决netplan 配置里确认dhcp4: true和access-points都写了。nmcli 的话nmcli connection show看连接是不是autoconnect: yes不是的话nmcli connection modify 连接名 connection.autoconnect yes。6. 进阶技巧用一条命令判断 WiFi 问题出在哪一层配 WiFi 最怕的就是不知道问题出在哪。是驱动是 rfkill是 NetworkManager还是路由器我后来养成了一个习惯不管什么情况先跑一条组合命令把关键信息一次性拉出来。# 一键诊断 WiFi 状态 echo rfkill rfkill list \ echo ip link ip link show \ echo nmcli device nmcli device status \ echo nmcli wifi nmcli device wifi list \ echo dmesg wifi dmesg | grep -i -E iwl|rtl|ath|firmware | tail -20这条命令把 rfkill 状态、网络接口、NetworkManager 设备状态、WiFi 列表、内核日志里的无线相关信息全部打出来。跑一遍基本能定位到问题在哪一层rfkill里有blocked先解禁用ip link里没有wlan0驱动问题nmcli device里无线接口是unmanagedNetworkManager 没接管nmcli device wifi list是空的无线接口没起来或者被禁用dmesg里有firmware missing缺固件这个习惯帮我省了很多时间。以前遇到 WiFi 问题我是一条一条命令试试到哪条有输出就停。后来发现一次性把所有信息拉出来对照着看反而更快定位。还有一个技巧如果你经常需要在不同网络之间切换可以写一个简单的 shell 函数放在~/.bashrc里# 添加到 ~/.bashrc wifi-connect() { nmcli device wifi connect $1 password $2 if [ $? -eq 0 ]; then echo 已连接 $1 ip addr show wlan0 | grep inet else echo 连接失败检查密码或信号 fi }之后直接wifi-connect SSID 密码就能连省得每次敲完整命令。这个函数我用了很久没什么玄学就是省事。最后说一个我踩过的坑有一次帮同事配 Ubuntu 20.04 的 WiFi折腾了两个小时最后发现是路由器的 5GHz 频段和网卡不兼容。网卡只支持 2.4GHz但路由器把 2.4G 和 5G 合并成了一个 SSID网卡一直尝试连 5G 连不上。解决办法是在路由器里把 2.4G 和 5G 拆成两个不同的 SSID然后连 2.4G 那个。这个坑不常见但遇到了真的很难查——因为nmcli不会告诉你频段不兼容只会一直超时。所以现在我配 WiFi 的习惯是先确认驱动和 rfkill再用 nmcli 或 netplan 配配完 ping 一下不通就看 DNS 和频段。按这个顺序走大部分问题都能解决。希望帮到你。本文还有配套的精品资源点击获取