对于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连接重用有什么关系?它不应该,因为我重新打开浏览器。但是我没有想法,
你能否解释一下这个问题?
谢谢
答案 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
方法。