Fedora装软件卡到怀疑人生?换源解决速度翻倍,从基础配置到常用镜像选择一步到位,新手避坑指南
你第一次用Fedora,满心欢喜地打开终端,准备装个Chrome或者VSCode,结果sudo dnf install敲下去之后,那条进度条像蜗牛爬一样,半天不动弹,网络请求超时,报错信息满天飞——那一刻你是不是怀疑人生了?
别急,这几乎每个Fedora新手都会踩的坑。罪魁祸首就一个:默认的官方源在国内访问速度极慢,甚至直接连不上。
好消息是,解决方案非常简单,而且一旦配好,速度能翻好几倍。今天我就带你从头到尾把Fedora换源这件事搞明白,不绕弯子,全是干货。
为什么默认源这么慢?
Fedora官方维护的软件仓库服务器主要部署在美国,对于国内用户来说,物理距离远、网络链路长,再加上国际带宽的瓶颈,下载速度经常只有几十KB/s,甚至经常超时失败。
而且Fedora的默认配置里,fastestmirror插件虽然会自动选最快的镜像,但它的判断标准有时候不太靠谱,可能选到一个同样很慢的海外镜像。
所以,手动指定一个国内的优质镜像源,是提升Fedora体验的第一步,也是最关键的一步。
换源的核心思路
Fedora换源其实就两个动作:
- 把默认的
updates和fedora仓库指向国内镜像 - 清理缓存,重建元数据
简单说,就是告诉dnf:”别去美国服务器下载了,去国内这个镜像站下”。
一、推荐镜像源怎么选?
国内好用的Fedora镜像源不少,我按稳定性和速度给你排个序:
阿里云镜像(首选推荐)
https://mirrors.aliyun.com/fedora/
阿里云的服务器质量很高,带宽充足,更新及时。几乎是国内所有Linux发行版用户的默认选择,Fedora也不例外。
腾讯云镜像
https://mirrors.cloud.tencent.com/fedora/
腾讯云镜像也很稳定,尤其如果你用的是腾讯云服务器,延迟会非常低。
华为云镜像
https://mirrors.huaweicloud.com/fedora/
华为云近年来投入很大,镜像质量也在快速提升。
清华大学TUNA镜像
https://mirrors.tuna.tsinghua.edu.cn/fedora/
学术圈的口碑之选,更新速度有时候比其他商业镜像还要快。
中科大USTC镜像
https://mirrors.ustc.edu.cn/fedora/
老牌高校镜像站,稳定性没得说。
我的建议:个人用户首选阿里云或腾讯云,企业用户可以根据已有云服务选型来定。
二、换源的具体操作
方法一:直接修改仓库配置文件(最常用)
Fedora 36及以上版本,仓库配置文件在/etc/yum.repos.d/目录下。
先看看你系统里有哪些仓库文件:
ls /etc/yum.repos.d/
你会看到类似fedora.repo和fedora-updates.repo这样的文件。
阿里云镜像的完整URL路径是:
https://mirrors.aliyun.com/fedora/updates/40/$basearch/
https://mirrors.aliyun.com/fedora/40/$basearch/os/
注意把40替换成你实际的Fedora版本号。可以用下面这条命令查看当前版本:
cat /etc/os-release | grep VERSION_ID
以Fedora 40为例,修改方法如下:
备份原始配置(这一步一定要做,出问题了可以恢复):
sudo cp /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.bak
sudo cp /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.bak
修改fedora.repo:
sudo sed -i 's|metalink|#metalink|g' /etc/yum.repos.d/fedora.repo
sudo sed -i 's|#baseurl|baseurl|g' /etc/yum.repos.d/fedora.repo
sudo sed -i 's|download.example/pub/fedora|mirrors.aliyun.com/fedora|g' /etc/yum.repos.d/fedora.repo
修改fedora-updates.repo:
sudo sed -i 's|metalink|#metalink|g' /etc/yum.repos.d/fedora-updates.repo
sudo sed -i 's|#baseurl|baseurl|g' /etc/yum.repos.d/fedora-updates.repo
sudo sed -i 's|download.example/pub/fedora|mirrors.aliyun.com/fedora|g' /etc/yum.repos.d/fedora-updates.repo
清理缓存并重建:
sudo dnf clean all
sudo dnf makecache
完成后,试一下安装速度:
sudo dnf install htop -y
如果速度从几十KB/s变成几MB/s,说明换源成功了。
方法二:用dnf的命令行参数临时指定(适合测试)
如果你不确定哪个镜像好用,可以先不改配置文件,用命令行测试速度:
sudo dnf --repofrompath=aliyun,https://mirrors.aliyun.com/fedora/40/all/os/ --enablerepo=aliyun install htop -y
这个方式不会影响原有配置,测完了不满意随时能恢复。
方法三:写一个一键脚本(推荐新手收藏)
把下面这段保存成fedora-mirror-switch.sh,以后换镜像一键搞定:
#!/bin/bash
# Fedora换源脚本 - 支持阿里云、腾讯云、华为云、TUNA、USTC
# 使用方法: sudo bash fedora-mirror-switch.sh aliyun
MIRROR_NAME="${1:-aliyun}"
# 获取Fedora版本号
FEDORA_VERSION=$(cat /etc/os-release | grep VERSION_ID | cut -d= -f2 | tr -d '"')
echo "检测到Fedora版本: $FEDORA_VERSION"
# 定义各镜像源URL
declare -A MIRRORS
MIRRORS=(
["aliyun"]="https://mirrors.aliyun.com/fedora"
["tencent"]="https://mirrors.cloud.tencent.com/fedora"
["huawei"]="https://mirrors.huaweicloud.com/fedora"
["tuna"]="https://mirrors.tuna.tsinghua.edu.cn/fedora"
["ustc"]="https://mirrors.ustc.edu.cn/fedora"
)
if [[ -z "${MIRRORS[$MIRROR_NAME]}" ]]; then
echo "错误: 不支持的镜像源 '$MIRROR_NAME'"
echo "支持的镜像: ${!MIRRORS[@]}"
exit 1
fi
MIRROR_URL="${MIRRORS[$MIRROR_NAME]}"
echo "切换到: $MIRROR_URL"
# 备份原始配置
sudo cp /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.bak.$(date +%Y%m%d)
sudo cp /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.bak.$(date +%Y%m%d)
# 替换metalink为baseurl并指向镜像
sudo sed -i "s|metalink|#metalink|g" /etc/yum.repos.d/fedora.repo
sudo sed -i "s|#baseurl|baseurl|g" /etc/yum.repos.d/fedora.repo
sudo sed -i "s|download.example/pub/fedora|${MIRROR_URL}|g" /etc/yum.repos.d/fedora.repo
sudo sed -i "s|metalink|#metalink|g" /etc/yum.repos.d/fedora-updates.repo
sudo sed -i "s|#baseurl|baseurl|g" /etc/yum.repos.d/fedora-updates.repo
sudo sed -i "s|download.example/pub/fedora|${MIRROR_URL}|g" /etc/yum.repos.d/fedora-updates.repo
# 清理缓存并重建
sudo dnf clean all
sudo dnf makecache
echo ""
echo "✅ 换源完成!测试安装速度:"
echo "sudo dnf install htop -y"
使用方式:
sudo bash fedora-mirror-switch.sh aliyun
或者换腾讯云:
sudo bash fedora-mirror-switch.sh tencent
三、常见坑点和避坑指南
坑一:版本号写错了
这是新手最容易犯的错误。Fedora的版本号不是固定的,Fedora 39、40、41的仓库路径不一样。如果你按网上的教程照着改,但版本号不匹配,就会出现404错误。
解决方法:用cat /etc/os-release确认版本号,然后用curl -I https://mirrors.aliyun.com/fedora/40/测试URL是否有效。
坑二:metalink和baseurl搞混
Fedora的仓库配置里同时有metalink和baseurl两种URL格式。metalink是一个动态选择的地址列表,baseurl是直接指定URL。
关键操作:把metalink注释掉(前面加#),把baseurl的注释去掉。这个顺序不能反。
坑三:dnf缓存没清干净
改完配置之后,如果不执行sudo dnf clean all,dnf可能还在用旧的元数据缓存,导致安装失败或者还是走旧源。
黄金法则:每次改完源配置,必须先clean再makecache。
坑四:第三方仓库忘了换
很多人只换了官方源,但RPM Fusion、VSCode、Chrome这些第三方仓库还是走的国外源,下载速度照样慢。
解决方法:检查/etc/yum.repos.d/目录下还有哪些repo文件,逐一检查它们的baseurl。
比如RPM Fusion的换源:
# 查看当前RPM Fusion配置
cat /etc/yum.repos.d/rpmfusion-free.repo
# 替换URL
sudo sed -i 's|download1.rpmfusion.org|mirrors.aliyun.com/rpmfusion|g' /etc/yum.repos.d/rpmfusion-free.repo
sudo sed -i 's|download1.rpmfusion.org|mirrors.aliyun.com/rpmfusion|g' /etc/yum.repos.d/rpmfusion-nonfree.repo
坑五:用了一些过时的教程
网上很多Fedora换源教程是针对Fedora 32、33甚至更老的版本写的,那些版本的仓库文件路径和命名方式和Fedora 36+不一样。
判断方法:如果你的系统里有fedora.repo和fedora-updates.repo,说明是较新版本,按本教程操作即可。如果是老版本,可能文件名是fedora-updates-master.repo之类的。
四、验证换源是否成功
换完源之后,怎么确认真的生效了?
方法一:看dnf repolist
sudo dnf repolist
如果输出的仓库URL里能看到mirrors.aliyun.com,说明配置正确。
方法二:看dnf调试输出
sudo dnf --debugoutput install htop -y 2>&1 | grep -i "mirrors"
能看到下载的URL指向你的镜像源。
方法三:直接跑速度测试
time sudo dnf install htop -y
对比换源前后的时间,通常能从几分钟缩短到十几秒。
五、进阶:配置fastestmirror插件
即使换了国内镜像,Fedora默认的fastestmirror插件可能还是会偶尔选到慢的镜像。可以在/etc/dnf/dnf.conf里做以下优化:
sudo tee -a /etc/dnf/dnf.conf << 'EOF'
# 强制使用本地镜像,不走metalink
plugin_path=/usr/lib/dnf-plugins
plugin_conf_path=/etc/dnf/plugins
fastestmirror=True
exclude=*.rpm
EOF
同时可以在/etc/dnf/plugins/fastestmirror.conf里指定优先使用的镜像:
[main]
enabled=True
socktimeout=30
hostpairtimeout=20
cachesize=10485760
verbose=False
force_timer=True
六、常见问题FAQ
Q: 换源后dnf update卡住不动怎么办?
A: 先检查网络连接是否正常,然后执行sudo dnf clean all && sudo dnf makecache。如果还是不行,试试换一个镜像源。
Q: 如何恢复默认源?
A: 备份文件还在的话,直接恢复:
sudo cp /etc/yum.repos.d/fedora.repo.bak /etc/yum.repos.d/fedora.repo
sudo cp /etc/yum.repos.d/fedora-updates.repo.bak /etc/yum.repos.d/fedora-updates.repo
sudo dnf clean all
sudo dnf makecache
Q: 为什么有些包还是从国外源下载?
A: 因为那些包可能来自第三方仓库(如RPM Fusion、Google Chrome官方源等),这些仓库需要单独换源。
Q: Fedora的源码仓库要不要换?
A: 普通用户基本用不到源码仓库,可以忽略。如果需要,路径是/etc/yum.repos.d/fedora-source.repo,同样替换URL即可。
七、总结
Fedora换源这件事,说复杂也复杂,说简单也简单。核心就记住三句话:
- 选一个靠谱的国内镜像——阿里云最省心
- 把metalink注释掉,baseurl指过去——别搞反
- clean之后makecache——这个顺序不能乱
配完之后,你的Fedora装软件速度能从”怀疑人生”变成”丝滑流畅”。以后再遇到sudo dnf install,再也不用盯着进度条干等了。
最后提醒:Fedora每半年发一个新版本,每次大版本更新后建议重新检查源配置是否仍然有效。因为仓库路径中的版本号会跟着变化。
祝你用Fedora用得开心!
