-
Notifications
You must be signed in to change notification settings - Fork 2.5k
FAQ: 修改 hosts 后,Chrome 不能立刻生效?
oldj edited this page Jul 20, 2018
·
7 revisions
问题:
修改 hosts 后,Chrome 不能立刻生效?
解答:
造成这个现象的原因是 Chrome 本身还会对 DNS 做一次缓存,一般系统 hosts 修改后,过一两分钟 Chrome 就会更新。如果不想等那么久,可以按以下方案进行操作:
Chrome 可以访问 chrome://net-internals/
,点击右上角下拉菜单中的 Flush sockets
,一般可以马上生效。
如下图:
参见 #160。
网络断开并重连后,Chrome 会自动刷新 DNS 缓存。以 macOS 为例,可以在终端执行以下命令:
sudo -S killall -HUP mDNSResponder
也可以将这个命令放入 SwitchHosts! 的【设置】->【自定义命令】中,如下图所示:
需要将红框中的 123456
换成你的 sudo 密码。
注意: 这只是一个示例,【自定义命令】中的内容会以明文的方式保存在你的硬盘上,如果其中包含 sudo 密码,存在一定风险,实践中建议尽量避免。
另外,如果上面的命令对你无效,也可以试试更激进的:
for i in `ifconfig | grep ": flags=" | sed -E 's/(.*): .*/\1/g'`; do sudo ifconfig $i down; sudo ifconfig $i up; done
不过这个命令有点过于霸道,相当于直接断开 wifi 等再重新连接,可能会影响到系统中正在运行的其他程序。