DNS 是什麼?— 用門牌號碼來理解網路世界的地址系統
你有沒有想過,當你在瀏覽器輸入 www.google.com 然後按下 Enter,電腦是怎麼知道要去哪裡找 Google 的?
答案就藏在一個叫做 DNS 的系統裡。
先來想像一個生活情境
假設你要去找一個朋友,他跟你說:「我家在快樂街 123 號。」
你打開 Google Maps,輸入「快樂街 123 號」,導航就會帶你到他家。這個地址就是你朋友家的「唯一識別碼」,全世界不會有第二個一樣的。
在網路的世界裡:
- 快樂街 123 號 = IP 位址(例如
142.250.185.78) - 「我朋友的家」 = 域名(Domain Name)(例如
www.google.com) - Google Maps / 導航系統 = DNS
什麼是 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.com | 142.250.185.78 |
www.facebook.com | 157.240.214.35 |
www.youtube.com | 142.250.190.46 |
每次你輸入網址,DNS 就在背後默默幫你查電話簿,找到對應的 IP 位址,然後帶你去正確的地方。
DNS 查詢是怎麼進行的?
讓我們用一個生活化的流程來理解。假設你要去一家叫「美味餐廳」的店:
第一步:先問自己(瀏覽器快取)
「我之前去過嗎?記得地址嗎?」
如果你最近才去過,你的大腦(瀏覽器)還記得地址,就不用再查了。這就是快取(Cache)。
第二步:問家人(作業系統快取)
「媽,你知道美味餐廳在哪嗎?」
你的電腦作業系統也會記住最近查過的 DNS 結果。
第三步:打電話問 114(遞迴 DNS 伺服器)
如果家裡沒人知道,你就打電話問查號台。這就是你的 ISP(網路服務提供商) 提供的 DNS 伺服器。
第四步:查號台一路往上問(根域名伺服器 → 頂級域名伺服器 → 權威域名伺服器)
查號台如果也不知道,就會去問更上級的單位:
- 根域名伺服器:「
.com的資料要去哪裡查?」 - 頂級域名伺服器:「
google.com的資料要去哪裡查?」 - 權威域名伺服器:「
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 伺服器暫時故障(查號台下班了)
- 域名過期沒續約(這家店已經關了)
「剛換完域名指向,但還是連到舊的」
DNS 有快取機制,你的電腦會記住之前查到的結果。通常需要等幾分鐘到幾小時,快取才會更新。這就像你搬了新家,但 Google Maps 上的地址可能還是舊的,需要等它更新。
這個等待的時間叫做 TTL(Time To Live),你可以把它想成「這個資訊的保質期」。
「公司的內部網站在外面連不上」
有些域名只在公司內部的 DNS 有設定。就像公司內部的分機號碼,外面的人打不進來。
你可以自己試試看
查詢域名的 IP 位址
在你的電腦打開終端機(Terminal),輸入:
nslookup google.com
你會看到 google.com 對應的 IP 位址。這就是你的電腦在替你查 DNS 電話簿!
換一個 DNS 伺服器
你的電腦預設使用 ISP(像是中華電信)提供的 DNS。但你也可以換成其他的:
| DNS 服務 | 位址 | 特色 |
|---|---|---|
| Google DNS | 8.8.8.8 | 速度快、穩定 |
| Cloudflare DNS | 1.1.1.1 | 主打隱私保護 |
換 DNS 就像換一本更好用的電話簿——查詢速度可能更快,也可能更安全。
結語
回顧一下今天學到的:
- IP 位址 = 電腦在網路上的門牌號碼
- 域名 = 我們方便記憶的名字
- DNS = 把域名翻譯成 IP 的電話簿
- DNS 查詢有多層快取機制,速度非常快
- 常見的記錄類型有 A、CNAME、MX 等
下次你在瀏覽器輸入網址的時候,別忘了背後有一整套 DNS 系統在默默替你翻譯地址。是不是覺得日常上網的過程,其實比想像中更神奇呢?
站內相關文章: