4

出于 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 连接的某种重用有关吗?它不应该,因为我重新打开浏览器。但我没有想法,

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

谢谢

4

1 回答 1

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根据需要调用该方法。

于 2012-09-16T15:27:18.027 回答