hosts檔案
前面我們講解了DNS域名決議的流程以及原理(詳見DNS決議),可以了解到DNS服務器最大的作用便是存盤著域名到IP地址的映射,以便用戶在通過瀏覽器請求某個頁面時,將用戶輸入的域名決議為對應的IP地址,
接下來我們通過一次域名決議的完整流程來認識hosts檔案(下圖是一次域名決議的完整程序,對[MY PC]框圖以外不理解的可以參考DNS決議)

接下來我們對上圖進行一個較為深刻的解讀
假定我們在請求www.oracle.com站點
當我們在瀏覽器導航欄輸入一條域名并按下回車時,域名決議的程序便開始了,
- 首先,檢查瀏覽器自身快取,若在不久之前訪問過該站點,那么瀏覽器自身快取中包含域名www.oracle.com到其IP地址的決議,只進行程序1和程序2
瀏覽器自身快取一般保存在
C:\Users\AppData\Local\Microsoft\Edge\User Data\Default\Cache
- 如果瀏覽器快取中不包含域名www.oracle.com到其IP地址的映射,那么便從本機作業系統的DNS快取中查找,對應于圖中的程序3和程序4.
可以通過ipconfig /displaydns命令來查看本機作業系統中的DNS快取
通過ipconfig /flushdns命令來洗掉本機作業系統中的DNS快取
- 如果本機作業系統的DNS快取不包含域名www.oracle.com到其IP地址的映射,那么便從本機hosts檔案(本文的核心內容!!!)中查找看是否含有域名www.oracle.com到其IP地址的映射,對應于程序5和程序6.
hosts檔案: Hosts是一個沒有擴展名的系統檔案,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“資料庫”(并不是真正的關系型資料庫!)
hosts檔案位置
C:\Windows\System32\drivers\etc\hosts
我們可以通過修改hosts檔案來修改域名和IP地址的映射關系,這樣在域名決議的程序中如果瀏覽器快取和本機作業系統中的DNS快取都不包含該映射關系時,按照hosts檔案中的映射關系進行決議,
例如我們想通過域名www.huogaohan.com來請求github.com站點時可以通過以下步驟完成
例如在瀏覽器本地快取和OS的DNS快取中都沒有github.com與其IP地址的映射時,我們訪問GitHub時相對較慢,我們可以通過在hosts檔案中添加github.com到其IP地址的映射,來避免訪問遠程服務器的耗時,在一定程度上加快訪問,
- 如果hosts檔案中不包含域名www.oracle.com到其IP地址的映射,那么應用程式便會呼叫本地DNS客戶端,通過訪問遠程服務器來獲取所需要的映射關系,對應于圖中程序7到程序16(程序7到程序16的詳細解讀參考我的另一篇文章DNS決議)
如果以上程序并無法查找到所需要的域名-IP地址映射關系(不出意外都會找到),還會有一些后續程序,這里不再贅述,若后續程序還是無法找到,那么本次域名決議宣告失敗
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/348282.html
標籤:其他
上一篇:Linux安全應急指令






