
Linux 中 apt update 失败,通常不是单一原因导致,而是源配置、网络环境、本地缓存或权限问题共同作用的结果。核心在于系统无法正常获取软件包索引文件(Packages 或 InRelease),下面从几个高频场景帮你定位和解决。
软件源地址不可达或已失效
国内用户常因使用了过时的镜像源(如已下线的 ustc、neusoft 源),或误配了国外源(如 archive.ubuntu.com)却无稳定代理,导致连接超时或 404。Ubuntu 22.04+ 默认启用 HTTPS 源,若系统缺少 CA 证书或 OpenSSL 版本太旧,也会报 Could not resolve host 或 SSL certificate problem。
- 运行
cat /etc/apt/sources.list检查源地址是否拼写正确、协议是否为https://(非http://) - 用
ping -c 3 mirrors.tuna.tsinghua.edu.cn测试镜像连通性;若不通,换为阿里云(mirrors.aliyun.com)或华为云(repo.huaweicloud.com)源 - 确认已安装基础证书:执行
sudo apt install ca-certificates,再重试
本地 APT 缓存损坏或锁文件残留
意外中断(如断电、强制关机)可能导致 /var/lib/apt/lists/ 下的索引文件不完整,或 /var/lib/dpkg/lock-frontend 等锁文件未释放,apt 会直接拒绝操作并提示 Could not get lock 或 Hash Sum mismatch。
- 清除旧缓存:
sudo rm -rf /var/lib/apt/lists/* - 删除锁文件(确保没有其他 apt 进程在运行):
sudo rm /var/lib/dpkg/lock-frontend /var/cache/apt/archives/lock - 修复 dpkg 状态:
sudo dpkg --configure -a
系统时间严重偏差
APT 使用 HTTPS 与镜像通信,依赖准确的系统时间验证 TLS 证书有效期。若硬件时钟走慢/快超过数分钟(常见于虚拟机休眠后、BIOS 时间错误),会触发 Unable to fetch some archives, maybe run apt-get update 类似错误,且 curl -I https://mirrors.tuna.tsinghua.edu.cn 也可能失败。
- 查看当前时间:
date,对比网络标准时间(如timedatectl status) - 手动同步时间:
sudo timedatectl set-ntp true(启用 NTP)或sudo ntpdate -s time.windows.com(临时校准) - 虚拟机用户建议开启主机时间同步(如 VirtualBox 的 Guest Additions 或 VMware Tools)
防火墙、代理或 DNS 干扰
企业内网或校园网常部署透明代理或 DNS 污染,导致 apt 请求被重定向到错误地址,返回 403、503 或空白响应;部分防火墙会拦截 HTTPS SNI 字段,使 apt 无法识别目标镜像域名。
- 临时关闭防火墙测试:
sudo ufw disable(Ubuntu)或sudo systemctl stop firewalld(CentOS/RHEL 衍生版) - 检查代理设置:
env | grep -i proxy,若有输出,临时取消:unset http_proxy https_proxy - 更换 DNS:
echo "nameserver 223.5.5.5" | sudo tee /etc/resolv.conf(阿里 DNS),再试apt update










