DNS查找时间和Windows DNS缓存

时间:2012-09-16 10:17:58

标签: http windows-7 dns fiddler browser-cache

对于DNS解析测试目的...我想禁用Windows 7中的所有DNS缓存

我仍然看到同一域的连续请求"DNS Lookup : 0 ms"

我尝试了显而易见的"ipconfig /flushdns",并完全停止了服务:

net stop dnscache

此命令也会产生同样的效果:

 net stop "DNS Client"

我也知道浏览器会在很短的时间内缓存DNS查找。所以我刷新他们的缓存,关闭打开浏览器,或者在不同的浏览器(Firefox,chrome,chrome incognito,IE)中打开相同的域以绕过DNS缓存。

因此,第一次,DNS查找时间可以是25毫秒(使用8.8.8.8),但随后下一个DNS查找缓存在系统中的某个位置,时间为0毫秒。只有在 3到5分钟等待重复请求时才会消失。

我可以做些什么来强制系统每次解析DNS,即使是同一DNS请求之间的5秒呢?

与Windows保持活动或某种类型的TCP连接重用有什么关系?它不应该,因为我重新打开浏览器。但是我没有想法,

你能否解释一下这个问题?

谢谢

1 个答案:

答案 0 :(得分:6)

听起来你的目标是模拟野外不存在的不存在的配置(因为所有客户端都有DNS缓存)。目前还不完全清楚为什么这是一个有趣的测试配置,但是可以这样做。

正如您所提到的,所有浏览器都有DNS缓存。 Windows的DNS客户端本身有一个缓存。您可能正在使用的任何上游代理也具有DNS缓存。

在这种情况下,您遇到两个问题:首先,Fiddler本身维护着一个DNS缓存。其次,无论您是否关闭浏览器客户端,Fiddler都会保持与服务器的保持连接状态。

如Fiddler一书中所述,您可以使用首选项fiddler.network.timeouts.dnscache来控制Fiddler DNS缓存。默认值为150000(以毫秒为单位,因此为2.5分钟)。您可以将此值设置为0以阻止DNS缓存。

为了防止重用连接,您可以在Fiddler会话列表中按CTRL + X,也可以根据需要调用FiddlerApplication.oProxy.PurgeServerPipePool方法。