Textline的博客
Textline的博客

目录

Arch Linux Wi-Fi 断网问题解决方案

Wi-Fi 断网、NetworkManager 缺失又无法在线安装时,用 pacman 本地缓存包离线恢复的过程。

本文目录
  1. 问题概述
  2. 1. 故障表现
  3. 2. 确认网卡并没有消失
  4. 3. 关键突破:发现 Pacman 的本地缓存安装包
  5. 这是解决问题的关键:安装包其实还保留在本机,不需要先恢复互联网才能安装它。
  6. 4. 离线恢复 NetworkManager
  7. 5. 重新连接 Wi-Fi

问题概述#

我在 Arch Linux(Wayland 桌面)上遇到过一次 Wi-Fi 完全无法连接的问题。最开始我以为是无线网卡故障,但实际排查发现:无线网卡仍能被系统识别,真正的障碍是 NetworkManager 服务缺失,系统又处于断网状态,无法通过正常在线安装方式补回。

最终结果:Wi-Fi 问题已经解决。 下面是这次故障实际找到的关键线索,以及针对这些线索的恢复方法,方便以后重装、迁移或再次出现相同症状时直接照做。

1. 故障表现#

尝试启动网络管理服务:

sudo systemctl enable --now NetworkManager

报错:

Unit NetworkManager.service does not exist

尝试安装:

sudo pacman -S networkmanager

报错:

error: target not found: networkmanager

同时,iwctl、wpa_supplicant 等常用无线连接工具在当时的环境中也没有找到,所以无法用它们临时接入 Wi-Fi。pacman 的 target not found 也提示本地软件包数据库或仓库配置可能存在问题,不等于官方仓库没有这个包。

2. 确认网卡并没有消失#

我用以下命令查看了网卡:

ip -br link
ip -br addr

识别到的无线网卡是:

wlp0s20f3

网卡原先显示 DOWN。执行:

sudo ip link set wlp0s20f3 up

后可以看到标志中含有 UP,但仍显示 NO-CARRIER,也没有获取到 Wi-Fi IP。

这里的区别是:网卡启用 ≠ 已连接无线网络。 仅执行 ip link set ... up 并不会自动扫描 Wi-Fi、输入密码或获得地址。

3. 关键突破:发现 Pacman 的本地缓存安装包#

由于当时没有网络,我没有继续反复使用在线安装,而是检查了 Pacman 的包缓存:

ls /var/cache/pacman/pkg/networkmanager*

查到了本地安装包:

/var/cache/pacman/pkg/networkmanager-1.58.1-2-x86_64.pkg.tar.zst

这是解决问题的关键:安装包其实还保留在本机,不需要先恢复互联网才能安装它。#

4. 离线恢复 NetworkManager#

用已经找到的缓存包进行安装:

sudo pacman -U /var/cache/pacman/pkg/networkmanager-1.58.1-2-x86_64.pkg.tar.zst

pacman -U 是 Arch Linux 正常的本地软件包安装方式。若提示缺少依赖,要继续查找 /var/cache/pacman/pkg/ 中对应的依赖缓存,不能用 --nodeps 硬装。

安装成功后,启动并设置开机自动启动:

sudo systemctl enable --now NetworkManager

确认服务:

systemctl is-active NetworkManager
nmcli device status

预期服务状态是 active,无线接口可以由 NetworkManager 管理。

5. 重新连接 Wi-Fi#

使用系统内的终端界面:

nmtui

进入 Activate a connection(激活连接),选中自己的 Wi-Fi,输入密码并连接。也可以通过 KDE Plasma 的网络菜单连接。

确认获取地址和网络连通:

ip -br addr
ip route
ping -c 3 1.1.1.1
ping -c 3 archlinux.org

第一条检查无线网卡是否拿到 IP;第二条检查默认路由;第三条检查外网 IP 连通;最后一条同时检查 DNS 解析。到这就彻底恢复了我的网络了。

    输入关键词开始搜索