因工作需要,经常要修改HOSTS在正式与本地环境进行切换;发现chrome浏览器并不能实时的生效,但是ping的时候却没问题.

之前都是先在cmd中执行 ipconfig /flushdns,然后在设置中清除chrome缓存,但并不特别灵光.后来在一篇老外的博客中偶然发现了原因.

问题产生的原因

自己安装了Proxy SwitchySharp翻墙,实际上并不是HOSTS没生效,而是chrome浏览器对socket连接进行了缓存.

解决未安装Proxy SwitchySharp等代理工具时的缓存问题

  1. 正常情况下浏览器都会有缓存,需要让chrome不缓存只需要按F12打开调试工具,点击右上方的齿轮,在Settings中勾选 Disable cache(while DevTools is open) 即可.以后只需要打开调试工具就会自动清除缓存了. clean_chrome_cache

  2. 如果这么做还不好使,可以访问 <chrome://net-internals/#dns> 点击 clear host cache 来清除HOST缓存. clean_dns_cache

安装过代理工具后,清理SOCKET缓存

打开<chrome://net-internals/#sockets>,点击Flush socket pools;强制刷新socket连接池即可. flush_socket_pool

清除Windows系统DNS缓存

打开cmd, 执行 ipconfig /flushdns

另,附上一款好用的用来切换hosts的chrome插件

hosts文件管理工具