如何清除Windows操作系统中的DNS缓存?
2021-02-10

一般情况下Windows操作系统是启动了一个DNS Client作为DNS名字缓存服务,该服务用于提高域名解析效率。但在某些情况下DNS名字缓存服务会导致临时性的域名无法解析问题。现象是一个常用的网站无法访问,而其他网站是可以访问的,而且另外一台电脑就可以访问这个网站。
在访问某站点时,如遇上网络短暂故障、DNS服务器短暂不达或DNS解释超时,所访问站点域名的IP地址解析会被缓存为无效缓存(Negative Cache),无效缓存会保留一段时间(Windows 缺省的DNS无效回应缓存存活期为900秒,即15分钟),在DNS无效回应缓存存活期内访问该网站时都是有问题的。查看DNS缓存可以用以下的方法:

  • Windows 10 在左下角的“在这里输入你要搜索的内容”栏中输入cmd,并回车 > 输入命令:ipconfig /displaydns | more 并回车。缓存可能比较多,找到主机名(域名)下对应的“A(主机)记录”有IP地址(有可能为“CNAME记录”,对应有另外一个主机名)的就为有效缓存。如果主机名(域名)下显示为“名称不存在”就说明该网站的域名为无效缓存。要解决这个问题 就必须清除系统的DNS缓存,清除DNS缓存的方法如下:
  • Windows 10 在左下角的“在这里输入你要搜索的内容”栏中输入cmd,并回车 > 输入命令:ipconfig /flushdns并回车即可。建议关闭DNS Client服务,可彻底解决DNS缓存导致的DNS无法解析域名的临时故障。另外Windows也可以通过添加注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters 下的 MaxNegativeCacheTtl 值控制DNS无效缓存的存活时间,具体方法可以通过搜索引擎搜索相关的关键字。