飘在云端

东西南北,海角天涯

· Windows · · 590次浏览

windows 7 ~ 11 修改默认 DNS 缓存刷新时间

win7 ~ 11 的系统,默认 Windows DNS 缓存是 86400 秒,在已经缓存到本地系统时,域名提供商配置的 TTL 值再低也没用
手动干预,再也不用 ipconfig /flushdns 手动刷新 DNS 缓存了
注册表定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache\Parameters\DnsCache

新建/修改 名为 MaxCacheTtl 的 DOWORD 类型键值对,值为 0,表示禁用查询成功的 DNS 缓存,并且忽略域名 TTL 值,每次域名请求,实时请求上游 DNS 服务器,未配置的情况下默认为 86400 秒

新建/修改 名为 MaxNegativeCacheTtl的 DOWORD 类型键值对,值为 0,表示禁用查询失败的 DNS 结果的缓存时间(未配置的情况下默认为 15 分钟)。

新建/修改 名为 AddrConfigControl的 DOWORD 类型键值对,值为 0,使 DNS 通过 Teredo 隧道解析

配置后重启 DNS 服务或重启系统生效,随意 ping 几个域名,可以 ipconfig /displaydns 检查效果

测试:目前发现似乎还有个最低 60 秒的缓存时间,由于没做详细控制变量对比,1 分钟误差也无关紧要,就这样吧

备注:NegativeCacheTime、NetFailureCacheTime、NegativeSOACacheTime 为 Win 7 之前的系统使用的参数,新系统已经放弃支持,不再生效

评论 (1条)
  1. admin

    直接干掉Windows的dns缓存,让路由器来承担这个功能

    回复