修改Hosts不生效的解决办法
?參考源于:
修改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 緩存還未刷新,刷新方式可以看這篇文章。
 
總結
以上是生活随笔為你收集整理的修改Hosts不生效的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: jenkins教程菜鸟_Jenkins教
 - 下一篇: 阿里云人脸识别sdk