dig 命令詳解

簡介

dig(域信息搜索器)執行 DNS 搜索,顯示從接受請求的域名服務器返回的答覆。多數 DNS 管理員利用 dig 作爲 DNS 問題的故障診斷,因爲它靈活性好,易用、輸出清晰。通常情況下 dig 使用命令行參數,但它也可以按批處理模式從文件讀取搜索請求。不同於早期版本,dig 的 BIND9 實現允許從命令行發出多個查詢,除非被告知請求特定域名服務器,dig 將嘗試 / etc/resolv.conf 中列舉的所有服務器。當未指定任何命令行參數或選項時,dig 將對 “.” 執行 NS 查詢。

dig 命令用法

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n ][-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]

dig 命令選項

-b address 設置所要詢問地址的源 IP 地址。這必須是主機網絡接口上的某一合法的地址
-c class 缺省查詢類,由選項 - c 重設。class 可以是任何合法類,比如查詢 Hesiod 記錄的 HS 類或查詢 CHAOSNET 記錄的 CH 類;
-f filename 使 dig 在批處理模式下運行,通過從文件 filename 讀取一系列搜索請求加以處理。文件包含許多查詢,每行一個。文件中的每一項都應該和使用命令行接口對 dig 查詢相同的方法來組織;-f filename 使 dig 在批處理模式下運行,通過從文件 filename 讀取一系列搜索請求加以處理。文件包含許多查詢,每行一個。文件中的每一項都應該和使用命令行接口對 dig 查詢相同的方法來組織;
-h 顯示一個簡短的命令行參數和選項摘要;-h 顯示一個簡短的命令行參數和選項摘要;
-k filename 要簽署由 dig 發送的 DNS 查詢以及對他們使用事物簽名(TSIG)的響應,用選項 - K 指定 TSIG 密鑰文件;-k filename 要簽署由 dig 發送的 DNS 查詢以及對他們使用事物簽名(TSIG)的響應,用選項 - K 指定 TSIG 密鑰文件;
-n
-p port 如果需要查詢一個非標準的端口號,則使用選項 - p。port 是 dig 將發送其查詢的端口號,而不是標準的 DNS 端口號 53。該選項可用於測試已在非標準端口號上配置成偵聽查詢的域名服務器;-p port 如果需要查詢一個非標準的端口號,則使用選項 - p。port 是 dig 將發送其查詢的端口號,而不是標準的 DNS 端口號 53。該選項可用於測試已在非標準端口號上配置成偵聽查詢的域名服務器;
-t type 設置查詢的類型爲 type。可以是 BIND9 支持的任意有效查詢類型。缺省查詢類型是 A,除非提供 - x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區域傳輸。當需要增量區域傳輸(IXFR)時,type 設置爲 ixfr=N,增量區域傳輸將包含自從區域的 SOA 記錄中的序列號改爲 N 之後對區域所做的更改;-t type 設置查詢的類型爲 type。可以是 BIND9 支持的任意有效查詢類型。缺省查詢類型是 A,除非提供 - x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區域傳輸。當需要增量區域傳輸(IXFR)時,type 設置爲 ixfr=N,增量區域傳輸將包含自從區域的 SOA 記錄中的序列號改爲 N 之後對區域所做的更改;
-x addr 逆向查詢(將地址映射到名稱);-x addr 逆向查詢(將地址映射到名稱);
-y name key 指定 TSIG 祕鑰;-y name key 指定 TSIG 祕鑰;

查詢選項

+[no]tcp

查詢域名服務器時使用 [不使用] TCP。缺省行爲是使用 UDP,除非是 AXFR 或 IXFR 請求,才使用 TCP 連接。

+[no]vc

查詢名稱服務器時使用 [不使用] TCP。+[no]tcp 的備用語法提供了向下兼容。vc 代表虛電路。

+[no]ignore

忽略 UDP 響應的中斷,而不是用 TCP 重試。缺省情況運行 TCP 重試。

+domain=somename

設定包含單個域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域僞指令指定,並且啓用搜索列表處理,好像給定了 +search 選項。

+[no]search

使用 [不使用] 搜索列表或 resolv.conf 中的域僞指令(如果有的話)定義的搜索列表。缺省情況不使用搜索列表。

+[no]defname

不建議看作 +[no]search 的同義詞。

+[no]aaonly

該選項不做任何事。它用來提供對設置成未實現解析器標誌的 dig 的舊版本的兼容性。

+[no]adflag

在查詢中設置 [不設置] AD(真實數據)位。目前 AD 位只在響應中有標準含義,而查詢中沒有,但是出於完整性考慮在查詢中這種性能可以設置。

+[no]cdflag

在查詢中設置 [不設置] CD(檢查禁用)位。它請求服務器不運行響應信息的 DNSSEC 合法性。

+[no]recursive

切換查詢中的 RD(要求遞歸)位設置。在缺省情況下設置該位,也就是說 dig 正常情形下發送遞歸查詢。當使用查詢選項 +nssearch 或 +trace 時,遞歸自動禁用。

+[no]nssearch

這個選項被設置時,dig 試圖尋找包含待搜名稱的網段的權威域名服務器,並顯示網段中每臺域名服務器的 SOA 記錄。

+[no]trace

