服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-11 简米科技 3,644 字 9 分钟阅读

如何查看域名解析缓存?,DNS缓存查看方法是什么

导读查看域名解析缓存的核心方法是使用操作系统的内置命令,Windows系统执行 ipconfig /displaydns,macOS和Linux系统执行 sudo dscacheutil -cachedump -entries 或 dig 相关命令,无需安装任何第三方软件,为什么你需要关心DNS缓存查看这件事你的电……

查看域名解析缓存的核心方法是使用操作系统的内置命令,Windows系统执行 ipconfig /displaydns,macOS和Linux系统执行 sudo dscacheutil -cachedump -entries 或 dig 相关命令,无需安装任何第三方软件。

为什么你需要关心DNS缓存查看这件事

你的电脑每天要解析无数个域名,浏览器地址栏输入一个网址,系统先查本地缓存,没有记录才去问DNS服务器,缓存生效期间,网站打开速度飞快,但一旦缓存过期或者记录被污染,你就会被带到错误的IP地址上,域名解析缓存就是一台本地的“电话簿”,记录着域名和IP的对应关系,学会查看它能帮你诊断网站打不开、DNS劫持、IP地址变更后仍然访问旧服务器等问题。

排查网络故障时,我见过太多人一上来就重启路由器、改DNS服务器地址,折腾半天发现是本地缓存里的旧记录在捣乱,掌握正确的查看方法,就能在几分钟内锁定问题根源,下面我把不同系统下的查看方式全部拆开讲清楚。

DNS缓存查看命令是什么:先分清系统再动手

不同操作系统的缓存机制不一样,查看方法也完全不同,行业共识认为,Windows和macOS的缓存存储方式差异较大,对应的命令也就各不相同。

Windows系统查看DNS缓存记录

Windows用户是查询DNS缓存最方便的一群人,因为微软在系统里贴心内置了一条专门命令,按下 Win + R 组合键,输入 cmd 回车打开命令行窗口,然后执行:

  • ipconfig /displaydns:列出所有DNS缓存条目,这是Windows下最标准的DNS缓存查看命令
    包含域名、记录类型、生存时间(TTL)和IP地址,如果你只想看某个特定域名,直接在命令后面加上管道符过滤:
ipconfig /displaydns | find "baidu.com"

高版本的Windows 10和Windows 11还支持PowerShell,同样可以执行这条经典命令,输出效果完全一致,实际查看DNS缓存记录时,你会发现大量来自浏览器预取、系统服务的解析条目,它们混杂在一起,需要仔细分辨。

具体操作路径还可以通过“设置 -> 网络和Internet -> 高级网络设置 -> 网络适配器”进入图形界面,但图形界面上仅能查看DNS服务器配置,无法查看缓存记录,想让域名解析缓存第一时间刷新,建议后续执行 ipconfig /flushdns 清空所有缓存。

macOS和Linux系统下的查看方式

macOS用户的环境比Windows复杂一些,因为系统里同时存在多种DNS解析服务,查看域名解析缓存的常用命令是:

  • sudo dscacheutil -cachedump -entries:输出完整的DNS缓存记录
  • dscacheutil -cachedump -entries | grep baidu.com:精准过滤指定域名

Linux系统更加灵活,常用的systemd-resolved服务用这条命令:

sudo resolvectl statistics
sudo resolvectl query example.com

Ubuntu 22.04及更新的发行版还支持 resolvectl dump 来查看完整缓存信息,老版本的Linux系统可以查看 /etc/hosts 文件,这里面的静态解析记录优先级最高,但和动态DNS缓存是两回事,国内用户常用的CentOS 7系统,如果使用了dnsmasq服务,则通过 kill -USR1 $(cat /var/run/dnsmasq.pid) 触发日志输出,再查系统日志得到缓存内容。

查看域名解析缓存时要读懂这些参数

执行 ipconfig /displaydns 或 dscacheutil 后,输出的字段是判断问题的基础,每一条记录都包含几个关键部分,这里挑重点说清楚。

  • 记录名称(Record Name):实际解析的域名,www.example.com
  • 记录类型(Record Type):绝大多数是 A(IPv4地址)或 AAAA(IPv6地址),也可能是 CNAME(别名记录)
  • 生存时间(Time To Live):表示该记录还能在缓存里留存多少秒
  • 数据长度(Data Length):数据段的字节数
  • IP地址:最终的解析结果,这是你最需要关注的字段

