首页/网络/网络排障速查/Windows DNS 缓存:查看、刷新与刷新后的验证
DNS 与解析排查46 条

Windows DNS 缓存:查看、刷新与刷新后的验证

Windows 客户端缓存问题表现为『改了 DNS 记录本机仍是旧 IP』:ipconfig /displaydns 看缓存条目与 TTL,/flushdns 刷新后务必复测。

网络排障速查网络更新于 2026-10-13

Windows 客户端 DNS 缓存

Windows 会缓存最近解析过的域名,并在记录 TTL 到期前直接使用缓存值。运维改了 DNS 记录、客户端却仍然访问旧地址,绝大多数就是这层客户端缓存在起作用。ipconfig /displaydns 能把条目、剩余 TTL 与来源一并列出,是判断「本机缓存旧」还是「服务器未更新」的直接证据。

排查顺序

先 displaydns 看有没有目标域名的条目以及剩余 TTL;再向权威或指定服务器查询,确认记录是否已生效;两者不一致时刷新本机缓存后复测。注意浏览器、.NET 应用、Java 虚拟机等还会维护各自的进程级缓存,本机缓存清了但应用没重启,仍可能看到旧地址。

查看与刷新

查看与刷新
ipconfig /displaydns | Select-String -Pattern 'example.com' -Context 0,6   # 看条目与剩余 TTL
Get-DnsClientCache -Name example.com           # PowerShell 版缓存查看
Resolve-DnsName example.com -Server 8.8.8.8    # 指定服务器看当前真实记录
ipconfig /flushdns                             # 刷新客户端解析缓存
Clear-DnsClientCache                           # PowerShell 版清缓存
Get-DnsClientServerAddress -AddressFamily IPv4 # 核对当前使用的 DNS 服务器

输出字段读法

字段含义判读要点
Record Name被缓存的域名确认是否有目标域名条目
Record Type记录类型,如 A 或 CNAME确认查到的是地址记录而非别名
Time To Live剩余缓存时长(秒)剩得越多久说明刚查过,条目很新
Data Length记录数据长度只能作辅助信息,不用于判断
A (Host) Record缓存的地址值与权威查询结果对比即可定位差异
来源段条目来自 DNS 还是 hosts 文件区分本机写死与本机缓存

典型使用场景

  • 切换站点 IP 后部分用户仍访问旧地址:先确认是不是客户端缓存
  • 排查解析异常:对比本机缓存结果与指定服务器直查结果,定位差异层级
  • 域名迁移或下线:清理残留缓存避免流量继续打到已停用地址
  • 上线前验证:刷新缓存后重新解析,确保拿到最新记录
  • 多台机器表现不一致:逐台比对缓存条目与剩余 TTL,找出异常来源
刷新缓存只是清掉本机副本,若权威记录本身尚未生效,新查询会立刻又把旧值取回来;所以刷新后必须立即复测并把结果与权威查询比对。
刷新后仍看到旧地址时,需要同时排查 hosts 文件与上游 DNS 的缓存:三层缓存(权威、递归、客户端)任一层没过期都会给出旧结果。

易错点

  • 只执行刷新不复测:老记录很快被重新拉回,误以为刷新无效
  • 忽略 hosts 文件优先级:本机写死的映射不会被清缓存影响,必须一并核对
  • 忘记应用自身也有 DNS 缓存,浏览器与运行时长较久的进程需要重启才生效
  • 用 ping 的结果当作解析验证:Windows 解析顺序会影响结果,应使用带指定服务器的查询命令

数据来源与参考

  • Microsoft Learn:ipconfig /displaydns
  • Microsoft Learn:Get-DnsClientCache

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