切換爲待查詢名稱從根名稱服務器開始的代理路徑跟蹤。缺省情況不使用跟蹤。一旦啓用跟蹤,dig 使用迭代查詢解析待查詢名稱。它將按照從根服務器的參照,顯示來自每臺使用解析查詢的服務器的應答。

+[no]cmd

設定在輸出中顯示指出 dig 版本及其所用的查詢選項的初始註釋。缺省情況下顯示註釋。

+[no]short

提供簡要答覆。缺省值是以冗長格式顯示答覆信息。

+[no]identify

當啓用 +short 選項時,顯示 [或不顯示] 提供應答的 IP 地址和端口號。如果請求簡短格式應答,缺省情況不顯示提供應答的服務器的源地址和端口號。

+[no]comments

切換輸出中的註釋行顯示。缺省值是顯示註釋。

+[no]stats

該查詢選項設定顯示統計信息:查詢進行時,應答的大小等等。缺省顯示查詢統計信息。

+[no]qr

顯示 [不顯示] 發送的查詢請求。缺省不顯示。

+[no]question

當返回應答時,顯示 [不顯示] 查詢請求的問題部分。缺省作爲註釋顯示問題部分。

+[no]answer

顯示 [不顯示] 應答的回答部分。缺省顯示。

+[no]authority

顯示 [不顯示] 應答的權限部分。缺省顯示。

+[no]additional

顯示 [不顯示] 應答的附加部分。缺省顯示。

+[no]all

設置或清除所有顯示標誌。

+time=T

爲查詢設置超時時間爲 T 秒。缺省是 5 秒。如果將 T 設置爲小於 1 的數,則以 1 秒作爲查詢超時時間。

+tries=A

設置向服務器發送 UDP 查詢請求的重試次數爲 A,代替缺省的 3 次。如果把 A 小於或等於 0,則採用 1 爲重試次數。

+ndots=D

出 於完全考慮,設置必須出現在名稱 D 的點數。缺省值是使用在 /etc/resolv.conf 中的 ndots 語句定義的,或者是 1,如果沒有 ndots 語句的話。帶更少點數的名稱被解釋爲相對名稱,並通過搜索列表中的域或文件 /etc/resolv.conf 中的域僞指令進行搜索。

+bufsize=B

設置使用 EDNS0 的 UDP 消息緩衝區大小爲 B 字節。緩衝區的最大值和最小值分別爲 65535 和 0。超出這個範圍的值自動舍入到最近的有效值。

+[no]multiline

以詳細的多行格式顯示類似 SOA 的記錄,並附帶可讀註釋。缺省值是每單個行上顯示一條記錄,以便於計算機解析 dig 的輸出。

多條查詢

dig 的 BIND9 支持在命令行上指定多個查詢(支持 -f 批處理文件選項的附加功能)。每條查詢可以使用自己的標誌位、選項和查詢選項。

在這種情況下,在上面描述的命令行語法中,每條查詢自變量代表一個個別查詢。每一條由任意標準選項和標誌、待查詢名稱、可選查詢類型和類以及任何適用於該查詢的查詢選項。

也可以使用對所有查詢均有效的查詢選項全局集合。全局查詢選項必須位於命令行上第一個名稱、類、類型、選項、標誌和查詢選項的元組之前。任何全局查詢選項(除了 +[no]cmd 選項)可以被下面的查詢特別選項重設。例如:

dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
顯 示 dig 如何從命令行出發進行三個查詢:一個針對 www.isc.org 的任意查詢、一個 127.0.0.1 的逆向查詢,以及一個 isc.org 的 NS 記錄查詢。應用了 +qr 的全局查詢選項,以便 dig 顯示進行每條查詢的初始查詢。最後那個查詢有一個本地查詢選項 +noqr,表示 dig 在搜索 isc.org 的 NS 記錄時不顯示初始查詢。

示例

一個典型的 dig 調用類似:

dig @server name type

其中:

server

待 查詢名稱服務器的名稱或 IP 地址。可以是用點分隔的 IPv4 地址或用冒號分隔的 IPv6 地址。當由主機提供服務器參數時,dig 在查詢域名 服務器前先解析那個名稱。如果沒有服務器參數可以提供,dig 參考 /etc/resolv.conf,然後查詢列舉在那裏的域名服務器。顯示來自域名 服務器的應答。

name

將要查詢的資源記錄的名稱。

type

顯示所需的查詢類型 - ANY、A、MX、SIG,以及任何有效查詢類型等。如果不提供任何類型參數,dig 將對紀錄 A 執行查詢。

常用命令:

dig @server sina.com.cn.

用 dig 查看 zone 數據傳輸

dig @server zx.xmgd.com. AXFR

用 dig 查看 zone 數據的增量傳輸

dig @server zx.xmgd.com. IXFR=N

用 dig 查看反向解析

dig -x 210.52.83.228 @server

查找一個域的授權 dns 服務器

dig xmgd.com. +nssearch

從根服務器開始追蹤一個域名的解析過程

dig xmgd.com +trace

查看你使用的是哪個 F root dns server

dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

查看 bind 的版本號

dig @bind_dns_server CHAOS TXT version.bind
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://www.jianshu.com/p/f6ef04bf6af2