修改hosts 不生效? 三种方法解决

我们在修改hosts文件时, 会遇到hosts不生效的情况
原因分2种:

1.我们没改对hosts文件, 比如:
保存时没权限(以为保存成功了, 实际上并没有)
写的网址输入错误了(www.baidu.com 写成了  www.baiud.com)

2.hosts改对了, 但浏览器里不生效

==================================================

验证有2种方式

验证方法一:

chrome浏览器,  如何查看网址指向的ip地址?

答: 地址栏输入  chrome://net-internals/#dns

如下图

修改hosts 不生效? 三种方法解决_第1张图片

验证方法二:

cmd命令如何查询 网址指向的ip, 以及系统中生效的dns?

ping   {ip地址}

ipconfig /displaydns  查看dns指向的ip

ipconfig /flushdns      清空dns缓存

域名解析生效原理及时间 - Oops!# - 博客园

DNS TTL最佳实践 - 知乎

==========================================

验证说完了, 该说怎么解决了

以百度指向127.0.0.1为例, 明明已经在hosts中设置生效, 为何还是能访问?

答: chrome的缓存(猜测是http协议的 Connection: keep-alive, 造成的), 
网上都是建议 重启浏览器/电脑
有时候我开的网页多就不想重启, 所以找到了3种方法

解决方法一: chrome浏览器开启无痕模式(立刻生效)

解决方法二
1.修改hosts文件
2.根据网站的规则不同, 等待60s/120s(等待的时间不能刷新页面)
3.强制刷新页面ctrl+F5 或 在F12开发者工具中 停用缓存(停用缓存需要先打开)
ps: 有些情况网页的js本身有定时连接机制, 所以要用到方法三

解决方法三:
chrome://net-internals/#sockets
强制关掉socket连接

修改hosts 不生效? 三种方法解决_第2张图片

============

另外: chrome在使用SwitchOmega插件 配置的网络后,  要注意有没有配置跳过的地址, 否则会导致 hosts的改动无效

============

其他:

Connection:Keep-alive详解 - 御用闲人 - 博客园

你可能感兴趣的:(Windows,windows)