解决:SwitchHosts修改 hosts 不生效(超全方法)
问题:本机MacOS,使用 SwitchHosts 修改 hosts 后,Chrome 访问修改后的地址,报错502,无法访问。
解决:
- 先 ping 修改后的地址,看域名解析的 ip 是否也是修改后的,如果不是,则考虑 SwitchHosts 问题,可使用
sudo vim hosts
命令修改 hosts 文件;
如果域名解析是修改后的正确地址,那么就侧重排查浏览器问题。
2. 针对于浏览器:
2.1 服务器请求头设置了keep-alive
:一般的网页都会设置 keep-alive,客户端会跟服务器保持长连接,避免多次连接产生网络消耗,只要长连接不断开,页面在请求的时候就不会重新解析域名。因此可以尝试:1. 重启浏览器;2. 打开隐私模式;3. 等待keep-alive
失效
2.2 浏览器存在DNS缓存:需要手动清除浏览器缓存,以 Chrome 为例:在搜索栏输入chrome://net-internals/#dns
,点击clear host cache
即可
2.3 系统存在DNS缓存:需要手动清除系统缓存,以MacOS为例:在终端输入以下命令即可(可参考:Reset the DNS cache in OS X)
sudo killall -HUP mDNSResponder
3. 关闭代理(这个很容易忽视,本人尝试了前两种方法没有解决,最后发现是代理问题)