假设你刚把网站迁移到新的服务器,IP地址已经变更,但本地域名解析缓存中仍是旧IP,此时再看数据长度和TTL值,可以预估缓存被动刷新的时间,如果TTL数值很大(例如86400秒),意味着缓存会持续一整天,与其等它自动过期,不如直接执行清理命令。

对每个字段的实际含义都了然于胸,你就会明白排查思路应该放在哪个环节上。

DNS缓存的常见故障场景及解开方法

查看缓存只是第一步,多数场景下你还需要进一步处理,域名解析缓存的价值在于加速,但也会带来一些顽固故障,下面是几个几乎人人都能遇见的实际问题。

网页打不开但别人能访问

这种现象通常指向本地缓存中的过期记录,多台设备在同一个局域网内,有人能打开网页有人不能,十有八九是设备没有及时更新域名解析,执行 ipconfig /flushdns 重新建立干净缓存,再去刷新页面,多数情况下可以立刻解决,这条命令只在Windows下生效,macOS用户要执行:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

在较新版本的macOS(Ventura及以后)中,高版本系统简化了缓存重建流程,killall -HUP mDNSResponder 已足够,macOS用户经常在dns缓存查看和清理之间反复切换,实际上查看和清理配合使用效果最好。

修改DNS服务器后没反应

你把DNS地址从114.114.114.114改成223.5.5.5,理论上解析会更快,但实际访问网站依旧走旧解析路线,原因就在于本地缓存保留了之前DNS服务器返回的结果,执行 ipconfig /flushdns 后再用 ipconfig /displaydns 检查,你会发现所有条目已经清空,重新访问网站时系统会向新的DNS服务器发起查询。

如何查看域名解析缓存是否被污染

所谓DNS污染,是指网络链路中返回了错误的IP地址,执行缓存查看命令后,如果发现某个知名域名对应着一串奇怪IP(像是从来没见过、不属于任何知名机构的地址),同时TTL值异常地长,就要警惕了,此时建议先执行清理,再手动指定可信的公共DNS服务器进行解析测试,用 nslookup 对比返回结果。

清除缓存后重新验证

很多人喜欢把清空DNS缓存当成万能方法,实际上操作后还应该验证一下是否真正解决问题,验证的思路很简单:执行完清理命令后,再执行一次查看命令,确认缓存条目已被清空,然后重新加载目标网站。

快速验证清单:

  • 清理Windows缓存:ipconfig /flushdns
  • 清理macOS缓存:sudo dscacheutil -flushcache + sudo killall -HUP mDNSResponder
  • 重新查询解析结果:nslookup www.example.com
  • 用浏览器无痕模式访问,排除网页自身缓存干扰

将整个流程完整走一遍,遇到同类问题就能按步骤排查,不必每次都求助于搜索引擎。

域名解析缓存的常见疑问快速解答

查看DNS缓存和清空DNS缓存是一回事吗?

不是,查看DNS缓存记录只是读取当前系统内已有的域名解析结果,不会改变缓存内容,执行查看命令后,缓存条目会原样保留,不会消失,清空DNS缓存则是主动删除所有解析条目,强迫系统重新向DNS服务器发起查询,在排查问题时,建议先查看缓存内容确认问题,再决定是否需要清空。

手机能查看DNS缓存吗?

手机无法像电脑一样直接使用 ipconfig 或 dscacheutil,Android和iOS系统没有开放终端级别的缓存查看接口,普通用户无法通过系统设置查看域名解析缓存内容,不过可以借助第三方开发者的网络诊断类App实现类似功能,日常排查时,把手机切换到飞行模式再关闭,即可刷新网络状态,效果等同于清理缓存。

想知道DNS缓存具体的TTL时间有什么意义?

TTL数值直接决定了一条记录在缓存中保留多久,单位是秒,当DNS服务器的记录更新频率较高时,过长的TTL会让用户持续访问旧IP地址,导致网站内容不一致,从运维角度看,设置合理的TTL值既能保证解析效率,又能降低缓存滞后的风险,对于普通用户来说,通过查看域名解析缓存中的TTL,可以判断一个DNS改动能多快覆盖到全部用户。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