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	# 验证是否正常
相关推荐
信创DevOps先锋2 小时前
中国DevOps工具链选型新趋势:合规、协同与生态融合的平衡之道
运维·gitee·devops
xlq223222 小时前
35.信号
linux
白鸽梦游指南3 小时前
docker镜像优化
linux·运维·docker
A.A呐3 小时前
【Linux第十九章】网络基础
linux·网络
陳10303 小时前
Linux:基础开发工具
linux·运维·服务器
sg_knight3 小时前
CentOS 裸机实操:5分钟完成 MinIO 单机部署与公网访问
linux·python·centos·文件管理·minio·ftp·oss
dgvri3 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
Coder个人博客3 小时前
06_apollo_third_party子模块整体软件架构深入分析文档
linux·人工智能·架构
我爱学习好爱好爱3 小时前
Ansible 常用模块详解:cron、archive、unarchive实战
linux·服务器·ansible
十年编程老舅3 小时前
Linux 多线程高并发编程:读写锁的核心原理与底层实现
linux·c++·linux内核·高并发·线程池·多线程·多进程