这篇文章只是给自己做个笔记吧。
最近的工作经常要改 hosts 文件(C:\Windows\System32\drivers\etc\hosts
),并且改完后不立即生效。 提到:
因为服务器设置了 keep-alive !次要原因是存在浏览器 DNS 缓存和系统 DNS 缓存。
要解决 keep-alive 的因素感觉只能关掉浏览器或者手动清除()。
系统 DNS 缓存的问题本地并没有出现,因为我在本地修改完后执行 ping 操作就能 ping 到改后的 ip。如果要清除系统 DNS 缓存可以用 ipconfig/flushdns
命令,查看系统 DNS 缓存可以用 ipconfig/displaydns
命令;或者可以直接停用 "DNS Client" 服务(可以运行 services.msc 命令打开服务),将其停用并改为手动,这样就不会有系统 DNS 缓存,每次请求不走缓存,DNS 解析的就是最新修改的 ip,相对来说每次都要解析,速度就会变慢。
清除浏览器的 DNS 缓存,各种浏览器都有不同的扩展,比如 ff 有好用的 、DNS Flusher 等等。在 chrome 下我下了个 hostadmin 插件,好像不能用了。(chrome 浏览器缓存 )
最后推荐个快速切换 hosts 的软件 。虽然没有清除 DNS 缓存的效果,但是切换后强刷几次也就 ok 啦。
2016-01-10 更:
目前已经放弃 SwitchHosts 管理工具,改用 chrome 下的插件 ,反应良好,无需等待。不过也有 bug,就是插件里的 hosts 不能和 系统 hosts 文件相冲,比如说系统的 hosts 将 www.cnblogs.com 指向了本地,插件里再怎么改还是指向本地。火狐的 hostsAdmin 扩展还未使用过,据说它是基于修改系统 hosts 文件?
more: