CentOS 7能联网但yum报错:Could not resolve host: mirrorlist.centos.org 终极解决方法

CentOS 7能联网但yum报错:Could not resolve host: mirrorlist.centos.org 终极解决方法

关键词:CentOS 7, yum, Could not resolve host, mirrorlist.centos.org, 软件源, EOL

问题描述

大家好!相信很多还在使用 CentOS 7 的朋友都遇到了这个问题:虚拟机明明可以 ping 通外网,浏览器也能打开网页,但一使用 yum 命令就报错,提示 Could not resolve host: mirrorlist.centos.orgCannot find a valid baseurl for repo: base/7/x86_64

bash

复制代码
sudo yum install wget
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
...
Cannot find a valid baseurl for repo: base/7/x86_64

别急,这不是你的网络配置问题! 本文教你如何快速解决它。

问题根源

这个错误的主要原因是因为 CentOS 7 已在 2024 年 6 月 30 日停止维护(EOL) 。官方将原来的软件源(包括 mirrorlist.centos.org)迁移到了存档服务器(如 vault.centos.org),导致默认的配置无法再正常工作。

详细步骤

步骤一:备份原有的软件源配置(好习惯)

首先,我们备份一下原来的配置,以防万一。

bash

复制代码
sudo mv /etc/yum.repos.d /etc/yum.repos.d.backup
sudo mkdir /etc/yum.repos.d
步骤二:下载新的软件源配置文件

这里以阿里云镜像源为例(国内访问速度快且稳定)。

方法一:使用 curl 命令直接下载(推荐)

如果您的系统还有 curl 命令,直接执行:

bash

复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

方法二:手动创建配置文件

如果 curl 也报错,没关系,我们可以手动创建!

  1. 使用 vi 编辑器创建并编辑文件:

    bash

    复制代码
    sudo vi /etc/yum.repos.d/CentOS-Base.repo
  2. 按下 i 键进入编辑模式,然后将以下 【阿里云】源配置 完整地复制粘贴进去:

    复制代码
    [base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
    [centosplus]
    name=CentOS-$releasever - Plus - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
  3. 粘贴后,按下 Esc 键,然后输入 :wq 并回车,保存文件并退出 vi 编辑器。

步骤三:清理缓存并重建

yum 读取我们新配置的软件源。

bash

复制代码
sudo yum clean all    # 清理旧的缓存
sudo yum makecache    # 建立新的缓存
步骤四:大功告成,测试一下!

现在,再次执行你之前失败的命令,测试是否成功:

bash

复制代码
sudo yum install -y wget

如果看到 Complete! 提示,恭喜你,问题已经完美解决!🎉


其他替代镜像源

如果你不想用阿里云,也可以替换为其他源,只需在 步骤二 中使用对应的配置即可。

  • 清华大学镜像源

    • 下载命令:sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/centos-vault-7.repo
  • 华为云镜像源

    • 下载命令:sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-reg.repo

重要提醒

虽然此方法可以暂时解决软件安装的问题,但请注意:CentOS 7 已经停止维护,不再提供任何安全更新。这意味着继续使用该系统可能会存在安全风险。

强烈建议:对于生产环境或新项目,请尽快规划迁移到仍在维护的系统,如:

  • Rocky Linux

  • AlmaLinux

  • CentOS Stream

  • 或其他稳定的 Linux 发行版。


总结

遇到 Could not resolve host: mirrorlist.centos.org 错误,只需三步:

  1. 备份原配置。

  2. 换源到阿里云、清华等国内镜像站。

  3. 清缓存并测试。

希望这篇教程能帮到你!如果还有问题,欢迎在评论区留言。