Chrome 会缓存 DNS 记录,并且在成功连接到我的网站后(除非重新启动)往往会忽略对主机文件的更改。启用 DNS 预取后,效果更加明显。
是否有任何页面标头会指示 Chrome 不缓存网站的 DNS?像
Cache-Control
或像 307 Temporary Redirect
这样的回复状态?
我不确定这是否正是您正在寻找的,但这也让我在切换开发环境时感到烦恼,我偶然发现了这个内部 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
。