Linux怎么排查DNS解析延迟过高的问题

阿敏酱_3919

阿敏酱_3919

2026-10-10

851人浏览

原创

先执行ping -c 3 8.8.8.8和ping -c 3 baidu.com对比响应:前者快后者慢则确认dns解析延迟过高;再用curl提取time_namelookup值,持续>1000ms即坐实;dig +trace或横向对比不同dns的query time可定位瓶颈,resolvectl status查真实生效dns,停systemd-resolved直连测试可验证本地服务是否拖后腿。

linux怎么排查dns解析延迟过高的问题

确认是否真是DNS解析延迟过高

先别急着查配置,执行 ping -c 3 8.8.8.8 和 ping -c 3 baidu.com 对比:前者毫秒级响应,后者卡顿或超时,说明问题出在域名解析环节;如果两者都慢,那根本不是DNS的事,是网络链路或本机路由出了问题。

再用 curl -o /dev/null -s -w '%{time_namelookup}\n' https://baidu.com 提取纯DNS解析耗时——这个值若持续 >1000ms,就坐实了DNS延迟过高。

快速定位卡在哪一级递归服务器

方法一:用 dig +trace baidu.com 看完整解析路径。重点盯住每一跳的 Query time 字段:如果卡在“问根服务器”或“问 .com 顶级域”这步(比如耗时 800ms),说明你当前配置的递归DNS服务器上游质量差,不是你本地网络的问题。

方法二:横向对比不同递归服务器表现:dig @1.1.1.1 baidu.com +short、dig @223.5.5.5 baidu.com +short、dig @8.8.8.8 baidu.com +short 各跑三次,记录每次 Query time。若某台 consistently 超过 300ms 且波动大,基本可淘汰。

注意:dig @127.0.0.53 baidu.com 这种查的是 systemd-resolved 的 stub resolver,结果受其转发逻辑影响,不能代表真实递归服务器性能。

检查本地DNS服务是否拖后腿

第一步:运行 ls -l /etc/resolv.conf。如果它指向 /run/systemd/resolve/stub-resolv.conf 或 /run/NetworkManager/resolv.conf,说明 DNS 请求实际由 systemd-resolved 或 NetworkManager 中转,不是直连你写的 nameserver。

第二步:查真实生效的递归服务器:resolvectl status,看 Global 下的 “DNS Servers” 行——这才是你系统真正发请求的目标地址。

第三步:临时绕过中间层,强制直连测试:sudo systemctl stop systemd-resolved → echo "nameserver 223.5.5.5" | sudo tee /etc/resolv.conf → 再跑 dig baidu.com +short。如果延迟骤降,说明 systemd-resolved 的转发或缓存机制本身成了瓶颈。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

验证DNS服务器可达性与稳定性

对 resolvectl status 显示的主DNS地址(如 192.168.1.1 或 114.114.114.114),执行:ping -c 5 【目标IP】。丢包率 >0% 或平均延迟 >100ms,该服务器就不适合当主力。

再用 dig @【目标IP】 google.com +short 连续执行 10 次,用 awk '{print $NF}' 提取 Query time 并观察分布:若出现多次 >500ms 或数值忽高忽低(如 23ms/412ms/18ms/893ms),说明该DNS服务不稳定,会放大应用层超时风险。

公司内网有自建DNS的,优先测内网地址(如 192.168.1.11)——它通常比任何公网DNS快一个数量级,且不受出口带宽和运营商策略限制。

更换并固化优质递归DNS

① 编辑 /etc/systemd/resolved.conf,取消注释并修改 DNS= 行:DNS=1.1.1.1 223.5.5.5 9.9.9.9;

② 添加关键优化参数:Options timeout:1 rotate(首查超时缩至1秒,多个DNS轮询防单点卡死);

③ 执行 sudo systemctl restart systemd-resolved;

④ 验证生效:resolvectl query baidu.com,确认 SERVER 字段显示的是你刚配的 IP 地址之一,且 Query time 稳定在 50ms 以内。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6070

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5722

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3353

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2865

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3079

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习