Ubuntu 22.04升级至24.04后systemd-resolved被卸载引发解析故障,无法重装该服务的求助
Ubuntu 22.04升级至24.04后systemd-resolved被卸载引发解析故障,无法重装该服务的求助
先帮你解决眼前的两个核心问题:apt的proxy报错,以及重装systemd-resolved,之后再聊聊可能的原因。
第一步:解决apt的"无法解析proxy"问题
你说没配置过代理,但apt却报错找不到proxy,大概率是升级过程中残留了无效的代理配置。按下面的步骤排查:
- 先检查apt的系统级配置文件:
运行grep -r "Proxy" /etc/apt/apt.conf.d/,看看有没有包含Acquire::http::Proxy或Acquire::https::Proxy的行。如果找到,用文本编辑器(比如sudo nano 文件名)打开对应的文件,把这些代理相关的行删掉或者用#注释掉。 - 再检查当前shell的环境变量:
输入echo $http_proxy和echo $https_proxy,如果输出了代理地址,就运行unset http_proxy https_proxy临时清除。要是想永久移除,得检查~/.bashrc、~/.profile或者/etc/environment这些文件,删掉里面的代理配置行。
第二步:重装并恢复systemd-resolved
解决完proxy问题后,就可以正常用apt安装了:
- 确保你之前加的
91.189.91.83 us.archive.ubuntu.com还在/etc/hosts里(如果不小心删了就再加上)。 - 运行
sudo apt update,确认能正常拉取源信息。 - 安装服务:
sudo apt install systemd-resolved - 启用并启动服务:
sudo systemctl enable --now systemd-resolved - 最后修复DNS解析的配置链接:Ubuntu默认需要让
/etc/resolv.conf指向systemd-resolved的 stub 文件,运行sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
做完这些后,你可以用nslookup google.com或者dig github.com测试一下,应该就能正常解析域名了。
关于你提到的几个疑问
- Ubuntu 24.04有没有新的resolver?
没有,24.04默认还是用systemd-resolved作为核心DNS解析服务,不用找什么新的替代项,恢复它就行。 - 为什么升级会卸载它?
大概率是升级过程中系统检测到了冲突:比如你之前可能用过其他DNS服务(比如dnsmasq、或者NetworkManager单独配置了DNS解析),升级脚本判断这些服务和systemd-resolved互斥,就自动卸载了systemd-resolved。你可以去/var/log/dist-upgrade/目录下查看main.log和apt.log,里面会有卸载该服务的具体记录,能找到确切原因。
备注:内容来源于stack exchange,提问作者ericx
相关产品推荐
相关产品推荐

