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.8 或 114.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/9 或 Rocky 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	# 验证是否正常
相关推荐
克里斯蒂亚诺更新25 分钟前
一个服务器访问另外一个服务器端口页面
运维·服务器
12.=0.33 分钟前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu40 分钟前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶1 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW1 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
debugdynamo1 小时前
Netcatty:把 SSH 客户端做回工作台
运维·其他·ssh
时空无限1 小时前
ssh 直接免密输入 sudo 密码
运维·ssh
OPEN-F1 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu
硅基手札2 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
默|笙2 小时前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip