我们在修改hosts文件时, 会遇到hosts不生效的情况
原因分2种:
1.我们没改对hosts文件, 比如:
保存时没权限(以为保存成功了, 实际上并没有)
写的网址输入错误了(www.baidu.com 写成了 www.baiud.com)
2.hosts改对了, 但浏览器里不生效
==================================================
验证有2种方式
验证方法一:
chrome浏览器, 如何查看网址指向的ip地址?
答: 地址栏输入 chrome://net-internals/#dns
如下图
验证方法二:
cmd命令如何查询 网址指向的ip, 以及系统中生效的dns?
ping {ip地址}
ipconfig /displaydns 查看dns指向的ip
ipconfig /flushdns 清空dns缓存
==========================================
验证说完了, 该说怎么解决了
以百度指向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连接
解决方法三:
使用 SwitchHosts 等工具修改host
(记得检查路径 C:\Windows\System32\drivers\etc hosts文件是否存在 )
github上的下载地址 Releases · oldj/SwitchHosts · GitHub
修改成功会有对应的提示
============
另外: chrome在使用SwitchOmega插件 配置的网络后, 要注意有没有配置跳过的地址, 否则会导致 hosts的改动无效
============
其他: