dig命令

dig(域信息搜尋器)命令是一個用於詢問 DNS 域名伺服器的靈活的工具。它執行 DNS 搜尋,顯示從受請求的域名伺服器返回的答覆。多數 DNS 管理員利用 dig 作為 DNS 問題的故障診斷,因為它靈活性好、易用、輸出清晰。雖然通常情況下 dig 使用命令行參數,但它也可以按批處理模式從檔案讀取搜尋請求。

dig命令是 DNS 查詢實用程式。

語法

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-query opt...] [query...]

描述

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

標誌

-b address設定所要詢問地址的源 IP 地址。這必須是主機網路接口上的某一合法的地址。
-c class預設查詢類(IN for internet)由選項 -c 重設。class 可以是任何合法類,比如查詢 Hesiod 記錄的 HS 類或查詢 CHAOSNET 記錄的 CH 類。
-f filename使 dig 在批處理模式下運行,通過從檔案 filename 讀取一系列搜尋請求加以處理。檔案包含許多查詢;每行一個。檔案中的每一項都應該以和使用命令行接口對 dig 的查詢相同的方法來組織。
-h當使用選項 -h 時,顯示一個簡短的命令行參數和選項摘要。
-k filename要簽署由 dig 傳送的 DNS 查詢以及對它們使用事務簽名(TSIG)的回響,用選項 -k 指定 TSIG 密鑰檔案。
-n預設情況下,使用 IP6.ARPA 域和 RFC2874 定義的二進制標號搜尋 IPv6 地址。為了使用更早的、使用 IP6.INT 域和 nibble 標籤的 RFC1886 方法,指定選項 -n(nibble)。
-p port#如果需要查詢一個非標準的連線埠號,則使用選項 -p。port# 是 dig 將傳送其查詢的連線埠號,而不是標準的 DNS 連線埠號 53。該選項可用於測試已在非標準連線埠號上配置成偵聽查詢的域名伺服器。
-t type設定查詢類型為 type。可以是 BIND9 支持的任意有效查詢類型。預設查詢類型是 A,除非提供 -x 選項來指示一個逆向查詢。通過指定 AXFR 的 type 可以請求一個區域傳輸。當需要增量區域傳輸(IXFR)時,type 設定為 ixfr=N。增量區域傳輸將包含自從區域的 SOA 記錄中的序列號改為 N 之後對區域所做的更改。
-x addr逆向查詢(將地址映射到名稱)可以通過 -x 選項加以簡化。addr 是一個以小數點為界的 IPv4 地址或冒號為界的 IPv6 地址。當使用這個選項時,無需提供 name、class 和 type 參數。dig 自動運行類似 11.12.13.10.in-addr.arpa 的域名查詢,並分別設定查詢類型和類為 PTR 和 IN。
-y name:key您可以通過命令行上的 -y 選項指定 TSIG 密鑰;name 是 TSIG 密碼的名稱,key 是實際的密碼。密碼是 64 位加密字元串,通常由 dnssec-keygen(8)生成。當在多用戶系統上使用選項 -y 時應該謹慎,因為密碼在 ps(1)的輸出或 shell 的歷史檔案中可能是可見的。當同時使用 dig 和 TSCG 認證時,被查詢的名稱伺服器需要知道密碼和解碼規則。在 BIND 中,通過提供正確的密碼和 named.conf 中的伺服器聲明實現。

參數

global-queryopt...全局查詢選項(請參閱多個查詢)。
查詢查詢選項(請參閱查詢選項)。

查詢選項

dig 提供查詢選項號,它影響搜尋方式和結果顯示。一些在查詢請求報頭設定或復位標誌位,一部分決定顯示哪些回覆信息,其它的確定逾時和重試戰略。每個查詢選項被帶前綴(+)的關鍵字標識。一些關鍵字設定或復位一個選項。通常前綴是求反關鍵字含義的字元串 no。其他關鍵字分配各選項的值,比如逾時時間間隔。它們的格式形如 +keyword=value。查詢選項是:

+[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 執行查詢。

檔案

/etc/resolv.conf

相關信息

host 和 dnssec-keygen 命令。

named8 守護進程。

RFC1035

用法實例

dig最基本的用法
[email protected].
用dig查看zone數據傳輸
[email protected]
用dig查看zone數據的增量傳輸
[email protected]=N
用dig查看反向解析
dig-x210.52.83.228@server
查找一個域的授權dns伺服器
digxmgd.com.+nssearch
從根伺服器開始追蹤一個域名的解析過程
digxmgd.com+trace
查看你使用的是哪個Frootdnsserver
[email protected]
查看bind的版本號
dig@bind_dns_serverCHAOSTXTversion.bind

相關詞條

相關搜尋

熱門詞條

聯絡我們