修改hosts不立即生效原因分析
我們經常也遇到修改hosts不生效的情況,而且有時生效,有時不生效的情況也有發生,這到底是為什麽呢?
起:DNS緩存機制
關於DNS緩存的機制,有一篇非常詳細的文章What really happens when you navigate to a URL。
簡單來說,一條域名的DNS記錄會在本地有兩種緩存:瀏覽器緩存和操作系統(OS)緩存。在瀏覽器中訪問的時候,會優先訪問瀏覽器緩存,如果未命中則訪問OS緩存,最後再訪問DNS服務器(一般是ISP提供),然後DNS服務器會遞歸式的查找域名記錄,然後返回。
DNS記錄會有一個ttl值(time to live),單位是秒,意思是這個記錄最大有效期是多少。經過實驗,OS緩存會參考ttl值,但是不完全等於ttl值,而瀏覽器DNS緩存的時間跟ttl值無關,每種瀏覽器都使用一個固定值
後來我也做過測試,Mac下Chrome(23.0.1271.101)的DNS緩存時間是1分鐘。Safari下DNS緩存時間大約為10秒。
解:hosts文件修改的原理
那麽在修改hosts文件之後,發生了什麽事情呢?這裏不妨先提提Chrome下的一個工具:chrome://net-internals/#dns。這裏列出了目前系統中的DNS緩存和Chrome中使用的情況。通過這個工具,可以看到: 在修改hosts文件後,所有OS中DNS緩存會被清空,而瀏覽器緩存則不發生變化。
那麽回到最初的問題上來,為什麽修改hosts文件之後,有時會立刻生效,有時卻一直不生效呢?其實原因很簡單,這是因為瀏覽器緩存的過期時間,是從某個域名上次查詢DNS記錄開始計算的。
例如:我00秒的時候使用chrome訪問過www.google.com.hk,此時瀏覽器DNS緩存產生,然後我修改了hosts文件,將www.google.com.hk指向本地127.0.0.1,然後在05秒的時候嘗試再次訪問這個地址,因為瀏覽器DNS緩存未過期,所以hosts修改無法體現出來。
另一種情況下,我很久都沒有訪問www.baidu.com了,然後我修改了hosts文件,將其指向127.0.0.1,這時因為瀏覽器沒有DNS緩存,所以會查詢操作系統中的DNS緩存,結果此時hosts文件生效!
前面也提到,Safari的瀏覽器DNS緩存時間大約為10秒,所以一般調試程序的時候,很多人都習慣修改hosts後,用Safari來調試,因為大部分情況下,修改hosts之後,瀏覽器DNS緩存已經失效了。
那麽怎麽主動清除瀏覽器DNS緩存呢?博主目前也沒有找到辦法,測試過Chrome下的“清除緩存”選項,發現沒有起到期望的效果。
那麽,就請在修改hosts之後,耐下心來,稍等幾十秒吧。
這裏提供一個google最新hosts更新網址:http://whosmall.com/?post=148
寫在最後:FOR Freedom 看看外邊的世界,以及IT這一行,少不了去Google查資料,最後,安利一些速器代理。
加速器推薦 | 免費方案 | 付費方案 | 官方網站 |
一枝紅杏加速器 | 免費方案暫無,穩定高速 | 輸入8折優惠碼wh80,年付只需80元/年 | 官網直達http://whosmall.com/go/yzhx |
安雲加速器 | 最好用的外貿VPN | 最低¥30/月 | 官網直達http://whosmall.com/go/ay |
LoCo加速器 | 每天免費2小時 | 最低¥15/月 | 官網直達http://whosmall.com/go/loco |
轉自 SUN‘S BLOG - 專註互聯網知識,分享互聯網精神!
相關閱讀:《Mac 系統上如何用 LaunchBar 一鍵下載網頁上的所有文件?》
相關閱讀:《MacOS 如何用 LaunchBar 一鍵上傳文件至 Google Drive?》
相關閱讀:《最好用的 Mac App 快速啟動及切換工具:Manico 2.0》
相關閱讀:《我為什麽選擇 Window Tidy 作為 MacOS 分屏工具?》
相關閱讀:《Chrome 擴展 Stylish :給不喜歡某個網站一鍵「換膚」》
相關閱讀:《將 QQ 音樂、網易雲音樂和蝦米音樂資源「整合」一起的Chrome 擴展Listen 1》
相關閱讀:《8 個「新標簽頁」Chrome 擴展: 教你把 New Tab 頁面玩的溜溜溜》
相關閱讀:《7 款實用 Chrome 擴展推薦:幫你提升 Chrome 使用體驗》
相關閱讀:《無擴展就不是 Chrome 了:15 款優質的Chrome 擴展推薦給大家》
相關閱讀:《12 款不能少的使網頁瀏覽獲得的最佳體驗Chrome 擴展》
相關閱讀:《5 款可以帶來幸福感的 Chrome 擴展》
相關閱讀: 對程序員有用:2017最新能上Google的hosts文件下載及總結網友遇到的各種hosts問題解決方法及配置詳解
相關BLOG:SUN’S BLOG - 專註互聯網知識,分享互聯網精神!去看看:www.whosmall.com
原文地址:http://whosmall.com/?post=475
修改hosts不立即生效原因分析