ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

CentOS/Rocky Linux更换国内yum源:清华与阿里云镜像配置全指南

2026/8/14 5:12:34 拓冰建站 浏览量
CentOS/Rocky Linux更换国内yum源:清华与阿里云镜像配置全指南 1. 为什么你需要更换CentOS的yum源如果你在CentOS上执行过yum update或者安装一个稍微新一点的软件包然后看着进度条以每秒几KB的速度缓慢爬行甚至最后直接报错“无法连接到镜像”那你一定懂我在说什么。默认的CentOS官方源尤其是对于已经停止维护的CentOS 7和8版本其境外的服务器访问速度慢、稳定性差是每个国内Linux用户入门后几乎立刻就要面对的第一个“劝退”点。这不仅仅是慢的问题它直接关系到你后续所有软件环境的搭建效率甚至决定了你学习和工作的心情。更换yum源本质上就是告诉你的系统“别去官网那个又慢又挤的‘总店’下载软件了我们去国内速度快、库存全的‘分店’。” 目前国内最主流、口碑最好的“分店”就是清华大学开源软件镜像站TUNA和阿里云开源镜像站。它们几乎实时同步官方源的所有软件包但服务器在国内下载速度通常是官方源的几十甚至上百倍。从yum install一个几MB的包都要等几分钟到动辄几十MB的依赖包秒级完成这种体验提升是颠覆性的。所以无论你是刚在虚拟机里装好CentOS的新手还是在服务器上部署生产环境的老手配置一个高速、稳定的国内yum源都是系统初始化清单里的第一条也是最基础、最必要的一条。接下来我会以最常用的CentOS 7和CentOS 8及其替代品Rocky Linux 8为例手把手带你走通更换清华源和阿里源的全过程并分享一些我踩过坑才总结出来的细节和技巧。2. 操作前的关键准备与风险规避在动手修改任何系统核心配置之前做好备份和确认系统状态是职业习惯这能让你在操作失误时拥有“后悔药”。2.1 确认你的CentOS具体版本这一步至关重要因为不同大版本如7和8的仓库文件结构和内容差异很大用错了会导致后续所有yum命令报错。打开终端执行cat /etc/redhat-release或者用这个更通用的命令hostnamectl | grep -i operating system你会看到类似CentOS Linux release 7.9.2009 (Core)或CentOS Stream release 8的输出。请牢牢记住这个版本号主要是主版本号7或8。如果你的系统是Rocky Linux 8.x那么在更换yum源的操作上可以完全参照CentOS 8的步骤因为它们是二进制兼容的。2.2 备份现有的yum源配置文件系统的yum源配置文件默认存放在/etc/yum.repos.d/目录下文件名以.repo结尾。在修改前将它们整体打包备份是一个好习惯。# 切换到yum源配置目录 cd /etc/yum.repos.d/ # 创建一个备份目录如果不存在 sudo mkdir -p /etc/yum.repos.d/backup # 将所有现有的.repo文件移动到备份目录 sudo mv *.repo /etc/yum.repos.d/backup/执行完上述命令后/etc/yum.repos.d/目录下应该只剩下一个空的backup文件夹。此时如果你运行yum makecache会提示没有任何仓库可用。这很正常因为我们刚刚“清空”了仓库列表。这个操作非常安全因为备份文件还在随时可以mv backup/*.repo ./恢复原状。注意有些教程会教你直接修改原有的.repo文件比如CentOS-Base.repo。我强烈不建议这样做原因有二第一直接修改容易出错且不便于回滚第二国内镜像站的配置可能会更新直接覆盖原文件会丢失官方的配置模板。我们采用“备份旧文件创建新文件”的方式是最清晰、最安全的。2.3 清理yum缓存可选但推荐在更换源之前清理掉旧的缓存可以避免一些潜在的冲突。sudo yum clean all这个命令会清除/var/cache/yum目录下的所有缓存数据包括软件包头文件和元数据。3. 为CentOS 7配置国内yum源CentOS 7虽然已经停止维护但在国内仍有巨大的存量用户。为其配置稳定的国内源是保障其还能安全使用的关键一步。3.1 配置清华大学镜像源TUNA清华源以其稳定性和速度著称是很多开发者的首选。下载对应的repo文件 首先我们为CentOS 7下载清华源提供的仓库配置文件。使用curl或wget命令。# 使用curl下载如果系统已安装 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo # 或者使用wget下载 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo这里-o(curl) 或-O(wget) 参数指定了下载文件保存的路径和名称。我们将其直接保存为/etc/yum.repos.d/目录下的CentOS-Base.repo。更新软件包缓存 下载完成后需要让yum重新生成元数据缓存。sudo yum makecache这个命令会从新配置的清华源服务器下载仓库的元数据软件包列表、版本、依赖关系等并建立本地缓存。如果网络通畅且配置正确你会看到速度飞快的下载进度最后提示“元数据缓存已建立”。测试安装 为了验证源是否真正生效可以尝试安装一个常见的小工具比如net-tools包含ifconfig命令。sudo yum install net-tools -y观察下载速度。如果速度显著快于之前通常能达到几MB/s到几十MB/s并且安装成功说明清华源配置成功。3.2 配置阿里云镜像源阿里云镜像站是另一个极佳的选择尤其在阿里云ECS服务器上使用时内网速度会有额外加成。下载阿里云的repo文件 过程与清华源类似只是URL不同。# 使用curl sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 使用wget sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo注意这里我们同样将文件保存为CentOS-Base.repo。如果你之前已经配置了清华源这个操作会覆盖掉之前的文件。同一时间系统只会读取一个CentOS-Base.repo。如果你想同时保留多个配置进行测试可以给文件起不同的名字比如CentOS-Ali.repoyum会读取所有.repo文件。更新缓存并测试 同样执行缓存更新和安装测试。sudo yum makecache sudo yum install wget -y # 如果wget还没安装的话可以借此测试3.3 关于CentOS 7的EPEL源很多常用的、更新的软件包如htop,nginx,python3-pip等并不在基础的CentOS官方仓库里而在EPELExtra Packages for Enterprise Linux仓库中。更换了基础源后EPEL源也需要一并更换否则安装这些软件时还是会卡在慢速的官方EPEL源上。安装EPEL仓库定义 首先需要安装epel-release这个包它会帮你创建/etc/yum.repos.d/epel.repo等文件。sudo yum install epel-release -y此时安装的epel-release包其内部的repo文件指向的仍然是官方的fedoraproject.org地址速度可能很慢。替换EPEL源为国内源 我们需要手动修改EPEL的repo文件。备份并编辑它# 备份原文件 sudo cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup # 使用sed命令批量替换镜像地址以清华源为例 sudo sed -i s|^metalink|#metalink|g /etc/yum.repos.d/epel.repo sudo sed -i s|^#baseurlhttps://download.fedoraproject.org/pub|baseurlhttps://mirrors.tuna.tsinghua.edu.cn|g /etc/yum.repos.d/epel.repo这两条sed命令的作用是第一条注释掉metalink行一种动态选择镜像的机制在国内可能不好用第二条将baseurl的注释取消并将其地址替换为清华镜像站地址。 如果你想用阿里云的EPEL源可以将第二条命令中的tuna.tsinghua.edu.cn替换为mirrors.aliyun.com。更新缓存 最后别忘记更新EPEL仓库的缓存。sudo yum makecache4. 为CentOS 8/Rocky Linux 8配置国内yum源CentOS 8的生命周期较短后来被CentOS Stream取代。但很多用户转向了它的下游复刻版如Rocky Linux 8或AlmaLinux 8。它们的yum源配置逻辑相似但仓库名称和结构发生了变化。4.1 CentOS 8 配置国内源对于原版的CentOS 8操作步骤与CentOS 7类似但repo文件的URL后缀不同。配置基础源以阿里云为例# 备份旧配置如果存在 sudo mkdir -p /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2/dev/null || true # 下载阿里云CentOS 8的repo文件 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo # 注意CentOS 8官方已停止维护阿里云此镜像也可能不再更新。 # 更推荐使用vault.centos.org的存档源或迁移到Rocky/AlmaLinux。一个更实际的方案使用CentOS Vault源 由于CentOS 8已EOL主流镜像站可能不再同步其更新。对于还需要使用CentOS 8系统的场景可以将其源指向官方存档库。sudo sed -i s|mirrorlist|#mirrorlist|g /etc/yum.repos.d/CentOS-*.repo sudo sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*.repo这个操作会将所有CentOS官方仓库的地址从当前的镜像列表切换到固定的存档库地址。速度可能一般但能确保软件包可用。4.2 Rocky Linux 8 配置国内源推荐当前方案如果你使用的是Rocky Linux 8配置国内源体验会好很多因为社区仍在积极维护。备份原有源cd /etc/yum.repos.d/ sudo mkdir -p backup sudo mv *.repo backup/下载Rocky Linux的国内镜像repo文件 以阿里云为例需要确认阿里云镜像站是否包含Rocky Linux目前是包含的。更通用的方法是直接使用Rocky Linux官方提供的脚本但手动修改更可控。方法一手动下载配置通用访问国内镜像站找到Rocky Linux的repo文件。例如清华源提供了Rocky Linux的镜像# 下载BaseOS和AppStream仓库配置以清华源为例 sudo wget -O /etc/yum.repos.d/Rocky-Base.repo https://mirrors.tuna.tsinghua.edu.cn/rocky/8/BaseOS/x86_64/os/rocky.repo?actiondownload # 注意上面的URL可能需要调整最好直接去 mirrors.tuna.tsinghua.edu.cn/rocky/ 页面查看正确的.repo文件链接。 # 一个更可靠的方法是直接从 backup 目录里复制出原来的 .repo 文件然后修改其中的 baseurl。方法二修改现有repo文件中的镜像地址更常用假设我们已经从backup里恢复了原始的Rocky-BaseOS.repo文件。sudo cp backup/Rocky-BaseOS.repo ./ sudo cp backup/Rocky-AppStream.repo ./然后编辑这两个文件将其中的mirrorlist行注释掉并将baseurl指向国内镜像。例如修改Rocky-BaseOS.reposudo vi /etc/yum.repos.d/Rocky-BaseOS.repo找到[baseos]段落进行如下修改[baseos] nameRocky Linux $releasever - BaseOS # 注释掉 mirrorlist # mirrorlisthttps://mirrors.rockylinux.org/mirrorlist?arch$basearchrepoBaseOS-$releasever # 启用并修改 baseurl baseurlhttps://mirrors.tuna.tsinghua.edu.cn/rocky/$releasever/BaseOS/$basearch/os/ gpgcheck1 ...同理修改Rocky-AppStream.repo中的[appstream]段落将baseurl改为https://mirrors.tuna.tsinghua.edu.cn/rocky/$releasever/AppStream/$basearch/os/。更新缓存sudo dnf makecache # Rocky Linux 8 默认使用 dnf 命令与 yum 兼容 sudo dnf update -y5. 进阶配置、验证与排错指南配置完源只是第一步确保它正确、高效地工作并解决可能遇到的问题才是更重要的。5.1 如何验证yum源已经生效执行yum repolist all或dnf repolist all会列出所有已启用和禁用的仓库。查看输出中仓库的地址确认是否已经变成了你配置的国内镜像站地址如mirrors.tuna.tsinghua.edu.cn或mirrors.aliyun.com。更直观的测试是安装或更新软件。尝试sudo yum update -y观察下载速度。也可以使用yum install speedtest-cli来安装一个测速工具如果EPEL源已配置好但这本身就需要网络。5.2 遇到“无法准备内部镜像列表”或“找不到URL”错误怎么办这是更换源后最常见的问题原因和解决方法如下版本不匹配这是最可能的原因。你下载的.repo文件中的$releasever变量可能没有被正确解析。对于CentOS 7这个变量应该是7对于CentOS 8应该是8。有时镜像站的目录命名可能略有不同比如用了7.9.2009而不是7。你可以打开下载的.repo文件如CentOS-Base.repo检查里面的baseurl链接。手动将$releasever替换成你的主版本号7或8并尝试在浏览器中访问这个链接看是否能正常打开目录。镜像站路径变更镜像站的目录结构偶尔会调整。去清华大学或阿里云的镜像站网页手动浏览到对应CentOS版本的目录确认os,updates等子目录是否存在并核对.repo文件中的路径是否一致。网络问题确保你的服务器或虚拟机可以访问公网ping mirrors.tuna.tsinghua.edu.cn。有些企业内网可能需要配置代理。5.3 同时配置多个源并设置优先级你可以在/etc/yum.repos.d/目录下放置多个.repo文件。yum/dnf 会读取所有文件。如果同一个软件包在多个仓库中存在默认会安装版本最高的那个。如果你想优先使用某个源比如优先用阿里云找不到再用清华可以配置yum-priorities插件。安装插件sudo yum install yum-plugin-priorities -y在.repo文件的每个仓库段落[repo-name]中添加一行priorityN其中 N 是一个数字。数字越小优先级越高。例如设置阿里云源优先级为1EPEL源优先级为10。[base] nameCentOS-$releasever - Base - mirrors.aliyun.com baseurlhttps://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 priority15.4 关于GPG密钥检查失败.repo文件中通常有gpgcheck1和gpgkey的配置用于验证软件包的完整性。如果镜像站使用的GPG密钥与官方不同或者密钥文件下载失败可能会报错。解决方法临时禁用在测试时可以临时在yum install命令后加上--nogpgcheck参数。不推荐在生产环境长期使用。导入正确的密钥确保gpgkey指向的URL可以访问。有时需要手动下载并导入sudo rpm --import [GPG密钥URL]。5.5 一个实用的检查脚本你可以将以下内容保存为一个脚本如check_repo.sh用于快速检查当前系统的源配置概况#!/bin/bash echo 系统版本 cat /etc/redhat-release echo -e \n 已启用的YUM/DNF仓库 yum repolist enabled 2/dev/null || dnf repolist enabled echo -e \n 检查基础仓库URL示例 for repo in $(yum repolist enabled | grep -oP ^\S); do echo 仓库: $repo yum config-manager --dump $repo 2/dev/null | grep -E baseurl|mirrorlist | head -2 echo --- done给脚本执行权限后运行sudo bash check_repo.sh。6. 从理论到实践一次完整的服务器初始化配置实录让我以一个真实的场景来串联以上所有步骤假设我们拿到一台全新的、最小化安装的CentOS 7.9服务器目标是将其yum源更换为阿里云源并安装必要的工具。登录服务器确认环境[rootnew-server ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootnew-server ~]# ping -c 2 mirrors.aliyun.com PING mirrors.aliyun.com (110.242.68.193) 56(84) bytes of data. 64 bytes from 110.242.68.193 (110.242.68.193): icmp_seq1 ttl48 time25.6 ms ... # 网络通畅备份并清空原有源配置[rootnew-server ~]# cd /etc/yum.repos.d/ [rootnew-server yum.repos.d]# mkdir -p backup [rootnew-server yum.repos.d]# mv *.repo backup/ [rootnew-server yum.repos.d]# ls backup # 确认目录已空下载并配置阿里云CentOS 7源[rootnew-server yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo [rootnew-server yum.repos.d]# cat CentOS-Base.repo | grep -A2 -B2 baseurl.*aliyun # 快速检查文件内容确认baseurl已指向阿里云更新缓存并测试速度[rootnew-server yum.repos.d]# yum clean all [rootnew-server yum.repos.d]# time yum makecache ... # 观察下载速度应该非常快 Loaded plugins: fastestmirror Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/4): base/7/x86_64/group_gz | 153 kB 00:00:00 (2/4): extras/7/x86_64/primary_db | 250 kB 00:00:00 (3/4): updates/7/x86_64/primary_db | 11 MB 00:00:01 # 注意这里的下载速度 (4/4): base/7/x86_64/primary_db | 6.1 MB 00:00:00 Metadata Cache Created real 0m5.567s # 整个缓存建立过程只用了5秒多安装EPEL源并替换[rootnew-server yum.repos.d]# yum install epel-release -y [rootnew-server yum.repos.d]# sed -i s|^metalink|#metalink|g /etc/yum.repos.d/epel.repo [rootnew-server yum.repos.d]# sed -i s|^#baseurlhttps://download.fedoraproject.org/pub|baseurlhttps://mirrors.aliyun.com|g /etc/yum.repos.d/epel.repo [rootnew-server yum.repos.d]# yum makecache安装常用工具验证全流程[rootnew-server yum.repos.d]# yum install -y vim wget net-tools tree htop在安装过程中你会看到所有软件包都从mirrors.aliyun.com飞速下载。至此这台新服务器的yum源配置就完成了后续所有软件管理操作都将享受高速体验。在整个过程中最关键的是“备份原配置”和“确认版本对应”这两步。只要这两步做对了剩下的就是复制粘贴命令。如果遇到问题就按照第5节的排错指南从版本号和网络连通性开始查起。更换yum源这个操作本身不复杂但它为你后续在Linux世界里的所有探索铺就了一条平坦的高速公路。