修改Hosts不生效的解决办法

 Duang,最近搭建了一个自己的博客小破站,欢迎各位小伙伴来访吖:https://www.ares-stack.cn/blog_service/#/game 

参考源于:

修改Hosts为何不生效,是DNS缓存? - Barret李靖 - 博客园 (cnblogs.com)

如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari - sysin | SYStem INside | 数据中心系统内幕

---------------------------------------------------------------------------------------------------------------------------------

修改Hosts不生效的根本原因:

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

系统DNS缓存,可以直接ping测试;

浏览器DNS缓存,可通过换浏览器验证(或者隔一段时间才访问,或清空浏览器DNS缓存),如下(如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari - sysin | SYStem INside | 数据中心系统内幕):

对普通用户而言,关闭后重新打开浏览器一般可以刷新 DNS 缓存。如果进行 Web 调试的时候,切换了 hosts,需要快速的清空浏览器的 DNS 缓存,方法如下:

Google Chrome

在地址栏输入以下地址回车,点击 Clear host cache 即可:

1
chrome://net-internals/#dns

Microsoft Edge

Edge 源于 Chrome,类似,地址为:

1
edge://net-internals/#dns

以上地址可以保存到 “收藏夹” / “书签栏” 点击即可快速打开。

Mozilla Firefox

Firefox 之前有几个扩展非常方便,可惜都已经下线了(SYSIN):

dns-flusher

clear-dns-cache

现在实现方法如下:

在地址栏输入:about:config,回车,“接受风险并继续”,然后搜索 network.dnsCache,出现如下 3 项:

1
2
3
network.dnsCacheEntries    400
network.dnsCacheExpiration    60
network.dnsCacheExpirationGracePeriod    60

将数值都修改为 0 即可。

注意:

  • 修改后为禁用 DNS 缓存(SYSIN)。
  • 该操作对网络浏览体验可能有一定影响,仅用于调试。
  • 如果有新的扩展出现,使用扩展更佳。

---------------------------------------------------------------------------------------------------------------------------------

参考原因:

  • 如果浏览器使用了代理工具,修改 Hosts 也不会生效。这里是因为,浏览器会优先考虑代理工具(如添加 pac 文件、SwitchySharp等)的代理,建议调试的时候先关闭这些代理。
  • 使用 pac 文件代理有的时候部分文件的代理不生效,应该是 pac 对应的代理服务器上,做了部分处理。
  • 部分浏览器也有 DNS 缓存,如 chrome(chrome://dns),这是为什么重启浏览器也不生效的原因,一般设定时间为 60s (如 Firefox)。
  • 浏览器有DNS缓存,系统也会存在 DNS 缓存,有的时候即便在 chrome://dns 清空了浏览器 DNS 缓存,依然不生效,是因为系统 DNS 缓存还未刷新,刷新方式可以看这篇文章。

你可能感兴趣的:(●,遇到的各种问题,缓存,服务器,http,dnn)