DNS 是什麼?讓網站被找到的關鍵角色

更新日期: 2025 年 6 月 26 日

你可能會覺得:「輸入網址、按下 Enter,網站就打開了,不是很簡單嗎?」

但其實背後發生了一連串你看不到的查詢過程,而其中最關鍵的一步,就叫做 DNS

如果 DNS 沒有設定正確,網站就會打不開,甚至連信也收不到。

那 DNS 到底是什麼?為什麼它這麼重要?這篇文章帶你用最簡單的方式搞懂它。

DNS 是什麼?網站能「被找到」的幕後功臣

DNS,全名是 Domain Name System(網域名稱系統),是一套幫助我們在網路上查詢、辨識、連線的基礎系統,你每天使用網路時,其實都在無聲無息地依賴它。

它的主要任務非常單純卻關鍵:

將人類容易記的網址(如 example.com)轉換成機器能識別的 IP 位址(如 93.184.216.34

因為:

  • 人類記得住的是像 google.com 這種「語意化」名稱
  • 但網路世界裡,伺服器彼此連線,是靠 IP 位址(例如 142.250.207.206)來找彼此的

這就像你用手機打電話時,是靠電話號碼才能真正聯絡對方,但你不會記住大家的手機號,只會記名字。

打個比方:DNS 就像網路世界的「電話簿 + 導航系統」

想像一下,我們在生活中如何找朋友:

  1. 我們記得朋友叫「阿明」(網址 = aming.com
  2. 拿起電話簿,查到阿明的手機號(IP 位址)
  3. 撥打電話,就能聯絡上阿明(發出請求 → 連線伺服器)

DNS 就是幫你完成這件事的系統。你在瀏覽器輸入網址的那一瞬間,系統其實正在偷偷幫你查「這個網域的 IP 是哪一組?」

而且這個查詢動作不只發生在你開網站的時候,開啟 App、登入系統、收發郵件,只要有連線,幾乎都在查 DNS

當你輸入網址,DNS 在背後做了什麼?

當你在瀏覽器輸入一個網址(例如 mywebsite.com)並按下 Enter,表面上看起來是「跳轉網頁」那麼簡單,但實際上電腦會經歷以下幾個查詢步驟,才知道要去哪裡抓取資料,才能顯示出網站畫面。

我們來一步一步還原這個查詢過程:

查詢本地快取(Local DNS Cache)

電腦會先檢查自己內部是否有快取紀錄

  • 如果你之前剛好有造訪過 mywebsite.com,系統可能還記得這個網域對應的 IP 位址。
  • 在這種情況下,就會直接使用快取結果,不需要再次查詢 DNS,速度更快。

🔧 系統快取的來源可能包含:

  • 作業系統層級的 DNS 快取
  • 瀏覽器的 DNS 快取
  • 路由器或防火牆上的快取

這就是為什麼有時候網站 IP 改了,但你還是連到舊的伺服器:因為快取還沒更新(這跟 TTL 也有關,稍後會解釋)。

查詢作業系統設定的 DNS 伺服器

如果本地沒查到快取,電腦會詢問「該問誰?」

這時候,電腦會根據你在作業系統中的網路設定,尋找一組 DNS 伺服器(也叫 DNS Resolver) 來代為查詢。

這組 DNS 伺服器的來源可能是:

  • 你的網路服務提供商(ISP)預設的 DNS(如中華電信、台灣大寬頻)
  • Google DNS(8.8.8.8 / 8.8.4.4)
  • Cloudflare DNS(1.1.1.1)
  • 你公司或自家網管手動設定的 DNS

這些伺服器的角色就是扮演一個「代辦窗口」,幫你問出答案。

發送查詢請求給 DNS 伺服器(遞迴查詢)

這個 DNS Resolver 會開始進行「遞迴查詢(recursive lookup)」,意思是它會一層層問下去,直到找到正確答案為止

從這裡開始,就是 DNS 系統的厲害之處。

DNS 系統一層層追蹤(權威伺服器查詢)

DNS 是一個層級式的系統,就像一棵大樹,查詢會從「根」開始往下走。

⛓️ 查詢流程如下:

  1. 根伺服器(Root DNS):負責整個網域系統的總入口。它不會知道 mywebsite.com 是誰管的,但會說:「.com 的伺服器在這裡」
  2. 頂級網域伺服器(TLD DNS,例如 .com):這一層伺服器知道 .com 底下有哪些網域,會回應:「mywebsite.com 是這台 Name Server 負責」
  3. 授權名稱伺服器(Authoritative DNS):這是你網站實際設定 DNS 記錄的地方(例如 GoDaddy、Cloudflare、Route 53),它才會真正回答:「mywebsite.com 的 IP 是 93.184.216.34

✔️ 到這裡為止,才真正「查到結果」!

得到正確的 IP 位址

經過一層層的轉問與回覆後,DNS Resolver 終於拿到正確答案,知道 mywebsite.com 的伺服器 IP 是 93.184.216.34

然後,這個結果會被「快取」起來(依照你 DNS 記錄設定的 TTL 時間),下次如果再有人查,會直接拿這個結果用,就不需要再問一次。

交給瀏覽器開始連線網站

現在,瀏覽器終於知道:「我要連到哪一台主機」。
於是它用剛剛查到的 IP 發出 HTTP / HTTPS 請求,進入你的網站伺服器,開始抓首頁、圖片、CSS 等資料,最後在畫面上呈現出整個網站。

⚡ 整個過程有多快?

整個 DNS 查詢過程只會花費幾十毫秒(ms),速度飛快。但只要某個環節設定錯誤(例如權威 DNS 沒設好 A 記錄),整條流程就會卡住,網站也無法被正確顯示。

如果沒有 DNS,會發生什麼事?

DNS 沒設定好或根本沒設定,就好比你開車出門,輸入 GPS 地址卻沒有人告訴你要怎麼走。

結果就是:網路找不到你的網站主機,也沒辦法送出請求。

這時候,使用者通常會看到一些錯誤訊息,例如:

  • 「這個網站無法連上」
  • DNS_PROBE_FINISHED_NXDOMAIN
  • 「Server not found」

這些錯誤都代表一件事:

❌ 使用者輸入的網域名稱,找不到對應的 IP 位址,也就是 DNS 查詢失敗

而造成 DNS 查詢失敗的常見原因有:

  • 沒有設定 A 記錄(找不到主機 IP)
  • 網域指向錯誤(記錄值填錯)
  • 根本沒完成 DNS 設定
  • 網域剛剛才設定好,尚未生效(TTL 時間還沒過)

DNS 記錄是什麼?每一筆都決定網站如何被找到

當你登入 GoDaddy、Cloudflare、Namecheap、AWS Route 53 這類平台時,你會看到所謂的「DNS 管理介面」,裡面有一堆你可以新增的「記錄」。

這些記錄就是 DNS 的對照表(zone file),一筆一筆告訴 DNS 系統:

某個子網域該對應到哪個 IP、哪個服務、用於什麼用途?

以下是常見幾種記錄:

記錄類型用途說明
A 記錄把網址(例如 mywebsite.com)對應到一個 IPv4 IP,例如 123.45.67.89
AAAA 記錄對應到 IPv6 位址,格式長一點,例如 2606:4700:4700::1111
CNAME 記錄把子網域(例如 www.mywebsite.com)導向另一個網域名稱(例如 gh-pages.github.io)
MX 記錄設定信件應該寄到哪一台伺服器(用於 Gmail、Zoho Mail、Outlook)
TXT 記錄放驗證資訊、憑證驗證、防垃圾郵件規則(如 SPF、DKIM)等自由格式文字
NS 記錄告訴外部 DNS 系統:「誰是這個網域的主責人(名稱伺服器)」

📌 每一筆記錄都有兩個基本欄位:

  • Name(名稱):要設定的子網域(例如 @ 表示主網域)
  • Value(值):對應的目標(可能是 IP、其他網域、主機名稱)

網域 ≠ 網站,DNS 是中間的橋樑

這是很多網站新手最常誤解的地方:

「我已經買了網址,為什麼還打不開網站?」

我們可以用「蓋房子」來比喻:

名稱說明
網域(domain)就像你買了一個門牌號碼,例如 123 ABC 路(mywebsite.com)
主機(hosting)你的網站實際住在哪裡(像是放在 AWS EC2、VPS、WordPress)
DNS 設定把門牌號碼指向實際房子的位置,讓別人可以找到它

👉 如果你只買了網域,沒有主機,就像買了門牌卻沒蓋房子;
👉 如果你買了主機但沒設 DNS,就像房子蓋好了但沒登記門牌,誰也找不到。

結論:為什麼 DNS 你一定要懂?

DNS 雖然不太被使用者直接看到,但卻是網站上線、收信、驗證憑證的第一關。

學會 DNS,你就能:

  • 把網站連到自己的主機
  • 自己設定公司信箱
  • 通過 SSL 或 Google 驗證
  • 快速排查網站無法連線的問題

懂 DNS,你就能真正掌握你的網域,而不是只是買了一個名稱卻不知道怎麼用它。

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *