Ubuntu 20系统下彻底移除WireGuard相关组件的方法求助
看起来你在Ubuntu 20上清理WireGuard的时候碰到了棘手的问题——明明用apt执行了卸载命令,系统却提示WireGuard没安装,但用locate还是能搜到一堆相关文件,甚至直接删除snap里的文件还会报错只读文件系统。我来帮你一步步梳理正确的清理思路:
先梳理你当前的残留情况
从你给出的locate结果来看,残留文件主要分这几类:
- Snap核心包(core18/core20/core22)自带的CloudInit WireGuard配置脚本
- 内核自带的WireGuard驱动模块
- Netplan的WireGuard配置示例文件
- 旧版本内核头文件里的WireGuard相关内容
- WireGuard-tools的dpkg残留信息
分步骤清理方案
第一步:清理WireGuard-tools的残留
看到/var/lib/dpkg/info/wireguard-tools.list这类文件,说明wireguard-tools可能没彻底卸载,执行以下命令:sudo apt remove --purge wireguard-tools sudo apt autoclean && sudo apt autoremove这会彻底移除工具包并清理相关的dpkg残留信息。
第二步:处理Snap里的CloudInit文件
Snap的文件系统是只读的,所以你直接rm会报错。这些脚本是core系列snap包自带的CloudInit组件,默认不会主动启用WireGuard配置,如果你没有特殊需求,完全可以不用管它们。
如果你执意要清理,只能移除对应的core snap包,但要注意:core系列是Snap生态的基础包,移除可能会影响其他依赖它的Snap应用。比如移除core18的命令是:sudo snap remove core18执行前最好先检查依赖:
snap connections | grep core18第三步:清理内核相关的WireGuard内容
Ubuntu 20.04之后的内核默认集成了WireGuard模块,这些模块是内核的一部分,正常情况下不需要删除。如果确实要处理:- 先禁用当前加载的WireGuard模块:
sudo modprobe -r wireguard - 清理旧内核头文件:你看到的
/usr/src/linux-hwe-5.15-headers-*是旧版本的内核头包,直接卸载对应的头包即可连带删除WireGuard相关内容:sudo apt remove --purge linux-hwe-5.15-headers-5.15.0-57 linux-hwe-5.15-headers-5.15.0-58 - 对于内核模块文件(
/usr/lib/modules/*/wireguard.ko),如果是当前正在使用的内核,不建议删除;如果是旧内核的模块,可以先卸载旧内核包,模块文件会自动被清理。
- 先禁用当前加载的WireGuard模块:
第四步:删除Netplan示例文件
这个只是参考示例,完全可以手动删除:sudo rm /usr/share/doc/netplan/examples/wireguard.yaml
总结
其实大部分残留文件要么是系统内核或Snap基础组件的一部分,要么是无用的示例/旧文件,除非你有特殊的清理需求,否则不用强行删除——它们不会主动运行,也不会占用太多资源。重点清理wireguard-tools和旧内核头文件就足够了。
备注:内容来源于stack exchange,提问作者xpredo




