您的位置:首页 > 其它

关于开发中 hosts 文件的修改

2015-12-04 13:51 260 查看
这篇文章只是给自己做个笔记吧。

最近的工作经常要改 hosts 文件(
C:\Windows\System32\drivers\etc\hosts
),并且改完后不立即生效。小胡子哥 提到:


因为服务器设置了 keep-alive !次要原因是存在浏览器 DNS 缓存和系统 DNS 缓存。


要解决 keep-alive 的因素感觉只能关掉浏览器或者手动清除(chrome://net-internals/#sockets)。

系统 DNS 缓存的问题本地并没有出现,因为我在本地修改完后执行 ping 操作就能 ping 到改后的 ip。如果要清除系统 DNS 缓存可以用
ipconfig/flushdns
命令,查看系统 DNS 缓存可以用
ipconfig/displaydns
命令;或者可以直接停用 "DNS Client" 服务(可以运行 services.msc 命令打开服务),将其停用并改为手动,这样就不会有系统 DNS 缓存,每次请求不走缓存,DNS 解析的就是最新修改的 ip,相对来说每次都要解析,速度就会变慢。

清除浏览器的 DNS 缓存,各种浏览器都有不同的扩展,比如 ff 有好用的 change hosts、DNS Flusher 等等。在 chrome 下我下了个 hostadmin 插件,好像不能用了。(chrome 浏览器缓存 chrome://net-internals/#dns

最后推荐个快速切换 hosts 的软件 SwitchHosts。虽然没有清除 DNS 缓存的效果,但是切换后强刷几次也就 ok 啦。

2016-01-10 更:

目前已经放弃 SwitchHosts 管理工具,改用 chrome 下的插件 Host Switch Plus,反应良好,无需等待。不过也有 bug,就是插件里的 hosts 不能和 系统 hosts 文件相冲,比如说系统的 hosts 将 www.cnblogs.com 指向了本地,插件里再怎么改还是指向本地。火狐的 hostsAdmin 扩展还未使用过,据说它是基于修改系统 hosts 文件?

more:

修改Hosts为何不生效,是DNS缓存?

为什么修改hosts不立即生效?--浏览器DNS缓存机制分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: