DNS查找时间和Windows DNS缓存

cor*_*cho 4 dns http fiddler browser-cache windows-7

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

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

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

net stop dnscache
Run Code Online (Sandbox Code Playgroud)

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

 net stop "DNS Client"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

谢谢

Eri*_*Law 6

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

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

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

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

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