解决 Ubuntu DNS 无法解析问题(适用于虚拟机 & 长期使用)

解决 Ubuntu DNS 无法解析问题

在使用 Ubuntu 虚拟机(尤其是在国内)时,经常会遇到这样的错误:

复制代码
Temporary failure resolving 'cn.archive.ubuntu.com'

但是此时又能成功 ping 通 IP,这说明网络是正常的,问题出在 DNS 解析失败 。这通常是因为系统默认启用了 systemd-resolved,但 DNS 解析不稳定或不生效。解决方案如下:

Ubuntu 默认使用 systemd-resolved 来处理 DNS,它监听 127.0.0.53,但在某些网络环境中无法正常解析外部域名。

复制代码
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved.service

Ubuntu 的 /etc/resolv.conf 是一个软链接,指向 systemd 的 DNS 缓存服务,需要删除它:

复制代码
sudo rm /etc/resolv.conf

创建新的 /etc/resolv.conf 文件,可以选择 Google DNS(适用于国际网络):

复制代码
echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" | sudo tee /etc/resolv.conf

或者选择阿里云 DNS:

复制代码
echo -e "nameserver 223.5.5.5\nnameserver 223.6.6.6" | sudo tee /etc/resolv.conf

如果系统使用 NetworkManager 等工具,可能会自动覆盖 /etc/resolv.conf,可以使用 chattr 命令将其锁定:

复制代码
sudo chattr +i /etc/resolv.conf

执行以下命令测试:

复制代码
ping cn.archive.ubuntu.com
sudo apt update

如果看到域名成功解析并开始连接软件源,说明问题已解决!

相关推荐
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
欧云服务器3 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
智渊AI3 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
tryCbest3 天前
数据库SQL学习
数据库·sql