Hetzner 服务器安装 CentOS 7 后 yum 源更新报错怎么修复

文章导读
CentOS 7 已于 2024 年 6 月 30 日结束生命周期,官方标准 yum 源停止维护导致更新报错。Hetzner 服务器需将 yum 源地址从 mirror.centos.org 切换至 vault.centos.org 以恢复软件包下载。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

CentOS 7 已于 2024 年 6 月 30 日结束生命周期,官方标准 yum 源停止维护导致更新报错。Hetzner 服务器需将 yum 源地址从 mirror.centos.org 切换至 vault.centos.org 以恢复软件包下载。

先说结论:CentOS 7 进入 EOL 状态后官方镜像站归档至 vault 源,Hetzner 服务器修改 repo 配置即可修复,无需重装系统。

  • 先确认:检查报错信息是否包含 404 错误或 mirror.centos.org 域名
  • 先处理:使用 sed 命令批量替换仓库地址为 vault.centos.org
  • 再验证:执行 yum makecache 确认缓存生成成功

命令速用版

以下命令适用于 root 权限用户,直接替换现有 CentOS 7 仓库地址为归档地址。

sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo
yum clean all
yum makecache

为什么会这样

CentOS 7 生命周期结束导致官方主镜像站停止同步更新文件。CentOS 项目官方将旧版本仓库迁移至 vault 归档服务器,原 mirror 地址不再提供索引文件。
Hetzner 服务器安装的 CentOS 7 默认配置指向已停服的主镜像,因此 yum 请求返回 404 或元数据过期错误。此问题与 Hetzner 网络无关,属于操作系统版本生命周期终止的正常现象。

分步处理

按顺序执行以下步骤,每步完成后检查返回状态,出现错误立即停止排查。

步骤 1:备份现有配置
防止修改错误导致无法回滚,将 repo 目录打包备份。

Hetzner 服务器安装 CentOS 7 后 yum 源更新报错怎么修复
cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

步骤 2:替换仓库地址
将所有 repo 文件中的主镜像域名替换为 vault 域名。

sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo

步骤 3:清理旧缓存
删除本地旧的元数据缓存,避免与新源冲突。

yum clean all

步骤 4:生成新缓存
从 vault 源重新下载元数据,此步骤成功代表网络连通且源可用。

yum makecache

怎么验证是否生效

执行 yum list 命令查看能否拉取软件包列表,若显示包名则修复成功。

yum list available | head -n 5

检查返回结果中是否包含具体的包名和版本号。若再次出现 404 错误,检查 /etc/yum.repos.d/ 下是否有未被 sed 命令覆盖的自定义 repo 文件。

常见坑

网络防火墙拦截
Hetzner 云服务器默认可能开启防火墙,确保出站端口 80 和 443 未被阻止。若 makecache 超时,检查 iptables 或 firewalld 状态。

Hetzner 服务器安装 CentOS 7 后 yum 源更新报错怎么修复

GPG 密钥验证失败
部分旧配置可能强制检查 GPG 密钥,vault 源密钥可能与本地缓存不一致。若报错 GPG check failed,可在 repo 文件中设置 gpgcheck=0 临时跳过,生产环境建议导入正确密钥。

IPv6 连接问题
Hetzner 服务器默认配置 IPv6,若 yum 优先尝试 IPv6 连接失败会报错。可在 /etc/yum.conf 中添加 ip_resolve=4 强制使用 IPv4。

常见问题

切换至 vault 源后还能收到安全更新吗

不能,vault 源仅归档 EOL 前的最终版本包,不再提供新的安全补丁。

Hetzner 是否有专用的 CentOS 7 镜像源

没有,Hetzner 使用官方 CentOS 源,修复方法与普通服务器一致。

是否建议继续使用 CentOS 7

不建议,CentOS 7 已无安全维护,建议规划迁移至 AlmaLinux、Rocky Linux 或 Debian/Ubuntu。

参考来源

  • CentOS Project, CentOS Linux End of Life Status, https://www.centos.org/centos-linux-eol/
  • CentOS Documentation, CentOS Vault, https://vault.centos.org/