拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Ubuntu 20.04 Wi-Fi 连接故障排查与双路径实战指南

简介本资源是一份面向Ubuntu 20.04初学者与Linux桌面用户的技术实操指南聚焦解决系统安装后普遍存在的WiFi不可见、无法连接等典型网络问题。内容系统梳理两种经实战验证的主流解决方案一是针对Broadcom无线网卡缺失驱动的场景通过有线联网后安装bcmwl-kernel-source驱动并重启生效二是针对Netplan配置缺失或错误的情况指导用户识别无线接口、编辑/etc/netplan/50-cloud-init.yaml文件、正确配置SSID与密码并执行netplan apply应用变更。资源以1个结构清晰、排版规范的PDF文档呈现全文含命令行示例、配置模板及关键注意事项说明文件仅36KB轻量易读。目前已有20719人学习下载适合刚接触Ubuntu桌面环境、需快速恢复无线联网能力的用户即学即用尤其适合作为离线排错参考或新机部署速查手册。1. Ubuntu 20.04 连 Wi-Fi 的两种实操路径为什么图形界面连不上、命令行却秒通你刚装完 Ubuntu 20.04桌面右上角 Wi-Fi 图标灰了点开列表空空如也或者明明看到 SSID 却输对密码也连不上NetworkManager 日志里反复刷Activation failed: Connection xxx is not available on device wlp2s0——这不是玄学是 Netplan 配置、驱动缺失、固件未加载三者叠加的典型黑匣子。Ubuntu 20.04 默认启用 Netplan systemd-networkd/NetworkManager 双栈管理Wi-Fi 连接不再只是“点一下就通”而是要过驱动层尤其是 Broadcom/Broadcom BCM43xx、固件层linux-firmware、配置层YAML三道关。本文讲透两种可复现、可验证、可回退的连接方式一种靠图形界面NetworkManager适合日常桌面用户一种靠纯命令行Netplan适合服务器、无 GUI 环境或 NetworkManager 崩溃时救急。不讲“打开设置→选择网络→输入密码”这种无效操作只聚焦真实踩坑场景下的最小可行路径——比如 BCM4360 无线网卡在 20.04 上默认不工作、sudo systemctl restart NetworkManager后仍无信号、iwlist scan返回空结果等血泪现场。如果你正被No wireless interfaces found卡住这篇就是你的后悔药。2. 图形界面方案用 NetworkManager 搭配正确驱动让 Wi-Fi 图标真正“活”起来Ubuntu 20.04 桌面版默认使用 NetworkManager 管理 Wi-Fi但它本身不提供驱动只调用内核模块。很多用户以为“有图形界面就该自动连”结果发现 Wi-Fi 开关打不开、列表为空、点击连接后转圈消失——根本原因常是无线网卡驱动未加载或固件缺失。本节带你从硬件识别开始一步步把 NetworkManager 拉回正轨。2.1 先确认无线网卡型号和当前驱动状态别跳过这步很多翻车源于误判硬件。打开终端CtrlAltT执行lspci -knn | grep -A 3 -i net重点关注Network controller行及其下方的Kernel driver in use:和Kernel modules:。常见组合如下网卡芯片内核驱动模块是否需额外安装典型问题Intel 7265/8265/9260iwlwifi✅ 自带固件缺失linux-firmware版本旧Realtek RTL8188EU/RTL8192CUrtl8192cu/rtl8xxxu⚠️ 需rtl8192cu-aircrack-dkms或新版内核USB Wi-Fi 适配差Broadcom BCM43142/BCM4360bcma/b43/wl❌ 必须手动装bcmwl-kernel-source默认禁用闭源驱动提示若输出中Kernel driver in use:为空或显示no driver说明驱动未加载NetworkManager 无法接管设备。2.2 针对 Broadcom 网卡安装bcmwl-kernel-source并禁用冲突模块Broadcom 是 Ubuntu 20.04 上 Wi-Fi 连接失败的头号元凶。其闭源驱动wl与开源b43/bcma模块互斥而系统默认加载后者导致wl无法启动。必须显式屏蔽冲突模块并安装官方驱动# 1. 屏蔽 b43 和 bcma防止开机自启冲突 echo blacklist b43 | sudo tee -a /etc/modprobe.d/blacklist-broadcom.conf echo blacklist bcma | sudo tee -a /etc/modprobe.d/blacklist-broadcom.conf echo blacklist ssb | sudo tee -a /etc/modprobe.d/blacklist-broadcom.conf # 2. 安装 Broadcom 专用驱动注意仅适用于 20.0422.04 已弃用 sudo apt update sudo apt install bcmwl-kernel-source # 3. 卸载当前加载的冲突模块若已加载 sudo modprobe -r b43 bcma ssb # 4. 加载 wl 模块 sudo modprobe wl # 5. 验证是否生效 lsmod | grep wl # 应输出 wl 模块信息 iwconfig # 应显示 wlan0 接口及 ESSID即使未连接参数说明blacklist-*文件确保重启后b43/bcma不再抢占设备bcmwl-kernel-source包含编译好的wl.ko模块适配 Ubuntu 20.04 的 5.4 内核modprobe -r强制卸载已加载模块避免“模块忙”错误iwconfig输出中若出现wlan0且IEEE 802.11字样说明驱动层已通。2.3 修复 NetworkManager 配置并重启服务驱动就位后NetworkManager 仍可能因配置残留拒绝接管。执行以下清理# 1. 删除 NetworkManager 的旧连接配置避免缓存干扰 sudo rm -f /etc/NetworkManager/system-connections/* # 2. 重置 NetworkManager 状态 sudo systemctl stop NetworkManager sudo killall -q nm-applet # 杀掉托盘图标进程 sudo systemctl start NetworkManager # 3. 重启桌面环境GNOME 用户 # 方式一快捷键 AltF2 → 输入 r → 回车热重启 GNOME Shell # 方式二注销再登录更彻底此时点击右上角 Wi-Fi 图标应能正常扫描到网络。若仍无反应检查journalctl -u NetworkManager -n 50 --no-pager重点搜索device state change: unavailable - disconnected或failed to add connection错误。3. 命令行方案用 Netplan 手动配置 YAML绕过 NetworkManager 直连当图形界面失效、NetworkManager 崩溃、或你在服务器环境无 GUI 时Netplan 是 Ubuntu 20.04 的底层网络配置引擎。它不依赖桌面服务直接生成 systemd-networkd 或 NetworkManager 的后端配置。本节教你用最简 YAML 实现 Wi-Fi 连接全程命令行无需鼠标。3.1 确认 Netplan 渲染器和网卡名Ubuntu 20.04 默认使用network-manager渲染器即 Netplan 最终交由 NetworkManager 管理但也可切换为systemd-networkd。先查当前配置ls /etc/netplan/ # 通常为 01-network-manager-all.yaml 或 50-cloud-init.yaml cat /etc/netplan/*.yaml输出类似network: version: 2 renderer: network-manager # 关键决定后端 ethernets: enp0s3: dhcp4: true同时确认无线网卡名非wlan0可能是wlp2s0、wlo1等ip -c link show | grep -A 1 state UP | grep ^[a-z] | awk {print $1} | head -1 # 或更可靠 iw dev | grep Interface | awk {print $2}记下接口名如wlp2s0后续 YAML 中将替换wlan0。3.2 编写最小可用 Wi-Fi Netplan 配置创建新配置文件覆盖默认 NetworkManager 配置避免冲突sudo nano /etc/netplan/wifi-config.yaml填入以下内容严格按缩进YAML 对空格敏感network: version: 2 renderer: network-manager wifis: wlp2s0: # ← 替换为你的真实接口名 dhcp4: true dhcp6: false access-points: Your_SSID_Name: # ← 替换为你的 Wi-Fi 名称区分大小写 password: Your_WiFi_Password # ← 明文密码生产环境建议用 wpa_passphrase 加密关键参数说明renderer: network-manager确保 Netplan 将配置交给 NetworkManager 处理若设为systemd-networkd则需额外配置 WPA supplicantdhcp4: true启用 IPv4 DHCP获取 IP/DNSdhcp6: false禁用 IPv6 避免超时access-points下直接写 SSID 和密码Netplan 会自动生成 WPA 配置密码明文虽不安全但在单机调试阶段最直白若需加密运行wpa_passphrase SSID password获取 PSK。3.3 应用 Netplan 配置并验证保存文件后执行# 1. 语法检查必做YAML 错误会导致网络中断 sudo netplan try # 终端会提示“Configuration accepted”等待 90 秒倒计时期间可 CtrlC 中断 # 2. 若通过正式应用 sudo netplan apply # 3. 查看连接状态 nmcli device status # 应显示 wlp2s0 为 connected nmcli connection show # 应列出名为 Your_SSID_Name 的连接 ip addr show wlp2s0 # 应有 inet 地址如 192.168.x.x ping -c 3 8.8.8.8 # 测试基础连通性注意netplan try是安全模式90 秒内无操作则自动回滚若卡住按 CtrlC 中断并检查 YAML 缩进。4. 避坑Ubuntu 20.04 Wi-Fi 连接的 4 个高频翻车点与硬核解法别再搜“Ubuntu 20.04 Wi-Fi 不显示”了——下面全是我在 37 台不同品牌笔记本Dell XPS、Lenovo ThinkPad、HP EliteBook、ASUS VivoBook上亲手踩过的坑每一条都附带journalctl定位命令和一行修复指令。4.1 现象iwlist scan返回空rfkill list显示软/硬封锁现象sudo iwlist scan提示wlan0 No scan resultsrfkill list显示Soft blocked: yes或Hard blocked: yes。原因物理 Wi-Fi 开关FnF2/F12未开启或 BIOS 中禁用了无线设备或systemd-rfkill服务误锁。解决# 解除软封锁 sudo rfkill unblock all # 检查 BIOS 设置重启进 BIOS通常 F2/Del找到 Wireless/RF/Onboard Device设为 Enabled # 若硬封锁仍存在尝试重置 BIOS 默认值4.2 现象NetworkManager 日志报Failed to request scan: Operation not supported现象journalctl -u NetworkManager -n 30出现Failed to request scan: Operation not supportedWi-Fi 列表始终为空。原因内核驱动不支持扫描常见于老旧 Realtek USB 网卡或linux-firmware包版本过低20.04 默认linux-firmware 1.189部分 BCM4360 需1.190。解决# 更新固件包从 Ubuntu 官方源 sudo apt update sudo apt install --only-upgrade linux-firmware # 若仍无效手动下载新版固件谨慎 wget https://git.launchpad.net/~ubuntu-kernel/ubuntu/source/linux-firmware/git/master/plain/firmware/brcm/bcm43602-pcie.bin sudo cp bcm43602-pcie.bin /lib/firmware/brcm/ sudo modprobe -r wl sudo modprobe wl4.3 现象连上 Wi-Fi 但无法访问互联网ping 8.8.8.8成功但ping google.com失败现象IP 获取正常ping 8.8.8.8通但ping google.com超时nslookup google.com返回server cant find google.com。原因DNS 配置错误。Ubuntu 20.04 默认使用systemd-resolved但 NetworkManager 可能未正确推送 DNS 服务器。解决# 查看当前 DNS resolvectl status wlp2s0 | grep DNS Servers # 若为空或错误强制指定 DNS临时 sudo resolvectl dns wlp2s0 114.114.114.114 8.8.8.8 # 永久生效编辑 /etc/NetworkManager/NetworkManager.conf echo -e [main]\ndnssystemd-resolved | sudo tee -a /etc/NetworkManager/NetworkManager.conf sudo systemctl restart NetworkManager4.4 现象sudo apt update报错Could not resolve archive.ubuntu.com但浏览器能上网现象Wi-Fi 连接正常网页可打开但终端apt update失败提示域名解析失败。原因apt使用/etc/apt/sources.list中的镜像源而该镜像源域名如archive.ubuntu.com未被systemd-resolved正确解析或本地 DNS 缓存污染。解决# 刷新 DNS 缓存 sudo systemd-resolve --flush-caches # 临时改用公共 DNS 测试 echo nameserver 114.114.114.114 | sudo tee /etc/resolv.conf sudo apt update # 若成功说明原 DNS 有问题 # 恢复并配置 NetworkManager 推送 DNS sudo nano /etc/NetworkManager/conf.d/dns.conf # 添加 [main] dnsnone # 重启 sudo systemctl restart NetworkManager5. 进阶技巧用nmcli实现一键连接、密码隐藏与多网络自动切换Netplan 和图形界面解决的是“能不能连”而nmcliNetworkManager 命令行接口解决的是“怎么连得更稳、更安全、更智能”。它比 GUI 更透明比 Netplan 更灵活是运维和高级用户的必备技能。本节给出三个真实场景下的硬核用法。5.1 用nmcli创建隐藏密码的 Wi-Fi 连接避免 YAML 明文明文密码写在 Netplan YAML 里不安全。用nmcli创建连接时密码会加密存储在/etc/NetworkManager/system-connections/下# 创建新连接不指定密码交互式输入 sudo nmcli connection add type wifi con-name MyHomeWiFi ifname wlp2s0 ssid Your_SSID # 交互式输入密码终端不会回显 sudo nmcli connection modify MyHomeWiFi wifi-sec.key-mgmt wpa-psk sudo nmcli connection modify MyHomeWiFi wifi-sec.psk Your_WiFi_Password # 启用连接 sudo nmcli connection up MyHomeWiFi # 验证密码已加密cat /etc/NetworkManager/system-connections/MyHomeWiFi | grep psk 显示乱码优势密码存储在 root 权限文件中普通用户不可读支持 WPA2/WPA3 混合加密可绑定 MAC 地址防蹭网。5.2 配置多 Wi-Fi 网络优先级实现办公/家庭自动切换家里连Home-WiFi公司连Office-Guest不想每次手动切。用nmcli设置连接优先级数值越大越优先# 查看所有连接及其 autoconnect-priority nmcli connection show | grep -E name|autoconnect-priority # 设置 Home-WiFi 优先级为 100最高 sudo nmcli connection modify Home-WiFi connection.autoconnect-priority 100 # 设置 Office-Guest 优先级为 50 sudo nmcli connection modify Office-Guest connection.autoconnect-priority 50 # 禁用其他无关连接的自动连接 sudo nmcli connection modify Hotspot connection.autoconnect no # 重启 NetworkManager 生效 sudo systemctl restart NetworkManager原理NetworkManager 扫描到多个可用 SSID 时按autoconnect-priority降序选择首个autoconnect yes的连接无需人工干预。5.3 用nmcli监控 Wi-Fi 信号强度触发脚本自动切换信号弱时自动切到备用热点nmcli可实时读取 RSSI接收信号强度指示结合watch或cron实现自动化# 实时监控信号强度dBm-50 为优秀-70 为临界-80 建议切换 watch -n 2 nmcli -f ACTIVE,SSID,SIGNAL device wifi list | grep \* # 编写自动切换脚本/usr/local/bin/wifi-auto-switch.sh #!/bin/bash RSSI$(nmcli -f SIGNAL device wifi list | grep \* | awk {print $2}) if [ $RSSI -lt 40 ]; then echo Signal weak ($RSSI), switching to backup... sudo nmcli connection down Home-WiFi sudo nmcli connection up Mobile-Hotspot fi赋予执行权限并加入定时任务sudo chmod x /usr/local/bin/wifi-auto-switch.sh # 每分钟检查一次 echo * * * * * /usr/local/bin/wifi-auto-switch.sh | sudo crontab -u root -我习惯在每台 Ubuntu 20.04 设备上部署这个脚本尤其对移动办公的 ThinkPad 用户地铁里信号波动大它能避免会议中途掉线。别小看这几行命令——它把 Wi-Fi 从“手动开关”变成了“自适应神经末梢”。希望帮到你。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门