A
約 3 分鐘閱讀

DNS 是什麼?— 用門牌號碼來理解網路世界的地址系統

你有沒有想過,當你在瀏覽器輸入 www.google.com 然後按下 Enter,電腦是怎麼知道要去哪裡找 Google 的?

答案就藏在一個叫做 DNS 的系統裡。

先來想像一個生活情境

假設你要去找一個朋友,他跟你說:「我家在快樂街 123 號。」

你打開 Google Maps,輸入「快樂街 123 號」,導航就會帶你到他家。這個地址就是你朋友家的「唯一識別碼」,全世界不會有第二個一樣的。

在網路的世界裡:

什麼是 IP 位址?

每一台連上網路的電腦(包括放網站的伺服器)都有一個獨一無二的「地址」,叫做 IP 位址。它長這樣:

142.250.185.78

就像每棟房子都有門牌號碼一樣,每台電腦都有 IP 位址。

但問題是——你記得住 142.250.185.78 嗎?

大概不行。就像你不會跟朋友說「我住在北緯 25.0330° 東經 121.5654°」,而是說「我住在台北市信義區」。

DNS — 網路世界的電話簿

DNS 的全名是 Domain Name System(域名系統)。它做的事情很簡單:

把你記得住的名字(域名),翻譯成電腦看得懂的地址(IP)。

就像一本超級電話簿:

你輸入的(域名)DNS 翻譯出的(IP 位址)
www.google.com142.250.185.78
www.facebook.com157.240.214.35
www.youtube.com142.250.190.46

每次你輸入網址,DNS 就在背後默默幫你查電話簿,找到對應的 IP 位址,然後帶你去正確的地方。

DNS 查詢是怎麼進行的?

讓我們用一個生活化的流程來理解。假設你要去一家叫「美味餐廳」的店:

第一步:先問自己(瀏覽器快取)

「我之前去過嗎?記得地址嗎?」

如果你最近才去過,你的大腦(瀏覽器)還記得地址,就不用再查了。這就是快取(Cache)

第二步:問家人(作業系統快取)

「媽,你知道美味餐廳在哪嗎?」

你的電腦作業系統也會記住最近查過的 DNS 結果。

第三步:打電話問 114(遞迴 DNS 伺服器)

如果家裡沒人知道,你就打電話問查號台。這就是你的 ISP(網路服務提供商) 提供的 DNS 伺服器。

第四步:查號台一路往上問(根域名伺服器 → 頂級域名伺服器 → 權威域名伺服器)

查號台如果也不知道,就會去問更上級的單位:

  1. 根域名伺服器:「.com 的資料要去哪裡查?」
  2. 頂級域名伺服器:「google.com 的資料要去哪裡查?」
  3. 權威域名伺服器:「www.google.com 的 IP 是 142.250.185.78!」

最後,答案一路傳回來給你的瀏覽器。整個過程通常在幾十毫秒內就完成了,你完全感覺不到。

用圖來看整個流程:

sequenceDiagram
    participant 你的瀏覽器
    participant 遞迴DNS伺服器
    participant 根域名伺服器
    participant 頂級域名伺服器
    participant 權威域名伺服器

    你的瀏覽器->>遞迴DNS伺服器: www.google.com 的 IP 是什麼?
    遞迴DNS伺服器->>根域名伺服器: .com 要去哪查?
    根域名伺服器-->>遞迴DNS伺服器: 去問 .com 頂級域名伺服器
    遞迴DNS伺服器->>頂級域名伺服器: google.com 要去哪查?
    頂級域名伺服器-->>遞迴DNS伺服器: 去問 google.com 的權威伺服器
    遞迴DNS伺服器->>權威域名伺服器: www.google.com 的 IP?
    權威域名伺服器-->>遞迴DNS伺服器: 142.250.185.78
    遞迴DNS伺服器-->>你的瀏覽器: 142.250.185.78

常見的 DNS 記錄類型

DNS 不只能翻譯 IP 位址,它其實像一本功能很多的通訊錄:

記錄類型功能生活化比喻
A域名 → IPv4 位址門牌號碼(最常用)
AAAA域名 → IPv6 位址新式門牌號碼(地址不夠用了,升級版)
CNAME域名 → 另一個域名「這家搬到對面去了,去那邊找」
MX郵件伺服器位址信箱地址(專門收信的)
TXT文字資訊門口的公告欄

舉個例子:當你設定自訂域名給你的部落格時(像是我把自己的網站指向 Cloudflare),你需要設定 A 記錄CNAME 記錄,告訴 DNS:「如果有人要找 worksbyaaron.com,請帶他去這個 IP 位址。」

為什麼有時候網站打不開?

現在你知道 DNS 是什麼了,就能理解一些常見的狀況:

「DNS 解析失敗」

這就像你查電話簿找不到這個人的號碼。可能的原因:

「剛換完域名指向,但還是連到舊的」

DNS 有快取機制,你的電腦會記住之前查到的結果。通常需要等幾分鐘到幾小時,快取才會更新。這就像你搬了新家,但 Google Maps 上的地址可能還是舊的,需要等它更新。

這個等待的時間叫做 TTL(Time To Live),你可以把它想成「這個資訊的保質期」。

「公司的內部網站在外面連不上」

有些域名只在公司內部的 DNS 有設定。就像公司內部的分機號碼,外面的人打不進來。

你可以自己試試看

查詢域名的 IP 位址

在你的電腦打開終端機(Terminal),輸入:

nslookup google.com

你會看到 google.com 對應的 IP 位址。這就是你的電腦在替你查 DNS 電話簿!

換一個 DNS 伺服器

你的電腦預設使用 ISP(像是中華電信)提供的 DNS。但你也可以換成其他的:

DNS 服務位址特色
Google DNS8.8.8.8速度快、穩定
Cloudflare DNS1.1.1.1主打隱私保護

換 DNS 就像換一本更好用的電話簿——查詢速度可能更快,也可能更安全。

結語

回顧一下今天學到的:

下次你在瀏覽器輸入網址的時候,別忘了背後有一整套 DNS 系統在默默替你翻譯地址。是不是覺得日常上網的過程,其實比想像中更神奇呢?



站內相關文章: