用 dig 與 nslookup 查 DNS:網站除錯的實用工具教學

更新日期: 2025 年 6 月 26 日

當網站突然無法打開、公司信箱收不到信、或你剛剛才改完 DNS 卻沒有生效時,這些問題幾乎都和「DNS 記錄」有關。

你需要知道的不是怎麼打電話問工程師,而是學會自己檢查:

「現在這個網域,實際上是指向哪個 IP?」

「是不是還卡在舊的快取上?」

「Google、Cloudflare 等公共 DNS 查到的是什麼結果?」

這時候,你就需要出場的兩個工具 —— dignslookup

dig 是什麼?為什麼很多工程師都愛用?

當你遇到「網站打不開」、「憑證驗證失敗」、「信箱收不到信」等網路問題時,很多時候根本原因出在 DNS(Domain Name System)解析。這時候,dig 就是一個能幫你「問清楚 DNS 發生什麼事」的工具。

dig 是什麼?

digDomain Information Groper 的縮寫,是一個命令列工具,可以讓你直接對 DNS 系統發出查詢,取得網域名稱對應的各種記錄資訊。

這個工具廣泛用於:

  • 檢查網站 IP 是否正確設定(A 記錄)
  • 查公司信箱是否設好(MX 記錄)
  • 驗證網站憑證是否能正常發出(TXT 記錄)
  • 確認 CNAME、NS 等其他記錄的設定狀況
  • 對比不同地區的 DNS 查詢結果(如 Google DNS、Cloudflare DNS)

為什麼開發者和工程師特別喜歡 dig

dig 雖然是一個 CLI 工具,但它的設計非常清楚、靈活,特別適合進行 DNS 除錯與比對:

優點說明
🧾 結構清楚會列出「查詢的問題」、「回傳的答案」、「來源伺服器」、「快取時間」等重要資訊
🔍 支援多種記錄類型A、AAAA、CNAME、MX、TXT、NS、SOA、SRV 等都能查
🌐 可指定查詢來源可向特定 DNS 查詢(如 Google 8.8.8.8、Cloudflare 1.1.1.1),比對不同地區的解析情況
📤 回傳真實資料不經過瀏覽器快取、不受系統預設解析器干擾,更接近真實網路狀況

dig 基本語法與範例

dig 的基本語法結構非常簡單:

dig 網域名稱 記錄類型

其中:

  • 網域名稱:你要查的網址,例如 example.com
  • 記錄類型:你想查哪一種 DNS 記錄,最常見的是 AMXTXT

📘 查詢 A 記錄(網站的 IPv4 位址)

dig example.com A

這會向預設 DNS 發出查詢,詢問:「請問 example.com 的 IPv4 是哪個 IP?」
查詢結果會回傳像這樣:

;; QUESTION SECTION:
;example.com.      IN   A

;; ANSWER SECTION:
example.com.   3600  IN  A  93.184.216.34

你可以看到:

  • ANSWER SECTION 是真正的解析結果
  • 93.184.216.34 就是網站的伺服器 IP
  • 3600 是 TTL(快取有效秒數),表示這筆資料最多會被快取一小時

📘 查詢 MX 記錄(郵件伺服器)

dig example.com MX

這會回傳 example.com 的郵件主機設定,例如:

;; ANSWER SECTION:
example.com.  3600  IN  MX  10  mail1.example.com.
example.com.  3600  IN  MX  20  mail2.example.com.

這裡顯示:

  • 網域設定了兩個郵件主機,優先順序為 10 與 20(數字越小,優先度越高)
  • 你可以用這資訊去驗證是否已正確設定第三方信箱(如 Google Workspace、Zoho、Outlook)

🌐 常見進階用法:指定 DNS 查詢來源

有時候 DNS 的查詢結果會因地區、ISP、DNS 快取狀況不同而有所不同。這時你可以指定使用特定的 DNS 伺服器來查詢,例如:

dig example.com A @8.8.8.8

這代表:

  • example.com:查詢目標
  • A:查詢記錄類型(IPv4)
  • @8.8.8.8:查詢來源為 Google 的公共 DNS 伺服器

你也可以換成其他來源,例如:

dig example.com A @1.1.1.1      # Cloudflare DNS
dig example.com A @168.95.1.1   # 中華電信 DNS(台灣)

這樣能幫你確認:是不是只有某個地區解析錯誤?還是全球都還沒同步更新?

實用情境舉例

狀況解法(使用 dig)
網站打不開dig yoursite.com A → 看是否有 IP 回應
信箱寄不出去dig yoursite.com MX → 確認 MX 記錄是否設定正確
憑證驗證失敗(Let’s Encrypt / Google)dig _acme-challenge.yourdomain.com TXT
DNS 剛改完但沒生效dig yourdomain.com A @8.8.8.8 → 查詢全球同步情況
想觀察 TTL 值(快取時間)看 ANSWER SECTION 裡的數字(例如 300 代表快取 5 分鐘)

nslookup 是什麼?為什麼很多人第一次接觸的是它?

當你還不知道什麼是 DNS,也不知道 dig 是誰的時候,很可能早就在終端機裡輸入過 nslookup。這是一個歷史悠久、幾乎每個作業系統都內建的 DNS 查詢工具。

nslookup 是什麼?

nslookup(Name Server Lookup)是最早期的 DNS 查詢工具之一,它的用途很直接:輸入一個網域名稱,就會回傳對應的 IP 位址,也可以查詢像 MX、TXT 等其他記錄。

因為:

  • 幾乎所有 Windows / macOS / Linux 系統都已預裝
  • 操作方式非常簡單
  • 結果回傳速度快、格式乾淨

因此成為許多使用者在第一次遇到 DNS 問題時的入門選擇。

nslookup 的基本語法與範例

最基本的查詢格式如下:

nslookup 網域名稱

例如:

nslookup example.com

你會看到像這樣的結果:

Server:   192.168.1.1
Address:  192.168.1.1#53

Non-authoritative answer:
Name:    example.com
Address: 93.184.216.34

說明:

欄位意義
Server / Address你現在使用的 DNS 伺服器
Name / Address查詢到的網域與對應的 IP(A 記錄)
Non-authoritative answer回應來自非權威伺服器(也就是快取或轉問得來的結果)

查詢其他類型的 DNS 記錄

雖然 nslookup 預設查的是 A 記錄(IP 位址),但你也可以查其他類型的記錄,比如:

🔐 查 MX 記錄(郵件主機)

nslookup -query=MX example.com

回傳結果可能會長這樣:

example.com   mail exchanger = 10 mail1.example.com.
example.com   mail exchanger = 20 mail2.example.com.

表示這個網域的信箱會優先指向 mail1,再來是 mail2。

🌐 指定 DNS 伺服器查詢(類似 dig 的 @)

你也可以手動指定查詢來源的 DNS 伺服器,例如 Google DNS:

nslookup example.com 8.8.8.8

這表示「用 8.8.8.8 這台 DNS 伺服器來查 example.com」。這個功能對於:

  • 比對全球 DNS 傳播情況
  • 驗證 CDN、憑證驗證記錄是否已更新

都非常實用。

nslookup 的優點與限制比較

項目說明
✅ 優點幾乎所有系統預設可用,不需額外安裝。語法簡單、查詢快速。
⚠️ 限制結果格式簡化,不會顯示 TTL、權威伺服器、遞迴過程。對於進階除錯較不夠用。
🧑‍💻 適合初學者、IT 支援人員、快速查 IP 使用者
🧰 不適合網站架設、憑證驗證、DNS 傳播問題分析(建議用 dig)

dig 和 nslookup 差在哪?該怎麼選擇?

雖然 dignslookup 都是 DNS 查詢工具,但它們的設計背景、使用目的、功能深度其實有所不同。你可以依照「查詢的目的」、「使用的環境」以及「你是否需要進階資訊」來選擇最適合的工具。

以下是兩者的比較整理:

功能項目dig(適合開發者、站長)nslookup(適合入門者、IT 支援)
🔍 查詢結果格式回傳非常詳細,包括:– DNS 回應類型(A/MX/TXT…)– TTL(快取秒數)– 解析來源伺服器– 權威 vs 非權威回應回傳內容精簡,僅顯示對應 IP 或主機名稱(不含 TTL、來源伺服器等)
🌐 是否能指定 DNS 伺服器✅ 可用 @ 語法指定(如 @8.8.8.8),可測試不同區域結果✅ 也可以指定(如 nslookup 網域名稱 8.8.8.8),但語法少人熟悉
🗂️ 記錄類型支援✅ 支援完整記錄類型(A、AAAA、CNAME、MX、TXT、NS、SOA、SRV、ANY 等)⚠️ 支援部分記錄(MX、A、NS 等),但語法不統一,無法查 SOA、ANY 等
💻 安裝需求macOS / Linux 預設有,Windows 須另外安裝 BIND 套件幾乎所有作業系統都已預裝(Windows/macOS/Linux 全支援)
🎯 適合使用情境架站、憑證驗證、CDN 部署、跨區比對、DNS 排錯、DNS TTL 分析快速查 IP、臨時測試信箱主機、簡單教學演示

怎麼選擇才適合你?

✅ 如果你只是想確認:

  • 某個網址目前的 IP 是什麼?
  • 公司信箱有沒有設好?

👉 用 nslookup 就夠快又方便,例如:

nslookup example.com
nslookup -query=MX example.com

🧠 如果你需要進一步分析:

  • 查出來的資料會快取多久(TTL 是多少秒)?
  • 查 TXT 記錄進行憑證驗證?
  • 想知道解析是來自哪台 DNS?是權威回應還是快取?

👉 建議使用 dig,例如:

dig example.com A
dig example.com MX @8.8.8.8
dig _acme-challenge.example.com TXT

小結:學會 DNS 查詢,是每個網站人該有的技能

不管你是開發者、站長、還是經常需要幫公司架信箱、接憑證的行銷人員,學會使用 dignslookup,就是學會如何第一時間檢查網域問題。

記得:

  • 初學者先用 nslookup 熟悉語法與觀念
  • 要查詳細記錄、TTL、指定伺服器時,改用 dig
  • 網站無法開啟、憑證驗證失敗、信箱寄不出去時,第一步都可以從 DNS 查詢開始排錯

Similar Posts

發佈留言

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