如何清除/刷新 Google Chrome 中的 DNS 缓存?

Mee*_*Mee 1011 dns google-chrome hosts

您可能知道 Google Chrome 有自己的内部 DNS 缓存。有没有办法清除它而不必等待超时或关闭浏览器?

eph*_*ent 1453

导航到chrome://net-internals/#dns并按“清除主机缓存”按钮。

  • 奇怪的是,这只适用于一个方向。我在主机文件中有一个映射,将域名映射到本地机器(即到 127.0.0.1),当我删除映射并刷新 Chrome 中的 DNS 缓存时,它正确地从互联网加载了站点,但是当我再次将映射添加到主机文件,它仍然从 Internet 加载站点。在清除 DNS 缓存(也使用 ipconfig /flushdns 清除操作系统缓存)后,它在 Chrome 中显示缓存的 DNS 列表为空,但它仍然从 Internet 加载站点!好像是个bug。 (44认同)
  • @伊恩铬://关于 (34认同)
  • 对我来说还不够。必须在命令提示符下“ipconfig /flushdns”(在下面的答案中找到) (12认同)
  • 更烦人的是,Chrome 在 DNS 缓存列表中正确显示了该域的 IP 地址(127.0.0.1)(在刷新并尝试再次加载站点之后),它仍然从互联网加载站点。 (10认同)
  • 太棒了,有没有人知道所有 chrome://* 选项的列表? (6认同)
  • 这似乎仅在您有多个用户配置文件时才有效。除了像这样的错误之外,Chrome 几乎是完美的开发者浏览器。 (4认同)
  • 这对我不起作用。清空缓存(如第二个答案所示)确实如此。 (3认同)
  • 这不适用于 Linux 版 Chrome。但只有套接字冲洗有效。http://superuser.com/a/611712/30982 (2认同)

Boj*_*kas 224

有时您需要在刷新 DNS 后刷新套接字池:

chrome://net-internals/#sockets
Run Code Online (Sandbox Code Playgroud)

  • 请注意,Chrome 现在会监控 `hosts` 文件并在 `hosts` 文件有任何更改时自动清除 dnscache。— 您可以通过在 `hosts` 文件后添加一个空行来轻松测试它是否适用于您的系统,并且 `chrome://net-internals/#dns` 中的列表将自动更新。- Windows 的 dnscache 服务也将(至少在 win 8.1 上)监视主机文件的更改,因此在您更新了 `hosts` 文件后,**只需单击“刷新套接字池”按钮即可**。不需要其他任何东西。 (5认同)

PJ *_*net 61

“导航到 chrome://net-internals/#dns”在 Google Chrome 浏览器中不起作用,至少在我的系统上是这样。看起来这个解决方案可能适用于 Google Chrome 操作系统,但一般来说不适用于 Google Chrome 浏览器。对我来说,链接重定向到这里:
Chromium 项目

看来“清空缓存”是更好的解决方案。另请注意我的浏览器显示“首选项”而不是“选项”

通过http://www.google.com/support/forum/p/Chrome/thread?tid=026b6a1d9151a6e3&hl=en

“转到工具 -> 选项 -> 引擎盖下 -> 清除浏览数据并选中“清空缓存”并单击清除浏览数据。是的,我知道,这不是我希望它清除的 DNS 缓存,但嘿,它似乎是。现在它对我有用。”

  • 确认这对我有用,清除浏览数据 -> 清空缓存。没有其他方法奏效。谢谢PJ。 (7认同)
  • 清除*缓存的图像和文件*对我有用!不知道为什么,但确实如此。Windows 8.1, 铬 41.0.2272.89 米 (5认同)

小智 52

chrome://net-internals/#dnsGoogle Chrome 中单击“清除主机缓存”应该可以完成此操作,但您的计算机上还有其他 DNS 缓存需要考虑。

视窗:

ipconfig /flushdns
Run Code Online (Sandbox Code Playgroud)

OS X 10.7 之前(Lion 之前):

sudo dscacheutil -flushcache
Run Code Online (Sandbox Code Playgroud)

OS X 10.7–10.9(狮子、山狮、小牛):

sudo killall -HUP mDNSResponder
Run Code Online (Sandbox Code Playgroud)

OS X 10.10+(优胜美地):

sudo discoveryutil mdnsflushcache
Run Code Online (Sandbox Code Playgroud)

OS X 10.11、10.12+(El Capitan、Sierra):

sudo killall -HUP mDNSResponder
Run Code Online (Sandbox Code Playgroud)

您的路由器可能也在缓存 DNS(重新启动它或阅读手册)。最终的测试是使用dig,但这使用您网络的 DNS 主机,而不是默认的权威服务器:

dig superuser.com
Run Code Online (Sandbox Code Playgroud)

要从源中直接查询,请尝试以下操作:

dig superuser.com @ns1.serverfault.com
Run Code Online (Sandbox Code Playgroud)


小智 26

在带有 Chrome 32 的 OS X 10.9.1 中,我需要清除主机缓存并刷新套接字池以让 Chrome 刷新 DNS 缓存:

  1. 导航到chrome://net-internals/#dns并单击“清除主机缓存”
  2. 导航到chrome://net-internals/#sockets abd 单击“Flush Socket Pools”

  • Linux 版 Chrome 只需要一个套接字刷新。没有 DNS 刷新。 http://superuser.com/a/611712/30982 (2认同)

小智 21

这对我有用:清空并清除磁盘缓存

在 Chrome 中,单击扳手图标,然后单击选项。转到“引擎盖下”选项卡。单击隐私部分下的清除浏览数据按钮。仅选中“清空缓存”复选框,然后单击“清除浏览数据”按钮。

这立即起作用 - 我什至不必关闭浏览器。


小智 16

据我所知,在 Chrome 的最新版本中(我使用的是 26.0.1410.43),没有(可靠的)方法可以做到,至少在 Mac 上没有。此页面上的所有建议均不适合我。

我的情况是我添加了一个hosts文件条目,但 Chrome 仍然会转到 DNS 返回的 IP 地址。Firefox 工作正常。

事实上,该chrome://net-internals/#dns页面只是对我说谎 IP 地址。它显示了来自主机条目的 IP,但这显然不是它实际获取站点的地方。

  • 同样的问题在这里。我尝试过清除缓存、清除内部 DNS 缓存、ipconfig 刷新 dns,它仍然从实时域加载本地网站。如果我在“隐身”中打开它,它可以工作,或者在 Firefox 中它可以工作,但正常的 Chrome *拒绝* 重置其 DNS (2认同)

ale*_*emb 12

我知道这是一个老问题,但我对与其他人一样的抱怨感到恼火:即使在清除缓存后,新的 DNS 更改仍可能需要一两分钟才能生效。

有几种方法可以解决。通过 chrome://net-internals/#dns(或使用实现相同结果的扩展)清除 DNS 缓存后:

  1. 打开一个隐身窗口,域的新 DNS 映射将立即生效。

  2. 清除浏览器缓存。如果您使用浏览器进行常规浏览,这会很麻烦。您可以以其他用户身份运行浏览器的单独实例,清除该帐户中的缓存不会干扰您的常规浏览缓存。我没有试过这个,但它应该可以工作。

  3. 按 CTRL+F5。我不得不按住 CTRL+F5 大约一秒钟,这会连续重新加载页面几次。这是奇怪的行为,但它有效并且同样有效。这是我的首选方法。

理想情况下应该有一个插件可以清除 DNS 和缓存(特别是文档缓存而不是 cookie 缓存),但我还没有找到任何类似的东西。

更新:在 OSX 上,防毒面具应用程序非常适合在主机文件之间切换,并且与 #2 解决方法一起,它非常有效。

  • 刷新一点帮助也没有。活动的 TCP 套接字仍将处于活动状态。您可以等待(1-2 分钟)或 [手动刷新](http://superuser.com/questions/203674/how-to-clear-flush-the-dns-cache-in-google-chrome/203702 #comment1236367_611712)他们。 (2认同)

小智 7

Chrome_Hosts_Flush_Util

是为了解决Chrome使用socket pools ,修改hosts文件后Chrome无法使用正确hosts的问题。

Chrome 在连接池中保持长连接以加快速度。当 Chrome 发现请求可以重用连接池中的连接时,它不会再次通过 DNS,因此,我们总是认为 Chrome 不会立即响应主机更改。

Chrome 在 chrome://net-internals/#sockets 选项卡中提供了一个用于刷新连接池的接口,但我认为我必须先转到该选项卡,然后单击带有触控板的小按钮,这很烦人。

我发现在点击flush socket pool的按钮时,Chrome会执行两个关键的JavaScript方法。

g_browser.sendFlushSocketPools();
g_browser.checkForUpdatedInfo(false);
Run Code Online (Sandbox Code Playgroud)

所以我将这两种方法封装在一个 AppleScript 脚本中,该脚本可以转换为 OS X 应用程序或 Alfred 工作流,两者都可以轻松调用。


Boj*_*kas 7

5年后...

\n

Chrome 现在有一个禁用缓存的选项。

\n
    \n
  1. 按 F12(或 Ctrl+Shift+I)调用 DevTools。
  2. \n
  3. 转到网络选项卡
  4. \n
  5. 选中“禁用缓存”框。
  6. \n
  7. 重新加载页面
  8. \n
  9. 右键单击重新加载按钮以打开菜单。选择\xe2\x80\x9c清空缓存并硬重新加载\xe2\x80\x9d。
  10. \n
  11. 在 DevTools 中启用缓存。
  12. \n
\n

这也解决了重定向缓存(chrome 缓存永久重定向)

\n

资料来源:mwender.com

\n


小智 6

我尝试以多种方式刷新 DNS 缓存,但没有任何效果对我有用。最后,我打算更改我的 DNS 条目。这个技巧适用于所有通过高速局域网连接访问互联网的人。

在 LAN 连接上,通常为用户提供两个 DNS 地址。一个是主要的,另一个是次要的或备用的 DNS 地址。我所做的是将辅助地址更改为主要地址,反之亦然。它立即对我有用。

我将备用 DNS 地址作为主要地址保留了两天。问题自行解决,后来,我恢复了旧的 DNS 条目。


小智 6

对我来说,私人浏览成功了(新的隐身窗口/私人窗口)。


rob*_*rob 6

全过程:

在 IIS (Windows 8) 中创建站点,设置主机头。

尝试在没有主机文件的情况下访问主机,确保使用 http:// 以便它不只是进行谷歌搜索。在chrome“版本32.0.1700.76 m”中正确失败

将主机添加到主机文件为 127.0.0.1,现在可以在 chrome 中点击它。

从主机文件中删除并运行 ipconfig /flushdns,chrome 仍然显示站点!

除了 CTRL+F5 之外什么都不做,现在 Chrome 中的站点正确失败。

由于这里有许多不同的答案,我想知道我们是否都有略有不同的用例。