Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux DNS 故障排查利器:dig 命令深度解析與實戰案例

編輯:Linux 系統常見問題解答

Web 開發與運維中,DNS 解析是 HTTP 請求發起前的第一關。dig (Domain Information Groper) 是現代 DNS 查詢工具,輸出結構化、支持追蹤完整解析鏈路、可指定權威服務器,遠超傳統 nslookup。本文通過 4 個實戰案例講解 dig 核心用法與輸出解讀。

基礎語法

dig [@server] name [type] [options]
# @server  指定 DNS 服務器(IP 或主機名)
# name     查詢域名
# type     記錄類型:A, AAAA, MX, NS, CNAME, TXT, SOA, PTR, ANY(默認 A)
# options  +trace, +short, +noall +answer, +stats 等

案例一:查詢根域名服務器(默認使用本地配置的 DNS)

dig .
# 或 dig @localhost .
# 輸出關鍵段:
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			85715	IN	NS	a.root-servers.net.
.			85715	IN	NS	l.root-servers.net.
... (共 13 組根服務器)
;; Query time: 1 msec
;; SERVER: 192.168.100.52#53(192.168.100.52)

解讀: 本地 DNS 返回 13 組根服務器 NS 記錄,TTL 85715 秒。SERVER 行顯示響應的 DNS 服務器 IP 及端口。

案例二:百度首頁解析(標準遞歸查詢)

dig www.baidu.com
;; QUESTION SECTION:
;www.baidu.com.		IN	A

;; ANSWER SECTION:
www.baidu.com.	641	IN	CNAME	www.a.shifen.com.
www.a.shifen.com. 110	IN	A	180.97.33.107
www.a.shifen.com. 110	IN	A	180.97.33.108

;; Query time: 1 msec
;; SERVER: 192.168.100.52#53

關鍵點:

  • CNAME:www.baidu.com 是 www.a.shifen.com 的別名。
  • 兩條 A 記錄:負載均衡/多入口。
  • Query time:本地 DNS 緩存命中極快。

案例三:指定 Google 公共 DNS (8.8.8.8) 解析

dig @8.8.8.8 www.baidu.com
;; ANSWER SECTION:
www.baidu.com.	557	IN	CNAME	www.a.shifen.com.
www.a.shifen.com. 299	IN	A	180.76.3.151

;; Query time: 615 msec
;; SERVER: 8.8.8.8#53

對比: 返回 IP 不同(180.76.3.151 vs 180.97.33.107/108),說明百度對不同地理/網絡返回不同解析(GSLB)。查詢耗時 615ms(跨網延遲)。

案例四:完整追蹤解析鏈路(+trace 從根開始迭代查詢)

dig www.baidu.com +trace
# 輸出分段:
# 1. 根服務器返回 . NS 記錄(13 組)
# 2. 選取 f.root-servers.net 查詢 com. NS 記錄(13 組 GTLD 服務器)
# 3. 選取 a.gtld-servers.net 查詢 baidu.com. NS 記錄(5 組百度權威服務器)
# 4. 選取 dns.baidu.com 查詢 www.baidu.com -> CNAME www.a.shifen.com + NS 記錄
# 5. 需再查詢 www.a.shifen.com 獲取最終 A 記錄

# 手動查詢最終 A 記錄
dig www.a.shifen.com +short
# 180.97.33.108
# 180.97.33.107

追蹤價值: 可見每一級權威服務器響應時間、返回記錄、是否存在 CNAME 鏈、NS 記錄是否正確授權,定位「解析慢、解析錯、權威服務器掛了」等疑難問題。

常用選項速查

選項作用
+short僅顯示答案(IP/主機名),適合腳本調用
+trace從根開始迭代追蹤完整解析路徑
+tcp使用 TCP 協議(大回應、區域傳輸)
+dnssec請求 DNSSEC 記錄(RRSIG, DNSKEY, DS)
+cdflag設置 Checking Disabled 位(禁用驗證)
+noall +answer只顯示答案段,隱藏題頭/統計
-x IP反向查詢 PTR 記錄
@server指定查詢服務器
type指定記錄類型:A, AAAA, MX, NS, CNAME, TXT, SOA, PTR, SRV, CAA, ANY

實戰排障場景

  1. 域名解析不生效:dig @權威NS domain +trace 確認授權鏈路完整、序列號同步。
  2. 解析慢:對比 dig @本地DNS domain、dig @8.8.8.8 domain、dig @權威NS domain 的 Query time,定位是本地緩存、遞歸服務器、權威服務器哪一環節慢。
  3. 解析錯誤/劫持:dig @多個公共DNS domain +short 對比返回 IP,發現不一致即可能被劫持/污染。
  4. 郵件發送失敗:dig domain MX 檢查 MX 記錄優先級、目標主機是否有 A/AAAA 記錄、SPF/TXT 記錄是否正確。
  5. CDN 回源異常:dig cdn-domain +trace 觀察 CNAME 鏈路、邊緣節點 IP 歸屬。

結語: dig 輸出雖顯冗長,但每一字段都有精確含義。熟練掌握 +trace、@server、+short 三大組合,能解決 90% DNS 疑難雜症。下次遇到「網頁打不開」,先 dig 一把再說話。

Copyright © Windows教程網 All Rights Reserved