Debian 系统“域名解析变慢”是一个比较常见的问题,通常不是 Debian 本身变慢,而是DNS 解析链路或网络配置出了问题。下面按常见原因从最常见到较少见逐一说明,并给出排查方法。
Debian 默认使用 /etc/resolv.conf 中的 DNS 服务器。
现象
ping www.baidu.com 卡几秒apt update 很慢排查
cat /etc/resolv.conf
常见慢的配置:
nameserver 8.8.8.8
nameserver 202.96.128.86
解决
nameserver 223.5.5.5
nameserver 119.29.29.29
Debian 默认会尝试 IPv6 解析,如果网络不支持 IPv6,会超时重试。
现象
apt 卡在 0% [Working]curl 慢getent hosts 慢排查
getent hosts www.debian.org
解决(推荐) 编辑:
sudo nano /etc/gai.conf
取消注释:
precedence ::ffff:0:0/96 100
或临时禁用 IPv6 测试:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
Debian 10+ 可能使用 systemd-resolved。
检查
systemd-resolve --status
常见问题
127.0.0.53 但上游慢修复
sudo nano /etc/systemd/resolved.conf
示例:
[Resolve]
DNS=223.5.5.5 119.29.29.29
FallbackDNS=8.8.8.8
然后:
sudo systemctl restart systemd-resolved
DNS 查找顺序影响速度。
查看:
cat /etc/nsswitch.conf
典型行:
hosts: files mdns4_minimal [NOTFOUND=return] dns
问题
mdns4_minimal 在局域网无 mDNS 时会慢优化
hosts: files dns
如果 /etc/hosts 中有错误条目或循环解析,也会导致慢。
测试:
ping -M do -s 1472 223.5.5.5
| 原因 | 说明 |
|---|---|
| 防火墙 | 拦截 DNS(53 端口) |
| 代理环境 | apt / curl 走代理但代理慢 |
| NTP 时间漂移 | 部分 TLS 校验变慢 |
| 磁盘 IO 卡 | journal / log 写入阻塞 |
# 1. 看 DNS
cat /etc/resolv.conf
# 2. 测试解析速度
time getent hosts www.debian.org
# 3. 测试直接 DNS
time nslookup www.debian.org 223.5.5.5
# 4. IPv6 是否启用
ip a | grep inet6
你可以告诉我:
cat /etc/debian_version)resolv.conf 内容我可以直接给你一份最优选 DNS + 配置方案。