DNS 當記錄指向錯誤的位置時,可能會影響網站、電子郵件和 API。 Dig 和 Nslookup 提供了快速檢查這些記錄的實用方法。
本指南解釋了這兩個命令的工作原理、安裝位置以及如何使用它們。 DNS 無需依賴圖形工具即可快速進行故障排除的查詢。
您將學習一些有用的命令,比較 Dig、Nslookup 和 Host,以及追蹤資訊。 DNS 解決問題、排除常見錯誤、自動檢查並遵循可靠的方法 DNS 練習時充滿自信。
為什麼 Dig 和 Nslookup 指令很重要?
每個網站、郵件伺服器和 API 都依賴 DNS 正確解析。當網域名稱無法解析或解析到錯誤的 IP 位址時,會導致服務中斷、郵件退回或網站損壞。 SSL.
DNS 像 dig 和 nslookup 這樣的查找工具可以讓管理員在幾秒鐘內驗證… DNS 記錄是否正確發布,哪個名稱伺服器是權威的,以及更改在網路上傳播的範圍。

這兩款工具都是免費的,預先安裝或可輕鬆安裝在所有主流作業系統上,而且無需圖形使用者介面,因此是任何專案的第一步。 DNS 在升級到更高層級之前,先進行故障排除工作流程 主機提供商 或註冊員。
什麼是 Dig 指令?
Dig(域資訊探索者)是 命令列 DNS dnsutils(Debian/Ubuntu)或 bind-utils 中包含的尋找實用程式
(RHEL/CentOS/AlmaLinux)軟體包。它查詢 DNS 伺服器直接傳回原始、詳細的回應,包括所提問題。
答案部分、授權部分、時間以及應答伺服器。

為什麼系統管理員喜歡使用 dig 指令:
- 輸出結果一致且易於解析,非常適合在 bash 腳本中使用。
- 全 DNSSEC 和 DNS 追蹤支援(
+trace) - 從文件中批次查找
-f - 預設顯示查詢時間和 TTL。
什麼是 Nslookup 指令?
Nslookup(名稱伺服器查找)是 a DNS Windows、macOS 和 Linux 系統預設提供查詢工具。
它既支援用於單次查找的快速非互動模式,也支援在一次會話中執行多個查詢的互動模式。

