ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ubuntu 20.04 WiFi连接全攻略:图形界面与netplan命令行配置及驱动排错

Ubuntu 20.04 WiFi连接全攻略:图形界面与netplan命令行配置及驱动排错 简介这份PDF文档面向刚安装Ubuntu 20.04却遇到无法连接Wi-Fi、系统托盘缺少无线图标的用户尤其适合Linux入门者与运维初学者排查网卡驱动缺失或网络配置错误的问题。资源包共1个PDF文件大小约27KB内容紧凑便于在终端旁对照查阅。文档围绕两种解决思路展开一是通过有线联网后更新软件源并安装Broadcom无线网卡驱动二是借助Netplan的YAML配置文件手动声明wlan0的DHCP与接入点信息并给出netplan try与apply的验证方式。读者可据此快速判断问题出在驱动层还是配置层掌握从ip a查看网卡状态、定位配置文件到重启网络服务的完整排错路径。目前已有33077人学习下载适合需要低成本恢复无线网络的Ubuntu新手参考。1. Ubuntu 20.04 连 WiFi 这件事为什么有人两分钟搞定有人折腾一晚上装完 Ubuntu 20.04 桌面版右上角网络图标里空空如也只有「有线连接」和「网络设置」压根看不到 WiFi 选项——这是很多人第一次装完系统后最抓狂的场景。同一台机器有人开机就能连上有人翻遍论坛改了半天配置还是不行差别往往不在运气而在你走的是哪条路是图形界面点两下还是命令行用 netplan 写配置。这篇笔记就把这两条路都讲透顺带把驱动、netplan、apt 这几个绕不开的环节串起来。适合谁看刚装完 Ubuntu 20.04 发现没有 WiFi 选项的新手以及想搞清楚 netplan 配置逻辑、不想每次都靠重启碰运气的熟手。核心就两件事——图形界面连和命令行连但真正卡人的从来不是「怎么点」而是网卡驱动没装、netplan 配置写错、NetworkManager 和 netplan 打架这些底层问题。下面按「先确认硬件 → 图形界面 → 命令行 → 排错」的顺序推。2. 动手之前先搞清楚你的无线网卡到底被认出来没有很多人一上来就急着点图标、敲命令结果方向全错。连 WiFi 的第一步不是连是确认系统到底认没认出来你这块无线网卡。认出来了后面就是配置问题没认出来那就是驱动问题再怎么点也没用。2.1 用三条命令确认网卡状态打开终端依次跑下面几条命令看清楚输出再往下走。# 列出所有网络接口看有没有 wlan0 / wlp 开头的无线接口 ip link show # 查看 PCI 设备里有没有无线网卡以及它用的驱动 lspci -knn | grep -iA3 net # 查看内核有没有加载无线相关模块 lsmod | grep -i -E iwlwifi|ath|rtl|mt76ip link show里如果出现wlan0、wlp3s0这类以wl开头的接口说明网卡已经被内核识别驱动基本没问题可以直接跳到第 3 章。如果只有lo和enp/eth开头的有线接口那就要看lspci的输出。lspci -knn | grep -iA3 net会列出网络控制器重点看两行一行是设备型号比如Intel Corporation Wireless-AC 9560另一行是Kernel driver in use:。如果这一行是空的或者显示Kernel modules:后面没有已加载的模块那就是驱动没装上这才是你「没有 WiFi 选项」的真正原因。lsmod那条是辅助确认常见无线驱动模块有iwlwifiIntel、ath10k/ath11k高通、rtl8xxxu/rtw88Realtek、mt76联发科。模块在接口一般就在。2.2 驱动没装怎么办两条常见路径确认是驱动问题后分两种情况处理。第一种网卡型号比较新Ubuntu 20.04 自带的 5.4 内核驱动太老。这种情况常见做法是升级内核或者装厂商提供的驱动包。升级内核可以用sudo apt install linux-generic-hwe-20.04它会拉一个更新的 HWE 内核重启后新驱动往往就带上了。第二种需要额外固件。Intel 网卡经常缺iwlwifi的固件文件Realtek 的某些型号需要firmware-realtek。可以先用有线网或者手机 USB 共享网络临时联网然后# 更新软件源并安装常见无线固件 sudo apt update sudo apt install linux-firmware # 如果是 Realtek 特定型号可能需要额外固件包 sudo apt install firmware-realtek装完linux-firmware后重启再跑一遍ip link show看wlan0有没有冒出来。这一步是很多教程会跳过的地方但恰恰是「没有 WiFi 选项」最常见的根因。提示如果连有线网都没有可以用手机开 USB 网络共享Ubuntu 20.04 一般能直接识别临时解决联网问题再装驱动。3. 方法一图形界面连 WiFi适合绝大多数桌面用户网卡认出来了接口也在那图形界面这条路是最省事的。Ubuntu 20.04 桌面版默认用 NetworkManager 管理网络右上角那个网络图标就是入口。但这里有个前提——NetworkManager 得是启用状态而且没被 netplan 的配置覆盖掉。3.1 确认 NetworkManager 在跑先确认服务状态别对着一个没启动的服务点半天。# 查看 NetworkManager 服务状态 systemctl status NetworkManager # 如果没启动启动并设为开机自启 sudo systemctl enable --now NetworkManagersystemctl status输出里看到active (running)就对了。如果是inactive或者failed先enable --now拉起来。这一步做完右上角图标应该就能正常显示可用网络列表。3.2 点图标连接的完整流程和常见卡点流程本身不复杂点右上角网络图标 → 选「Wi-Fi 设置」或直接在下拉里选你的 SSID → 输入密码 → 连接。但有几个卡点值得说清楚。第一如果下拉列表里压根没有「Wi-Fi」这一项只有「有线」和「网络设置」说明 NetworkManager 没接管无线设备。这时候去/etc/netplan/目录看看有没有配置文件把无线网卡写成了静态配置netplan 和 NetworkManager 同时管一块网卡会打架。第二如果能看到 SSID 但连不上先确认密码没输错再看是不是 5GHz 频段的问题。有些老网卡只支持 2.4GHz路由器如果只开了 5GHz 就会搜不到或者连不上。这种情况进路由器后台把 2.4GHz 打开。第三连上了但上不了网多半是 DNS 或路由问题跟 WiFi 连接本身无关。可以ping 8.8.8.8测试能通说明是 DNS改/etc/resolv.conf或者 NetworkManager 的 DNS 设置即可。图形界面这条路的好处是改完即时生效不用重启适合日常使用。但如果你是在服务器版或者最小化安装的 Ubuntu 20.04 上没有桌面环境那就只能走第 4 章的 netplan 路线。4. 方法二用 netplan 命令行连 WiFi服务器和最小安装的必经之路Ubuntu 从 17.10 开始用 netplan 作为网络配置的统一入口20.04 延续了这个设计。netplan 本身不直接管网络它是个「配置生成器」——读 YAML 文件然后根据renderer字段决定把配置交给 NetworkManager 还是 systemd-networkd 去执行。理解这一点很多「改了没生效」的问题就说得通了。4.1 netplan 配置文件的结构和关键字段配置文件放在/etc/netplan/下通常叫01-network-manager-all.yaml或者50-cloud-init.yaml文件名不重要重要的是内容和权限。先看一个连 WiFi 的最小配置# /etc/netplan/01-wifi.yaml network: version: 2 renderer: networkd wifis: wlan0: dhcp4: true access-points: 你的WiFi名称: password: 你的WiFi密码逐字段说清楚。version: 2是 netplan 的配置版本20.04 固定写 2。renderer决定谁来执行写networkd就用 systemd-networkd写NetworkManager就交给 NetworkManager。服务器场景一般用networkd桌面场景如果 NetworkManager 在跑写NetworkManager更省事。wifis下面是无线接口名必须和ip link show里看到的接口名完全一致是wlan0还是wlp3s0要照抄。dhcp4: true表示用 DHCP 自动获取 IP。access-points里写 SSID注意 SSID 和密码都要用引号包起来SSID 里有空格或特殊字符时尤其重要。4.2 写配置、改权限、应用、验证四步走配置写完不是直接生效netplan 对文件权限有要求权限不对会直接报错拒绝加载。# 第一步创建配置文件文件名按自己习惯来 sudo nano /etc/netplan/01-wifi.yaml # 第二步改权限netplan 要求配置文件不能被其他用户读 sudo chmod 600 /etc/netplan/01-wifi.yaml # 第三步先试运行看有没有语法错误 sudo netplan try # 第四步确认无误后正式应用 sudo netplan applynetplan try是个很实用的命令它会临时应用配置并给你 120 秒确认时间如果配置有问题导致断网时间到了会自动回滚。这是避免「改完配置 SSH 直接掉线」的后悔药服务器上尤其要用。netplan apply是正式生效。执行完用下面几条命令验证# 看接口有没有拿到 IP ip addr show wlan0 # 看路由表有没有默认网关 ip route show # 测试连通性 ping -c 4 8.8.8.8ip addr show wlan0里如果看到inet开头的 IPv4 地址说明 DHCP 成功了。ip route里要有default via那一行否则就算有 IP 也上不了外网。4.3 renderer 选 networkd 还是 NetworkManager这是最容易踩坑的地方。同一块无线网卡如果 netplan 里写renderer: networkd但系统里 NetworkManager 也在跑并且想管这块网卡两者会互相抢表现就是「配置写了但连不上」或者「连上一会儿又断」。判断方法很简单桌面版默认 NetworkManager 在管那就把 renderer 写成NetworkManager让 netplan 只做配置下发实际连接还是 NetworkManager 处理。服务器版没有桌面NetworkManager 通常没装或者没启用那就用networkd。# 查看当前哪块网卡被谁管着 nmcli device statusnmcli device status输出里DEVICE列是接口名STATE列是状态CONNECTION列显示当前连接。如果无线网卡显示unmanaged说明 NetworkManager 没接管它这时候要么改 netplan 的 renderer要么在 NetworkManager 配置里把它标记为 managed。5. 连不上时的排查顺序从现象倒推原因WiFi 连不上现象就那么几种但原因可能横跨驱动、配置、服务三层。与其乱试不如按固定顺序排查每一步都能排除掉一批可能。5.1 现象一根本没有 WiFi 选项这是最高频的问题。排查顺序先ip link show看有没有wl开头的接口。没有接口 → 驱动或固件问题回到第 2 章装linux-firmware或升级内核。有接口但图标里没 WiFi → NetworkManager 没接管systemctl status NetworkManager看服务nmcli device status看是不是unmanaged。还有一种情况是rfkill把无线给软禁用了尤其是笔记本上有物理 WiFi 开关或者功能键。跑一下# 查看无线设备是否被 rfkill 禁用 rfkill list # 如果有 Soft blocked: yes解除 sudo rfkill unblock wifirfkill list会列出phy0之类的无线设备Soft blocked: yes表示软件层面禁用了Hard blocked: yes表示物理开关关了后者得去按笔记本上的 WiFi 键。5.2 现象二能看到 SSID 但连不上能看到 SSID 说明驱动和扫描都正常问题在认证或配置。先确认密码再确认加密方式。netplan 配置里如果路由器用的是 WPA3老版本 wpa_supplicant 可能不支持改成 WPA2 混合模式试试。另一个常见原因是 SSID 里有中文或特殊字符netplan 的 YAML 解析对引号很敏感。SSID 和密码一律用双引号包起来SSID 里有反斜杠或引号要转义。5.3 现象三连上了但上不了网ip addr有 IPping 8.8.8.8不通多半是路由或网关问题。ip route看有没有default via。没有的话检查 netplan 里dhcp4是不是true或者路由器 DHCP 池是不是满了。ping 8.8.8.8通但域名解析不了是 DNS 问题。netplan 里可以显式指定network: version: 2 renderer: networkd wifis: wlan0: dhcp4: true access-points: MyWiFi: password: mypassword nameservers: addresses: [223.5.5.5, 119.29.29.29]nameservers字段加在接口层级下addresses里写 DNS 服务器地址。改完netplan apply生效。6. 避坑与常见问题五条血泪经验这一章全是实际踩过的坑每条按「现象 → 原因 → 解决」写照着对号入座能省不少时间。坑一改了 netplan 配置netplan apply报权限错误。现象是执行sudo netplan apply后提示Permissions for /etc/netplan/xxx.yaml are too open。原因是 netplan 要求配置文件权限必须是 600其他用户可读会拒绝加载。解决就是sudo chmod 600 /etc/netplan/xxx.yaml再重新 apply。这个坑在新手用nano创建文件时特别常见因为默认权限是 644。坑二netplan 和 NetworkManager 同时管一块网卡连上就断。现象是 WiFi 能连上但过一会儿自动断开或者重启后配置丢失。原因是 netplan 的 renderer 写成了networkd但桌面环境里 NetworkManager 也在跑并试图接管同一块网卡两者反复争夺控制权。解决是统一 renderer桌面版写NetworkManager服务器版确保 NetworkManager 没在跑或者用nmcli device set wlan0 managed no让 NetworkManager 放手。坑三SSID 或密码里有特殊字符YAML 解析失败。现象是netplan try直接报 YAML 语法错误或者配置看起来对但连不上。原因是 YAML 对冒号、井号、引号敏感SSID 里带这些字符没加引号就会被当成语法。解决是 SSID 和密码一律用双引号包裹密码里有双引号就用单引号包外层或者用转义。坑四升级内核后无线驱动反而没了。现象是原本能用的 WiFi升级内核重启后消失了。原因是新内核可能没带对应的驱动模块或者 DKMS 模块没跟着重新编译。解决是重启时在 GRUB 里选旧内核进系统然后sudo apt install linux-generic-hwe-20.04装 HWE 内核或者重新安装对应的 DKMS 驱动包。别急着删旧内核那是你的后悔药。坑五rfkill软禁用导致怎么配都不生效。现象是驱动正常、配置正确、NetworkManager 也在跑但就是搜不到任何 WiFi。原因是无线被rfkill软禁用了可能是之前误触了功能键或者某个电源管理脚本干的。解决是rfkill list确认sudo rfkill unblock wifi解除然后systemctl restart NetworkManager。这个坑最隐蔽因为所有配置看起来都没问题。7. 让 WiFi 配置可复现一个我常用的验证脚本和习惯折腾完能连上只是第一步真正省心的是让这套配置可复现、可验证。我自己的习惯是每次配完 WiFi跑一个固定的小脚本把关键状态打出来存档下次换机器或者重装系统直接对照不用凭记忆猜。#!/bin/bash # wifi-check.sh - 一键输出无线网络关键状态 echo 无线接口 ip link show | grep -E ^[0-9]: wl || echo 未发现无线接口 echo 驱动模块 lsmod | grep -i -E iwlwifi|ath|rtl|mt76 || echo 未加载常见无线驱动 echo rfkill 状态 rfkill list echo NetworkManager 设备 nmcli device status 2/dev/null || echo NetworkManager 未运行 echo IP 与路由 ip addr show | grep -A2 wl ip route show | grep default || echo 无默认路由 echo 连通性 ping -c 2 -W 2 8.8.8.8 /dev/null 21 echo 外网可达 || echo 外网不可达这个脚本的价值在于把「驱动 → 接口 → rfkill → 管理服务 → IP → 路由 → 连通性」这条链路一次性打出来哪一环断了肉眼可见。我一般会把它放在~/bin/下配完网络跑一遍输出存成文本下次出问题直接对比。参数上没什么需要调的ping -c 2 -W 2是发两个包、每个等 2 秒避免卡太久。nmcli device status后面加了2/dev/null是因为没装 NetworkManager 时会报错重定向掉更干净。再补一个进阶技巧如果你经常在多台机器上配 WiFi可以把 netplan 配置模板化SSID 和密码用变量替换配合envsubst生成最终文件。这样换环境时只改变量不用手改 YAML减少手抖写错引号的概率。# 用环境变量生成 netplan 配置 export WIFI_SSIDMyWiFi export WIFI_PASSMyPassword envsubst wifi-template.yaml | sudo tee /etc/netplan/01-wifi.yaml /dev/null sudo chmod 600 /etc/netplan/01-wifi.yaml sudo netplan apply模板里把 SSID 和密码写成$WIFI_SSID和$WIFI_PASSenvsubst负责替换。这个做法在批量部署时特别顺手也避免了每次手动改配置时漏掉引号。最后说个我自己的教训刚接触 netplan 那会儿改完配置直接netplan apply结果 SSH 断了自己还不知道只能去机房接显示器。后来养成习惯服务器上永远先netplan try桌面版才直接 apply。这个习惯帮我省了至少三次跑机房的时间。希望帮到你。本文还有配套的精品资源点击获取
返回列表