为啥修改hosts不立即生效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥修改hosts不立即生效相关的知识,希望对你有一定的参考价值。
使hosts立即生效的方法:方法一:命令行(cmd)运行:ipconfig /flushdns #清除DNS缓存内容。ps:ipconfig /displaydns //显示DNS缓存内容
方法二:修改注册表:HKeyCurrentUser\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings,
新建:DnsCacheEnabled 0x0 (REG_DWORD)
DnsCacheTimeout 0x0 (REG_DWORD)
ServerInfoTimeOut 0x0 (REG_DWORD)这三个DWORD。
方法三:打开:控制面板-管理工具– 服务, 在其中找到“DNS Client” 将其停用并改为手动模式(做了这个后,运行ipconfig /flushdns就没必要了,也运行不成功) 参考技术A 有时我们会通过修改Hosts文件(路径为系统盘:\WINDOWS\system32\drivers\etc\hosts),在修改并保存Hosts文件后需要重启才能使设置生效。
这时可以打开命令提示符 窗口执行以下命令:
ipconfig /displaydns
//显示DNS缓存内容
ipconfig /flushdns
//删除DNS缓存内容
这样,系统就会清空本机的DNS缓存,从而不必重启,就能使Hosts文件生效。本回答被提问者采纳 参考技术B 你要清空缓存啊
望采纳
为什么修改Host不生效
开发验证的好好的功能,提测后经常有测试反应功能有bug。很多原因都是测试切换host没生效造成的,为什么切换host后刷新页面了也没生效呢?
不生效原因:
- Keep-Alive
服务器在响应头设置了 Connection: keep-alive (一般的网页都会设置 keep-alive,保持长连接,避免多次连接产生网络消耗)之后,客户端会跟服务器保持长连接,只要长连接不断开,页面在请求的时候就不会重新解析域名!(Chrome输入chrome://net-internals/#sockets 可以看到保持的长连接,点击按钮 close idle sockets 可以关闭所有的长连接。)
- 存在浏览器 DNS 缓存
- 系统 DNS 缓存
让修改生效:
- 重启浏览器
重启浏览器之后,所有的连接(包括长连接)都会断开,自然就生效了
- 隐私模式打开
因为隐私模式下不会复用 TCP 连接,新开连接的时候,会重新解析 DNS 域名
- 修改后过一会儿
长连接失效,时间不确定,开发者可设置
附录:Chrome浏览器的工具命令,浏览器输入 chrome://about/
以上是关于为啥修改hosts不立即生效的主要内容,如果未能解决你的问题,请参考以下文章