直接用curl测repodata/repomd.xml的HEAD响应,关注time_total和speed_download;超2s或出现Could not resolve host需检查DNS或网络;换阿里云源需备份原文件、下载新repo、yum makecache fast生效,并验证实际连接IP是否为阿里云地址。

怎么测 CentOS 7 当前 yum 源的响应时间
直接用 curl 测源地址的 HEAD 响应即可,不用下载完整包。重点看 time_total 和 speed_download 这两项。
常见做法是挑一个仓库里的元数据文件(比如 repodata/repomd.xml)来测:
curl -o /dev/null -s -w "time_total: %{time_total}s, speed: %{speed_download}B/s\n" \
http://mirrors.aliyun.com/centos/7/os/x86_64/repodata/repomd.xml
注意替换 URL 为你当前配置的 baseurl,比如从 /etc/yum.repos.d/CentOS-Base.repo 里复制对应段的 baseurl 值。
- 如果返回
time_total超过 2s,说明源可能较慢或网络路径不佳 - 若出现
Could not resolve host,先检查 DNS 或/etc/resolv.conf - HTTP 302 重定向会拉长耗时,阿里云、清华源等通常有 CDN,但部分镜像站无缓存,实测差异明显
怎么换更快的 yum 源(以阿里云为例)
CentOS 7 默认源在国外,国内直连延迟高、丢包率高,换国内镜像源是见效最快的优化。
执行以下命令一键替换为阿里云源(备份原文件是必须步骤):
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo \ http://mirrors.aliyun.com/repo/Centos-7.repo
然后刷新缓存:
yum makecache fast
- 别跳过
makecache,否则yum install可能报 “No package found” - 如果系统启用了 EPEL,也要同步更新它:
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo - 某些定制版 CentOS(如腾讯云、华为云镜像)自带优化源,此时改源前先确认是否已有更优配置
为什么换了源还是慢?常见卡点在哪
换源后 yum update 仍卡在 “Downloading packages…” 不是源的问题,而是底层网络或配置干扰。
-
yum默认启用metalink,会尝试解析多个镜像并择优,但 DNS 解析失败或超时会导致整体变慢;可临时禁用:yum --disableplugin=fastestmirror update - SELinux 或防火墙没关,
firewalld可能拦截 DNS 查询或 HTTP 连接,建议实验环境先systemctl disable --now firewalld -
/etc/yum.repos.d/下存在多个 repo 文件且都启用(enabled=1),互相冲突;用yum repolist enabled查看实际生效的源 - 某些内网环境走代理,但
/etc/yum.conf里没配proxy=,或配了却不可达,导致所有请求 hang 住
怎么验证源切换真正生效
光看 yum repolist 输出不够,得确认实际请求发到了新域名。
用 strace 抓一次 yum 的 DNS 和连接行为最直接:
strace -e trace=connect,network -f yum repolist 2>&1 | grep -E "(connect|getaddrinfo)"
输出中应看到类似 connect(…, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("114.55.247.19")}, …) —— 这个 IP 应属于你换的源(比如阿里云 IP 段是 114.55.x.x 或 205.251.197.x)。
- 如果还连着
mirror.centos.org或vault.centos.org,说明 repo 文件没生效,检查baseurl是否被注释、enabled=0是否误设 -
yum clean all后再makecache是常规操作,但不能解决 DNS 缓存问题;必要时加systemd-resolve --flush-caches - 某些云厂商镜像(如 AWS China)会返回 302 重定向到本地 CDN,
curl -I看Location:头才能确认最终落地节点
yum install 的慢,往往卡在 metadata 解析或 depsolve 阶段,那就要看 Python 插件和仓库规模了——这点容易被忽略,但影响比源本身更大。

















