10

Chrome 会缓存 DNS 记录,并在成功连接到我的站点后倾向于忽略对 hosts 文件的更改(除非重新启动)。启用 DNS 预取后,它会更加明显。

是否有任何页眉会指示 Chrome 不缓存网站的 DNS?喜欢Cache-Control或响应状态喜欢307 Temporary Redirect

4

3 回答 3

8

我不确定这是否正是您要寻找的,但这也让我在切换开发环境时感到恼火,我偶然发现了这个内部 chrome 页面,您可以通过单击按钮清除缓存: chrome://网络内部/#dns。去那里后点击Clear host cache按钮。

编辑 如下面的答案所述,这不会立即生效的原因是您还需要刷新打开的套接字。清除 DNS 缓存后,还转到:chrome://net-internals/#sockets并单击Flush socket pools按钮。

另请记住,操作系统可能会执行自己的缓存级别。我认为Linux 不会缓存 dns 条目(至少对我来说,清除 chrome 缓存就足够了),但对于 windows 或 mac,您可能还需要刷新操作系统级别的 DNS 缓存。ipconfig /flushdns从 Windowssudo dscacheutil -flushcache的命令行或 Mac 的命令行运行。

于 2012-12-20T21:28:14.230 回答
4

这可能是 Google Chrome 中的一个真正的错误。我创建了http://crbug.com/65570来跟踪它,但请在错误中添加您能想到的任何其他信息,以便我们确保我们正确理解您的问题。

听起来好像除了关闭 Chrome 之外唯一的解决方法是拔下网络电缆然后重新插入。当 Chrome 看到这样的事件时,它会丢弃它的套接字和 dns 缓存。当我们看到 /etc/hosts 已更改时,该错误的正确解决方案可能会这样做。

如果您想知道错误何时修复,请访问http://crbug.com/65570并单击错误编号旁边的星号。而且,就像我说的那样,请在错误中添加任何其他信息。

于 2010-12-06T10:24:11.370 回答
2

在我的情况下,我经常使用自定义主机文件从我的开发 Web 服务器和生产服务器切换,为了从 chrome 中清除所有 dns 缓存信息,我使用此过程,它可以在我需要加载的同一选项卡中立即运行更新的网址:

  1. 将此网址复制并粘贴到 chrome 中:chrome://net-internals/#dns
  2. 点击“Clear Host Cache”按钮,同时点击窗口右上角的黑色小箭头,点击“Clear cache”和“Flusk Sockets”,新地址将立即加载。

Chrome Dns 面板

于 2016-08-24T13:00:23.750 回答