这是最基础的一步,DNF 需要访问互联网或本地网络中的仓库服务器。

1、测试网络连通性:
ping 8.8.8.8 如果无法ping 通,说明你的网络连接有问题,检查你的网卡配置、路由、DNS 或物理连接。
2、测试DNS解析:
DNF 需要解析仓库的域名(如mirrors.aliyun.com)。
nginx
host mirrors.aliyun.com
# 或者
dig mirrors.aliyun.com 如果无法解析,可能是 DNS 服务器配置问题,检查/etc/resolv.conf 文件中的 nameserver 设置。

仓库配置错误是最常见的原因之一。
1、列出所有已启用的仓库:
dnf repolist检查列表是否与你预期的仓库一致。
2、检查仓库配置文件:
DNF 的仓库配置文件位于/etc/yum.repos.d/ 目录下,后缀为.repo。

ls /etc/yum.repos.d/常见的错误:
baseurl 或metalink 的 URL 错误:确保 URL 没有拼写错误,并且适合你的系统版本(如el8,el9,fc38 等)。
仓库被禁用:检查配置文件中enabled=0 的行,如果想启用它,改为enabled=1。
无效的仓库:有时系统自带的仓库(如fedora 官方库)可能因为网络原因无法访问,尤其是你在国内的话。建议优先使用国内镜像源。
3、(强烈推荐)使用国内镜像源加速:
对于国内用户,连接到国外官方仓库速度很慢甚至超时,替换为国内镜像源(如阿里云、清华大学、网易等)可以极大改善体验。
备份原有仓库文件:
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/下载新的镜像源Repo文件:
根据你的系统版本,访问镜像站点的帮助页面,按照说明下载对应的.repo 文件。
阿里云镜像:https://developer.aliyun.com/mirror/
清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/help/fedora/ (对于Fedora) 或 https://mirrors.tuna.tsinghua.edu.cn/help/centos/ (对于CentOS)
示例(CentOS 8 切换为阿里云源):
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# 然后清理并重建缓存
dnf clean all
dnf makecache陈旧的或损坏的缓存元数据可能导致各种奇怪的问题。
sudo dnf clean all
这个命令会删除所有已下载的仓库元数据和软件包,之后再次运行dnf update 或dnf install 时会自动重新下载最新的元数据。
如果仓库使用https,可能会遇到 SSL 证书验证失败的问题。
1、错误信息:如果错误信息中包含SSL、certificate、TLS 等关键词,很可能是这个问题。
2、临时解决方法(不推荐,仅用于测试):
在对应的.repo 文件中,将https 改为http,或者添加一行:
sslverify=0注意:这会禁用 SSL 验证,存在安全风险,仅用于快速判断是否是 SSL 问题,确认后应恢复并寻找正确解决方案。
3、根本解决方法:
确保系统安装了最新的 CA 证书包:
sudo dnf install ca-certificates1、服务器端问题:你要访问的镜像站可能暂时宕机或维护,可以尝试换一个镜像源(如从阿里云换成清华源)。
2、超时设置:如果网络较慢,可能会在默认超时时间内无法完成数据下载。
- 可以编辑/etc/dnf/dnf.conf 文件,增加超时时间:
[main]
...
minrate=1
timeout=300timeout 是最大等待时间(秒),minrate 是最小下载速率(KB/s),低于此值也会中止。
graph TD
A[DNF 连接服务器错误] --> B{网络是否通畅?}
B -- 否 --> C[检查网卡、路由、DNS]
B -- 是 --> D{DNS能否解析仓库域名?}
D -- 否 --> E[检查/etc/resolv.conf]
D -- 是 --> F[清理DNF缓存<br>sudo dnf clean all]
F --> G{问题解决?}
G -- 否 --> H[检查仓库配置/etc/yum.repos.d/]
H --> I[URL是否正确?<br>是否启用了国内镜像?]
I --> J{问题解决?}
J -- 否 --> K[检查SSL证书问题<br>安装ca-certificates或临时sslverify=0测试]
K --> L{问题解决?}
L -- 否 --> M[增加超时设置或更换镜像源]绝大多数情况下,问题出在:
1、网络问题(无法上网或DNS失效)。
2、仓库配置问题(URL错误或未使用国内镜像)。
3、缓存问题(执行dnf clean all 解决)。
请从最简单的网络测试和缓存清理开始,逐步检查仓库配置,大概率能解决你的问题。
文章摘自:https://idc.huochengrm.cn/fwq/14840.html
评论
宾承教
回复当DNF无法连接服务器时,可能涉及网络连接、DNS解析和仓库配置等问题,建议首先检查网络连通性并尝试清理缓存;其次确认是否启用了国内镜像源以加速访问国外官方库的速度问题得以解决后请确保SSL证书正确安装或验证以避免安全问题出现以上步骤通常能解决大多数情况下的错误如果仍有问题则可能需要检查和调整超时设置或更换其他可用的服务器端资源来解决这个问题