换国内镜像源+切换DNS可快速解决apt-get update卡顿;主因是archive.ubuntu.com域名解析慢或海外服务器响应延迟高,非网络连通问题。

直接换国内镜像源 + 切换 DNS,比单纯等超时或重试快得多;卡在 apt-get update 通常不是网络连通性问题,而是域名解析慢或源服务器响应延迟高。
为什么 apt-get update 会卡住
常见现象是命令停在某一行不动(比如卡在 Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease),或者长时间显示 Waiting for headers。根本原因有两个:archive.ubuntu.com 域名解析慢(尤其在某些 ISP 下),或该域名实际指向的海外服务器响应超时(TCP 握手或 HTTP 返回慢)。
这不是 apt 本身故障,也不用重启服务或清缓存——换源和 DNS 就能绕过瓶颈。
- Ubuntu/Debian 默认源
archive.ubuntu.com和security.ubuntu.com在国内访问不稳定 - 本地 DNS(如运营商默认 DNS)对这些域名解析经常超时或返回错误 IP
- 即使 ping 通,HTTPS 握手或 GPG 验证阶段也可能卡住(
apt会验证 Release 文件签名)
一步到位:换清华镜像源 + 指定 DNS
不用逐个改 /etc/apt/sources.list 行,直接用 sed 批量替换(以 Ubuntu 20.04/focal 为例):
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list sudo sed -i 's|http://security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
再强制指定 DNS(避免系统 DNS 缓存干扰):
- 临时生效(本次终端 session 有效):
echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf - 永久生效(推荐):编辑
/etc/systemd/resolved.conf,取消注释并修改DNS=114.114.114.114 8.8.8.8,然后运行sudo systemctl restart systemd-resolved
注意:https:// 开头的镜像地址必须确保系统已安装 ca-certificates(大多数 Ubuntu 安装镜像自带,若报 SSL 错误可先 sudo apt install ca-certificates)。
验证是否生效 & 常见失败点
执行 sudo apt-get update 后,应快速看到类似 Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease 的输出,且全程无卡顿。如果仍卡住,检查以下三点:
- 确认
/etc/apt/sources.list中没有残留的archive.ubuntu.com或security.ubuntu.com(包括注释行里的旧地址) - 确认
curl -I https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/focal/InRelease能正常返回 HTTP 200(否则可能是防火墙或代理干扰) - 若使用 WSL 或云服务器,检查是否启用了 IPv6(部分镜像站 IPv6 支持不全),可临时禁用:
echo 'net.ipv6.conf.all.disable_ipv6 = 1' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
最常被忽略的是 DNS 更改后没重启 systemd-resolved,或者 sources.list 里混用了 http 和 https(清华镜像站要求 https,而有些老教程给的是 http 地址,会 301 重定向导致额外延迟)。


















