管理Linux实例软件源
约 927 字大约 3 分钟
2026-08-29
apt(Debian/Ubuntu)与 dnf/yum(CentOS/Rocky)从「软件源」下载软件包。默认源服务器在国外时,apt install 会很慢甚至超时,此时可将软件源更换为国内镜像站。本文介绍各发行版的换源方法与常见问题。
如何判断需要换源
安装软件长时间停在 Connecting to ... 或 0% [Waiting for headers],多为访问国外源慢。先换源,多数安装类问题随之消失。
Debian / Ubuntu(apt)
备份原有源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑
/etc/apt/sources.list(vim 用法见Vim编辑器快速入门),替换为镜像站地址。以清华源为例:deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware版本代号要匹配
上文
bookworm是 Debian 12 的代号,Ubuntu 则为jammy(22.04)、noble(24.04)等。执行lsb_release -a查看当前系统版本,代号写错会导致源失效。镜像站首页提供按系统版本自动生成的源内容,直接复制即可。Ubuntu 24.04 起部分系统改用
/etc/apt/sources.list.d/ubuntu.sources文件,同样修改其中的URIs地址即可。更新索引验证:
sudo apt update无报错且速度明显变快即换源成功。
CentOS / Rocky Linux(dnf / yum)
备份原有源:
sudo mkdir -p /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/下载对应系统的国内镜像源(以 Rocky 9 使用清华源为例):
sudo vi /etc/yum.repos.d/rocky.repo写入:
[baseos] name=Rocky Linux 9 - BaseOS baseurl=https://mirrors.tuna.tsinghua.edu.cn/rocky/9/BaseOS/$basearch/os/ enabled=1 gpgcheck=0 [appstream] name=Rocky Linux 9 - AppStream baseurl=https://mirrors.tuna.tsinghua.edu.cn/rocky/9/AppStream/$basearch/os/ enabled=1 gpgcheck=0CentOS 7 用户请使用镜像站上对应
centos-vault的归档源(CentOS 7 已停止官方维护)。官方一键换源脚本(CentOS 7 适用)
CentOS 7 停止维护后 yum 源已失效,可使用官方提供的换源脚本一键修复:
# 大陆服务器(gitee 源) curl -L https://gitee.com/krhzj/LinuxTool/raw/main/Linux.sh -o Linux.sh \ && chmod +x Linux.sh && bash Linux.sh # 境外服务器(github 源) curl -L https://raw.githubusercontent.com/vpsad/LinuxTool/main/Linux.sh -o Linux.sh \ && chmod +x Linux.sh && bash Linux.sh清缓存并验证:
sudo dnf clean all && sudo dnf makecache
临时用某个镜像加速单次安装
不改配置,单条命令临时指定镜像(以 apt 为例):
sudo apt -o Acquire::http::Proxy=false \
-o Acquire::https::Proxy=false install nginx更常用的做法是直接访问镜像站下载软件包安装(如 Node.js、Nginx 的发行版仓库地址改为镜像站地址)。
常见问题
换源后 apt update 报 404 / Hash Sum Mismatch
- 版本代号与系统不匹配(最常见),按
lsb_release -a核对。 - 缓存不一致:执行
sudo rm -rf /var/lib/apt/lists/* && sudo apt update。
apt 提示 NO_PUBKEY(缺少公钥)?
apt update 报 NO_PUBKEY <一串指纹>,说明第三方源的公钥没有导入。把报错中的指纹代入:
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys <指纹>
sudo gpg --export --armor <指纹> | sudo tee /etc/apt/trusted.gpg.d/<源名>.asc > /dev/null
sudo apt update更规范的做法:按该源官方文档或镜像站说明,把密钥下载到 /etc/apt/keyrings/ 并在源文件中用 signed-by 指定。
dnf 提示无法验证 GPG 签名?
示例配置中关闭了 gpgcheck 以简化操作;生产环境建议保留 gpgcheck=1 并导入对应的 GPG 公钥(以 Rocky 清华源为例):
sudo rpm --import https://mirrors.tuna.tsinghua.edu.cn/rocky/RPM-GPG-KEY-Rocky-9密钥过期(key has expired)?
仓库方轮换了签名密钥时会报密钥过期:按上面两条重新导入新版公钥即可。仍无效说明源地址已归档(如已停止维护的 CentOS 7),改用镜像站的 centos-vault 归档源。
恢复默认源?
用第一步的备份覆盖回去即可:sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list 后 apt update。
