一文看懂 DNS 請求全過程及設定方法

一文看懂 DNS 請求全過程及設定方法已关闭评论
一文看懂 DNS 請求全過程及設定方法缩略图

DNS 作為網際網路的基礎服務之一,在實作網域名稱解析到 IP 位址的過程中扮演了不可或缺的角色。本篇文章將帶您詳細了解 DNS 請求的全過程,並結合實際操作,指導如何在 Windows 和 Linux 系統中進行 DNS 配置,以及如何查看瀏覽器和作業系統的 DNS 快取。


什麼是網域名稱?

網域名稱是人類與網路互動的友善接口,是一串便於記憶的標識符,用於取代複雜的 IP 位址。

例如:

  • IP 位址:192.168.0.1
  • 網域名稱:example.com

網域名稱讓使用者無需記住數字,而是輸入可讀的名稱即可訪問網站。由於電腦僅識別 IP 位址,因此需要透過 DNS 將網域名稱轉換為 IP 位址,這個過程稱為 網域解析


什麼是網域名稱伺服器?

網域名稱伺服器是一種儲存網域名稱與 IP 位址對應關係的網路服務系統。當您在瀏覽器中輸入網域名稱時,伺服器會快速查找並返回與該網域相關的 IP 位址。


網域名稱伺服器的分層結構

為提高解析效率,DNS 採用分層樹狀結構設計,主要分為:

  1. 根網域名稱伺服器(Root DNS Server)
    • 負責管理全球頂級網域名稱伺服器的位址。
  2. 頂級網域名稱伺服器(TLD DNS Server)
    • 儲存特定頂級網域(如 .com、.org)權威伺服器位址。
  3. 權威網域名稱伺服器(Authoritative DNS Server)
    • 儲存目標網域名稱與 IP 位址的對應關係。
  4. 本機網域名稱伺服器(Local DNS Server)
    • 由 ISP 提供,用於快取和加速網域名稱解析請求。

DNS 請求的完整過程

以瀏覽器請求 google.com 為例,以下是從發起請求到取得 IP 位址的每一步驟:

  1. 查詢瀏覽器快取
    • 檢查是否已有 google.com 的 IP 位址快取。
  2. 查詢作業系統快取
    • 若瀏覽器未命中,檢查作業系統 DNS 快取。
  3. 查詢 hosts 文件
    • 作業系統檢查本機 hosts 文件,此文件優先級較高。
  4. 查詢本地網域名稱伺服器
    • 若前述步驟皆無結果,則向本地伺服器發起請求。
  5. 查詢根網域名稱伺服器
    • 本地伺服器無法解析時,將請求轉送至根伺服器。
  6. 查詢頂級網域名稱伺服器
    • 根伺服器返回 com 頂級網域伺服器的位址。
  7. 查詢權威網域名稱伺服器
    • 頂級伺服器返回儲存 google.com 記錄的權威伺服器位址。
  8. 回傳 IP 位址
    • 權威伺服器返回 IP 位址至本地伺服器,依序傳至瀏覽器。
  9. 緩存結果
    • 為提高後續效率,結果將緩存於本地伺服器、作業系統與瀏覽器。

流程圖範例

一文看懂 DNS 請求全過程及設定方法插图

在 Windows 和 Linux 系統上設定 DNS

Windows 系統

設定步驟

開啟 網路和共用中心。

選擇活動網路並點選 屬性。

找到 Internet 協定版本 4 (TCP/IPv4),點選 屬性。

手動輸入首選和備用 DNS 伺服器位址。

一文看懂 DNS 請求全過程及設定方法插图1

常用公共 DNS 伺服器

Google Public DNS:8.8.8.8 和 8.8.4.4

Cloudflare DNS:1.1.1.1 和 1.0.0.1

Linux 系統

Linux 的 DNS 設定通常與網路卡設定有關,可參考 /etc/resolv.conf 檔案或使用網路管理工具進行操作。

如何查看 DNS 快取

查看瀏覽器快取

以 Chrome 瀏覽器為例,造訪以下內部頁面查看 DNS 快取:

chrome://net-internals/#dns  

介面如下:
一文看懂 DNS 請求全過程及設定方法插图2

一文看懂 DNS 請求全過程及設定方法插图3

查看作業系統快取

在 Windows 系統中,可以透過以下命令查看目前 DNS 快取內容:
bash ipconfig /displaydns
範例介面:
一文看懂 DNS 請求全過程及設定方法插图4

一文看懂 DNS 請求全過程及設定方法插图5

總結

DNS 是網際網路中不可或缺的基礎元件,其解析過程透過層層查詢,確保有效率且準確地將網域名稱轉換為 IP 位址。透過掌握 DNS 配置和快取管理,您可以更好地優化網路體驗並解決常見的網域解析問題。