一、问题背景
在 VMware 虚拟机中安装了 CentOS 7 ,准备使用 wget 下载文件,但执行:
bash
wget
提示命令不存在,于是尝试安装:
bash
sudo yum install wget
结果出现报错:
bash
curl#6 - "Could not resolve host: mirrorlist.centos.org"
Cannot find a valid baseurl for repo: base/7/x86_64
即 yum 无法访问镜像源,导致任何软件都无法安装。
二、问题现象总结
主要报错信息如下:
Markdown
Could not resolve host: mirrorlist.centos.org
Could not resolve host: mirrors.aliyun.com //后续切换源,也不行
这说明:
虚拟机网络已通 IP,但 DNS 域名解析失败
同时 CentOS 7 官方 yum 镜像源已停止维护
因此必须同时解决两个问题:
- 修复 DNS
- 更换可用 yum 源
三、环境说明
- 宿主机:Windows
- 虚拟机:VMware Workstation
- 系统:CentOS 7 Minimal
- 网络模式:NAT
四、问题排查过程
1. 确认虚拟机是否联网
bash
ping -c 3 8.8.8.8
返回:
Markdown
64 bytes from 8.8.8.8 ...
说明 虚拟机已联网,IP 可达。
2. 测试域名解析
bash
ping mirrors.aliyun.com
提示:
text
unknown host
说明 DNS 未配置,导致无法解析域名。
五、修复 DNS
执行:
bash
cat > /etc/resolv.conf <<EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF
再次测试:
bash
ping mirrors.aliyun.com
若返回 IP,则 DNS 修复成功。
六、CentOS 7 官方 yum 源已失效说明
CentOS 7 已于 2024 年进入 EOL 状态,
官方 mirrorlist.centos.org 已不再提供有效镜像列表,
因此必须切换第三方镜像源。
七、切换阿里云 yum 镜像源
1. 备份原仓库文件
bash
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak/
2. 写入阿里云 CentOS 7 镜像配置
bash
cat > /etc/yum.repos.d/CentOS-Base.repo <<EOF
[base]
name=CentOS-7 - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0
[updates]
name=CentOS-7 - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/
enabled=1
gpgcheck=0
[extras]
name=CentOS-7 - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/extras/x86_64/
enabled=1
gpgcheck=0
EOF
3. 清理并重建缓存
bash
yum clean all
yum makecache

八、安装 wget
bash
yum install -y wget
验证:
bash
wget --version
输出版本号即安装成功。

九、防止 DNS 重启丢失(可选)
bash
chattr +i /etc/resolv.conf
若以后需修改 DNS:
bash
chattr -i /etc/resolv.conf
十、问题根因总结
| 问题点 | 说明 |
|---|---|
| 域名无法解析 | resolv.conf 未配置 DNS |
| mirrorlist.centos.org 失效 | CentOS 7 官方仓库停止维护 |
| yum 无法获取 repomd.xml | 源不可用导致 |
十一、解决过程
1.虚拟机网络正常
2.DNS 可解析域名
3.yum 源恢复可用
4.wget 成功安装
系统后续可正常安装 git、gcc、python、docker 等开发工具。
十三、完整一键修复脚本(备忘)
bash
ping -c 3 8.8.8.8 || exit
cat > /etc/resolv.conf <<EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak/ 2>/dev/null
cat > /etc/yum.repos.d/CentOS-Base.repo <<EOF
[base]
name=CentOS-7 - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0
EOF
yum clean all
yum makecache
yum install -y wget
结束语
这个问题表面看是 yum 报错,
本质是 DNS 未配置 + CentOS7 官方源下线 共同导致。
按本文流程排查即可一次性彻底解决。