防止 Chrome 缓存网站的 DNS 记录

问题描述 投票:0回答:4

Chrome 会缓存 DNS 记录,并且在成功连接到我的网站后(除非重新启动)往往会忽略对主机文件的更改。启用 DNS 预取后,效果更加明显。

是否有任何页面标头会指示 Chrome 不缓存网站的 DNS?像

Cache-Control
或像
307 Temporary Redirect
这样的回复状态?

caching google-chrome dns hosts-file
4个回答
9
投票

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

Clear host cache
按钮。

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

Flush socket pools
按钮。

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

sudo dscacheutil -flushcache
    


5
投票
http://crbug.com/65570

来跟踪它,但请在该错误中添加您能想到的任何其他信息,以便我们确保正确理解您的问题。 听起来除了关闭 Chrome 之外,唯一的解决方法是拔下网络电缆,然后重新插入。当 Chrome 看到这样的事件时,它会删除其套接字和 dns 缓存。当我们看到 /etc/hosts 已更改时,该错误的正确解决方案可能会执行相同的操作。

如果您想知道错误何时得到修复,请访问

http://crbug.com/65570

并单击错误编号旁边的星号。而且,就像我说的,请在错误中添加您可以添加的任何其他信息。


2
投票

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


0
投票
browser.dns.resolve()

API。它支持“bypass_cache”选项,这表明如果解析的域返回的 IP 与为同一域缓存的 IP 不同,它可以(希望)使浏览器的缓存无效。

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns/resolve#browser_compatibility

© www.soinside.com 2019 - 2024. All rights reserved.