目錄
一、緩存分類
1. 客戶端緩存(以瀏覽器緩存為列)
2. 操作系統緩存
3.本地hosts文件靜態映射
二、DNS查找優先順序
1.瀏覽器查找順序
2.cmd ping查找順序(非瀏覽器)
一、緩存分類
在一臺終端上,DNS緩存可以存在于多個層次,包括操作系統層、應用程序層和網絡設備層。以下是查找DNS緩存的方法以及它們的優先級:
1. 客戶端緩存(以瀏覽器緩存為列)
PS:很多而客戶端都有自己的dns緩存,如web瀏覽器、郵件客戶端等
每個瀏覽器都有自己的DNS緩存,用于加速域名解析。要清除瀏覽器的DNS緩存,可以按照以下步驟操作:
- Chrome:
-
- 在地址欄中輸入 chrome://net-internals/#dns 并按下回車。
- 點擊“Clear host cache”按鈕。
- Firefox:
-
- 在地址欄中輸入 about:networking#dns 并按下回車。
- 點擊“Clear DNS Cache”按鈕。
-
2. 操作系統緩存
操作系統維護一個DNS緩存,以減少對DNS服務器的查詢次數。可以使用以下命令查看和清除操作系統的DNS緩存:
- Windows:
- 查看DNS緩存:ipconfig /displaydns
- 清除DNS緩存:ipconfig /flushdns
- Linux(以systemd-resolved為例):
- 查看DNS緩存:sudo systemd-resolve --statistics
- 清除DNS緩存:sudo systemd-resolve --flush-caches
其他Linux系統(如使用nscd或dnsmasq)可能有不同的命令:
-
- sudo service nscd restart 或 sudo systemctl restart nscd
- sudo service dnsmasq restart 或 sudo systemctl restart dnsmasq
- macOS:
- 查看DNS緩存:sudo killall -INFO mDNSResponder
- 清除DNS緩存:sudo killall -HUP mDNSResponder
3.本地hosts文件靜態映射
-
- Windows: C:\Windows\System32\drivers\etc\hosts
- Linux/Unix/macOS: /etc/hosts
二、DNS查找優先順序
1.瀏覽器查找順序
瀏覽器緩存 > 操作系統緩存 > 本地Hosts文件 > DNS服務器查詢
2.cmd ping查找順序(非瀏覽器)
本地Hosts文件 > 操作系統緩存 > DNS服務器查詢
關鍵差異點
- 瀏覽器緩存:瀏覽器有自己的DNS緩存機制,這是為了提高瀏覽速度和效率。命令行工具(如ping)通常不使用瀏覽器緩存。
- 順序和優先級:
-
- 瀏覽器會先檢查自己的緩存,然后再查詢操作系統緩存和hosts文件。
- 命令行工具直接從本地hosts文件開始查詢,然后檢查操作系統緩存。
為什么會有這種差異?
- 性能優化:瀏覽器緩存DNS記錄是為了提高網頁加載速度,因為瀏覽器需要頻繁解析大量的域名。
- 一致性和控制:命令行工具更依賴于操作系統的DNS解析順序,以確保結果的一致性和可控性。