CentOS 7 出现 “Could not resolve host“ 错误的修复方案

在 CentOS 7 上执行yum命令时出现 Could not resolve host: mirrorlist.centos.org 错误,说明系统无法解析 CentOS 的官方镜像列表域名。这通常是由于 DNS 配置错误、网络问题,或者 CentOS 7 官方仓库已停止维护(EOL) 导致的。

报错截图:


1. 问题原因

  • CentOS 7 已 EOL(生命周期结束) :2024年6月30日后,官方停止维护,mirrorlist.centos.org 可能无法访问。
  • DNS 解析失败curl#6 - "Could not resolve host" 表明系统无法解析域名。
  • 网络配置问题:可能由于防火墙、代理或网络连接问题导致无法访问外部仓库。

2. 解决方法

方法 1:更换国内镜像源(推荐)

由于 CentOS 7 官方源已不可用,建议切换至 阿里云、腾讯云等国内镜像

(1) 备份原有仓库配置
bash 复制代码
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
(2) 下载阿里云镜像源
bash 复制代码
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(3) 清理缓存并重新生成
bash 复制代码
yum clean all
yum makecache
(4) 测试安装
bash 复制代码
yum install -y curl wget	# 测试是否正常

方法 1 亲测有效!


方法 2:检查并修复 DNS 配置

如果仍然无法解析域名,可能是 DNS 问题:

(1) 检查当前 DNS 设置
bash 复制代码
cat /etc/resolv.conf

如果内容为空或只有 127.0.0.1,需手动添加公共 DNS(如 8.8.8.8114.114.114.114):

bash 复制代码
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
(2) 测试域名解析
bash 复制代码
ping mirrors.aliyun.com	# 检查是否能解析

方法 3:临时禁用问题仓库

如果只是某个仓库无法访问,可以临时禁用它:

bash 复制代码
yum --disablerepo=base,updates makecache	# 跳过 base 和 updates 仓库

方法 4:手动指定仓库 BaseURL

如果镜像源仍然有问题,可以手动修改仓库文件:

bash 复制代码
vi /etc/yum.repos.d/CentOS-Base.repo

mirrorlist= 注释掉,并取消 baseurl= 的注释,改为阿里云镜像地址:

ini 复制代码
[base]
name=CentOS-7 - Base
baseurl=https://mirrors.aliyun.com/centos/7/os/$basearch/
# mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os

方法 5:检查网络连接

如果仍然失败,可能是网络问题:

bash 复制代码
ping 8.8.8.8		# 检查网络连通性
curl -v google.com	# 测试 HTTP 访问
iptables -L			# 检查防火墙规则

3. 总结

问题原因 解决方案
CentOS 7 官方源已失效 (EOL) 更换阿里云/腾讯云镜像源
DNS 解析失败 修改 /etc/resolv.conf 添加 DNS
网络或代理问题 检查防火墙、代理设置
仓库配置错误 手动修改 CentOS-Base.repo

如果问题仍然存在,建议:

  • 升级到 CentOS Stream 8/9Rocky Linux/AlmaLinux(CentOS 替代版本)。
  • 使用 --nogpgcheck 临时绕过校验:
bash 复制代码
yum install --nogpgcheck -y dnf

4. 最终修复示例

bash 复制代码
# 1. 备份并更换阿里云源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 2. 清理缓存并测试
yum clean all
yum makecache
yum install -y curl wget	# 验证是否正常
相关推荐
siriuuus25 分钟前
Linux rsyslog 日志服务及日志转发实践
linux·rsyslog
邂逅星河浪漫25 分钟前
【DockerFile+Nginx+DockerCompose】前后端分离式项目部署(docker容器化方式)
nginx·docker·centos·部署·docker-compose·dockerfile·容器化部署
dawnsky.liu33 分钟前
RHEL - 在离线的 RHEL 10 中部署 Lightspeed 命令行助手
linux·人工智能·ai
promising-w35 分钟前
TYPE-C接口,其实有4种
linux·c语言·开发语言
野熊佩骑39 分钟前
CentOS二进制安装包方式部署K8S集群之系统初始化
运维·docker·微服务·云原生·容器·kubernetes·centos
云道轩1 小时前
在rocky linux 9.5上安装yq
linux·kubernetes
烦躁的大鼻嘎1 小时前
【Linux】深入探索多线程编程:从互斥锁到高性能线程池实战
linux·运维·服务器·开发语言·c++·算法·ubuntu
wdfk_prog1 小时前
`git rm --cached`:如何让文件“脱离”版本控制
大数据·linux·c语言·笔记·git·学习·elasticsearch
霍格沃兹测试开发学社测试人社区1 小时前
Playwright MCP浏览器自动化详解指南
运维·自动化
xuhe21 小时前
告别 LaTeX 配置地狱:我的 Overleaf (ShareLaTeX-CE) 完整版私有化部署方案
linux·docker·overleaf