有關 nslookup 的每個標誌、記錄類型選項和故障排除範例的詳細信息,請參閱我們專門的nslookup 命令指南。
Nslookup 仍然是預設函數。 DNS dig 是 Windows 命令提示字元和 PowerShell 中的工具,因此即使現在大多數 Linux 發行版都傾向於使用 dig,它仍然被廣泛地教授。
如何安裝 Dig 和 Nslookup
nslookup 已預先安裝在 Windows、macOS 和大多數 Linux 發行版中。 Dig 通常需要在新安裝的 Linux 伺服器上單獨安裝。
在 Debian / Ubuntu 上安裝 Dig
sudo apt update
sudo apt install dnsutils -y在 RHEL / CentOS / AlmaLinux 上安裝 Dig
sudo yum install bind-utils -y驗證安裝
dig -v
nslookup -version挖掘命令語法
基本語法格式:
dig [@DNS-server] [domain] [record-type] [options]示例:
dig youstable.com @8.8.8.8如果沒有 DNS 如果指定了伺服器或記錄類型,dig 將查詢系統的預設解析器以取得 A 記錄。
最常用的挖掘指令及實際範例
記錄查找(網域到 IP 位址)
dig example.com AMX記錄查找(郵件伺服器檢查)
dig example.com MXNS記錄查找(權威名稱伺服器)
dig example.com NSTXT記錄查找(SPF、DKIM、驗證)
dig example.com TXTSOA 記錄查找(主記錄) DNS 權威)
dig example.com SOACNAME 尋找(別名記錄)
dig www.example.com CNAME逆轉 DNS 尋找(PTR 記錄)
從IP位址取得主機名稱:
dig -x 93.184.216.34僅簡答題輸出
dig example.com +short僅答案部分(無頁首/頁尾乾擾)
dig example.com +noall +answer全 DNS 解析路徑(追蹤)
dig example.com +trace從文件中批次查找
dig -f domains.txtNslookup 指令快速參考
等效的 nslookup 指令語法 DNS 檢查:
| 任務 | 挖掘命令 | nslookup命令 |
|---|---|---|
| 一個記錄 | 挖掘 example.com A | nslookup example.com |
| MX記錄 | dig example.com MX | nslookup -type=MX example.com |
| TXT記錄 | dig example.com TXT | nslookup -type=TXT example.com |
| 反向查找 | dig -x 93.184.216.34 | nslookup 93.184.216.34 |
| 定制配框 DNS 服務器 | 挖掘 example.com @1.1.1.1 | nslookup example.com 1.1.1.1 |
Dig、Nslookup 與 Host:全面對比
| 標準 | 挖 | 查詢 | 主辦方 |
|---|---|---|---|
| 預設作業系統可用性 | 大多數 Linux 系統預設不包含此功能 | Windows,macOS,Linux | 大多數 Linux/macOS |
| 輸出詳情 | 非常詳細(問題、答案、權威人士、時間安排) | 基礎到中等 | 極簡,一行 |
| 腳本友好 | 是的,簡短且沒有答案 | 有限 | 是的,簡單的解析 |
| DNS美國證券交易委員會的支持 | 完整版(+DNSsec) | 沒有 | 沒有 |
| 追蹤完整解析度路徑 | 是的(+痕跡) | 沒有 | 沒有 |
| 互動模式 | 沒有 | 可以 | 沒有 |
| 最適合 | 進階功能 DNS 診斷、自動化 | 快速檢查,Windows 環境 | 快速正向/反向查找 |
簡而言之:使用 dig 進行詳細的、可腳本化的分析, DNS在 Linux 和 macOS 上進行 SEC 感知診斷;在 Windows 上或 dig 不可用時,使用 nslookup 進行快速檢查;使用 host 取得最快的單行答案。
真實世界 DNS 故障排除場景
| 問題 | 要運行的命令 | 它告訴你什麼 |
|---|---|---|
| 網站無法載入 | 挖掘 example.com +簡短 | 確認網域名稱是否解析到正確的伺服器 IP 位址 |
| 郵件退回 | dig example.com MX / TXT | 揭示郵件路由設定錯誤或缺少 SPF/DKIM 訊息 |
| DNS 傳播檢查 | dig example.com @8.8.8.8 與 @1.1.1.1 | 不同的答案意味著這種變化仍在蔓延。 |
| 遷移後出現錯誤的名稱伺服器 | 挖掘 example.com NS | 顯示目前控制哪個註冊商或主機商 DNS |
| CDN 或反向代理驗證 | dig example.com +trace | 顯示從根伺服器到最終答案的確切路徑 |
| 可疑的入境交通 | dig -x [IP 位址] | 識別 IP 位址背後的託管提供者或網絡 |
共同 DNS 錯誤訊息和修復
| 錯誤 | 意思 | 固定 |
|---|---|---|
| 恩斯域 | 域名不存在 | 檢查拼寫,確認域名已註冊並擁有 DNS 記錄 |
| 服務失敗 | 權威伺服器未能正確回應 | 嘗試使用公共解析器(例如 1.1.1.1)進行重試;檢查區域檔案是否有錯誤。 |
| 拒絕 | DNS 伺服器拒絕了查詢 | 伺服器可能限制遞歸查詢;請直接查詢權威的NS。 |
| 連接逾時;無法連接到任何伺服器。 | 沒有任何回應 配置 DNS 服務器 | 檢查連接埠 53(UDP/TCP)的防火牆規則和網路連線情況 |
| 答案部分為空 | 網域解析成功,但查詢的記錄類型不存在。 | 確認已建立的記錄類型是否正確(例如 MX 或 A)。 |
了解 Dig + 追蹤輸出
这 +trace 旗幟使挖掘跟隨整個 DNS 從根伺服器到權威名稱伺服器的委託鏈,而不是依賴解析器的快取答案:
dig example.com +trace
. 518400 IN NS a.root-servers.net.
com. 172800 IN NS a.gtld-servers.net.
example.com. 172800 IN NS ns1.example.com.
example.com. 300 IN A 93.184.216.34這是確認哪個名稱伺服器對某個網域具有權威性的最快方法,也是在網域轉移或名稱伺服器變更後發現委派失敗的最快方法。
自動化 DNS 使用 Dig 在 Shell 腳本中進行檢查
因為挖掘的 +short 輸出結果清晰簡潔,便於腳本編寫,常用於 bash 監控腳本和 cron 作業中進行偵測。 DNS 或傳播失敗:
#!/bin/bash
DOMAIN="example.com"
EXPECTED_IP="93.184.216.34"
CURRENT_IP=$(dig +short "$DOMAIN" A)
if [ "$CURRENT_IP" != "$EXPECTED_IP" ]; then
echo "DNS mismatch for $DOMAIN: expected $EXPECTED_IP, got $CURRENT_IP"
fi此模式可用於在網域的 A 記錄發生意外變更時發出警報,例如在劫持嘗試或意外變更期間。 DNS 編輯。
使用 Dig 和 Nslookup 的最佳實踐
使用 挖 以及 NSLOOKUP 仔細獲取準確資訊 DNS 結果並避免混淆快取或不完整的回應。故障排除時請遵循這些做法。 DNS 問題:
- 多項選擇 DNS 解析器: 查詢公共解析器,例如 1.1.1.1 和 8.8.8.8,以比較結果並識別可能的傳播差異。
- 使用 挖掘 +追蹤 關於委託問題: 當某個網域給出的結果不一致時,請使用 `dig example.com +trace` 指令來追蹤結果。 DNS 從根伺服器到權威名稱伺服器的解析路徑。
- 腳本應使用乾淨的輸出: 自動化操作時,請使用 dig + short 或 dig + noall + answer。 DNS 檢查。這些選項使輸出更容易在 shell 腳本中解析。
- 檢查 SOA 記錄和 TTL: 在假設之前,請檢查 SOA 記錄及其 TTL。 DNS 變更已完全傳播到不同的解析器。
- 直接查詢權威伺服器: 使用 `dig example.com @ns1.example.com` 指令檢查權威回應並進行分離。 DNS 解析器快取導致的配置問題。
- 請核對記錄類型是否正確: 確保查詢與問題相關的記錄,例如 A 記錄用於查詢網站 IP 位址,MX 記錄用於查詢電子郵件路由,TXT 記錄用於查詢 SPF、DKIM 和驗證記錄。
這些做法 DNS 故障排除更可靠,有助於確定問題是否出在… DNS 配置、權威伺服器、解析器快取或傳播。
常見問題
dig 和 nslookup 有什麼差別?
Dig 提供更詳細、更易於腳本編寫的輸出,並支持 DNS可以進行 SEC 和全解析度跟踪,而 nslookup 更簡單,並且預設在 Windows、macOS 和 Linux 上可用,用於快速檢查。
dig 和 nslookup 哪個比較好?
挖掘通常更適合高級玩家。 DNS 用於 Linux/macOS 上的診斷和自動化。如果您需要在 Windows 上快速查找信息,或者需要一個無需安裝的工具,那麼 nslookup 是更好的選擇。
如何在Linux上安裝dig?
在 Debian/Ubuntu 系統上執行「sudo apt install dnsutils」。在 RHEL/CentOS/AlmaLinux 系統上執行「sudo yum install bind-utils」。
如何使用 dig 指令查看 MX 記錄?
執行「dig example.com MX」以查看郵件交換記錄及其優先值。
dig +trace 指令的作用是什麼?
它緊隨其後。 DNS 從根伺服器到權威名稱伺服器的委託路徑,而不是傳回快取的解析器答案。
我可以在Windows系統上使用dig指令嗎?
是的,可以透過安裝 Windows 版 BIND 工具或使用 WSL(適用於 Linux 的 Windows 子系統)來實現。 Nslookup 仍然是 Windows 內建的預設函數。
為什麼 dig 和 nslookup 對同一個網域會給出不同的結果?
這通常是由於以下原因造成的: DNS 傳播延遲,不同 DNS 正在查詢的解析器,或本機解析器 DNS 快取返回了過時的記錄。
如何進行反向操作 DNS 抬頭?
使用“dig -x [IP 位址]”或“nslookup [IP 位址]”將 IP 位址解析回其主機名稱。
