的事。

dig gentoo.de +trace

你可以在dig輸出的頭部分看到根DNS,然后找到負責(zé)解析所有*.de的DNS,最后找到gentoo.de的域名IP。

獲取SOA記錄

作為一個DNS管理員,我有時會(對DNS配置)做一些改變,并且想知道我的DNS解析是否推送的還是舊數(shù)據(jù),這個+nssearch選項可以給你的公眾服務(wù)器提供清楚的統(tǒng)計信息。

# the unvarnished truth
dig cse.ogi.edu +nssearch
# the same, displaying only serial number and hostname
dig cse.ogi.edu +nssearch | cut -d' ' -f4,11

解釋TTL數(shù)值

我喜愛google有很多原因,其中一個原因就是它在我的WEB日志中提供了精確的鏈接,它會使我很容易地指出哪種類型的查詢引導(dǎo)人們來訪問這個站點的頁面。

出乎意料的是,我已經(jīng)看到很多請求要求查詢TTL數(shù)值,我從來沒想到TTL會成為最受歡迎的東東,但是你每天都在學(xué)習(xí)新東西,所以,應(yīng)大家的要求,這里稍微介紹一下TTL。

如果你從本地DNS查詢互聯(lián)網(wǎng)地址,服務(wù)器指出從哪里獲得權(quán)威的答案并獲得地址,一旦服務(wù)器獲知答案,它將這個答案保存在本地緩存中以免你在稍后的時間內(nèi)再次查詢同樣的地址,這樣它就會很快地從緩存中獲取你要的答案,比你再次從internet查詢要快很多。

當(dāng)域管理員配置DNS記錄時,他們可以決定這個記錄可以在緩存中保存多長時間,這就是TTL數(shù)值(通常用多少秒來表示)。

通常地,遠端服務(wù)器一般對記錄的緩存只保存TTL數(shù)值長的時間。時間過期后,服務(wù)器會刷新它的本地緩存并重新查詢一個權(quán)威答案。

當(dāng)你用dig來查詢DNS服務(wù)器某條記錄時,服務(wù)器會告訴dig這條記錄可以在緩存中保持的時間長短。舉個例子,像上面寫的那樣,gmail.com域的MX記錄的TTL值是300s,gmail.com域的管理員要求遠端服務(wù)器緩存它的MX記錄不能高于5分鐘,所以當(dāng)你第一次查詢那個記錄(gmail.com的MX記錄)時,dig會告訴你一個300的TTL。

$ dig +nocmd gmail.com MX +noall +answer
gmail.com. 300 IN MX 20 gsmtp57.google.com.
gmail.com. 300 IN MX 10 gsmtp171.google.com.
如果你一段時間后再去查,你會發(fā)現(xiàn)TTL值減少為280(中間隔了20s)。
$ dig +nocmd gmail.com MX +noall +answer
gmail.com. 280 IN MX 10 gsmtp171.google.com.
gmail.com. 280 IN MX 20 gsmtp57.google.com.
如果你的時間計算得足夠好,你會獲取這條記錄的最后生存時間。
$ dig +nocmd gmail.com MX +noall +answer
gmail.com. 1 IN MX 10 gsmtp171.google.com.
gmail.com. 1 IN MX 20 gsmtp57.google.com.

在那之后,你查詢的DNS服務(wù)器會“忘記”這個問題的答案,在你下次查詢這條記錄時,整個循環(huán)又將開始(本例子中是300s)。

在 unix 和 linux 下,建議大家使用 dig 命令來代替 nslookup。 dig 命令的功能比 nslookup 強大很多,不像 nslookkup 還得 set 來 set 去的,怪麻煩的。

下面是 dig 的一些比較常用的命令:

# dig 最基本的用法
dig @server qianlong.com
# 用 dig 查看 zone 數(shù)據(jù)傳輸
dig @server qianlong.com AXFR
# 用 dig 查看 zone 數(shù)據(jù)的增量傳輸
dig @server qianlong.com IXFR=N
# 用 dig 查看反向解析
dig -x 124.42.102.203 @server
# 查找一個域的授權(quán) dns 服務(wù)器
dig qianlong.com +nssearch
# 從根服務(wù)器開始追蹤一個域名的解析過程
dig qianlong.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

********************************
你可以到 www.isc.org 去下載一個 bind for windows 的版本安裝,安裝后就可以在 windows 上使用 dig 命令了。^O^
ftp://ftp.isc.org/isc/bind/contrib/ntbind-9.3.0/BIND9.3.0.zip
*********************************

用途

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

描述

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

標(biāo)志

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

參數(shù)

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

查詢 查詢選項(請參閱查詢選項)。

查詢選項

dig 提供查詢選項號,它影響搜索方式和結(jié)果顯示。一些在查詢請求報頭設(shè)置或復(fù)位標(biāo)志位,一部分決定顯示哪些回復(fù)信息,其它的確定超時和重試戰(zhàn)略。每個查詢選項被帶前綴(+)的關(guān)鍵字標(biāo)識。一些關(guān)鍵字設(shè)置或復(fù)位一個選項。通常前綴是求反關(guān)鍵字含義的字符串 no。其他關(guān)鍵字分配各選項的值,比如超時時間間隔。它們的格式形如 +keyword=value。查詢選項是:

+[no]tcp
查詢域名服務(wù)器時使用 [不使用] TCP。缺省行為是使用 UDP,除非是 AXFR 或 IXFR 請求,才使用 TCP 連接。
+[no]vc
查詢名稱服務(wù)器時使用 [不使用] TCP。+[no]tcp 的備用語法提供了向下兼容。 vc 代表虛電路。
+[no]ignore
忽略 UDP 響應(yīng)的中斷,而不是用 TCP 重試。缺省情況運行 TCP 重試。
+domain=somename
設(shè)定包含單個域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域偽指令指定,并且啟用搜索列表處理,好像給定了 +search 選項。
+[no]search
使用 [不使用] 搜索列表或 resolv.conf 中的域偽指令(如果有的話)定義的搜索列表。缺省情況不使用搜索列表。
+[no]defname
不建議看作 +[no]search 的同義詞。
+[no]aaonly
該選項不做任何事。它用來提供對設(shè)置成未實現(xiàn)解析器標(biāo)志的 dig 的舊版本的兼容性。
+[no]adflag
在查詢中設(shè)置 [不設(shè)置] AD(真實數(shù)據(jù))位。目前 AD 位只在響應(yīng)中有標(biāo)準(zhǔn)含義,而查詢中沒有,但是出于完整性考慮在查詢中這種性能可以設(shè)置。
+[no]cdflag
在查詢中設(shè)置 [不設(shè)置] CD(檢查禁用)位。它請求服務(wù)器不運行響應(yīng)信息的 DNSSEC 合法性。
+[no]recursive
切換查詢中的 RD(要求遞歸)位設(shè)置。在缺省情況下設(shè)置該位,也就是說 dig 正常情形下發(fā)送遞歸查詢。當(dāng)使用查詢選項 +nssearch 或 +trace 時,遞歸自動禁用。
+[no]nssearch
這個選項被設(shè)置時,dig 試圖尋找包含待搜名稱的網(wǎng)段的權(quán)威域名服務(wù)器,并顯示網(wǎng)段中每臺域名服務(wù)器的 SOA 記錄。
+[no]trace
切換為待查詢名稱從根名稱服務(wù)器開始的代理路徑跟蹤。缺省情況不使用跟蹤。一旦啟用跟蹤,dig 使用迭代查詢解析待查詢名稱。它將按照從根服務(wù)器的參照,顯示來自每臺使用解析查詢的服務(wù)器的應(yīng)答。
+[no]cmd
設(shè)定在輸出中顯示指出 dig 版本及其所用的查詢選項的初始注釋。缺省情況下顯示注釋。
+[no]short
提供簡要答復(fù)。缺省值是以冗長格式顯示答復(fù)信息。
+[no]identify
當(dāng)啟用 +short 選項時,顯示 [或不顯示] 提供應(yīng)答的 IP 地址和端口號。如果請求簡短格式應(yīng)答,缺省情況不顯示提供應(yīng)答的服務(wù)器的源地址和端口號。
+[no]comments
切換輸出中的注釋行顯示。缺省值是顯示注釋。
+[no]stats
該查詢選項設(shè)定顯示統(tǒng)計信息:查詢進行時,應(yīng)答的大小等等。缺省顯示查詢統(tǒng)計信息。
+[no]qr
顯示 [不顯示] 發(fā)送的查詢請求。缺省不顯示。
+[no]question
當(dāng)返回應(yīng)答時,顯示 [不顯示] 查詢請求的問題部分。缺省作為注釋顯示問題部分。
+[no]answer
顯示 [不顯示] 應(yīng)答的回答部分。缺省顯示。
+[no]authority
顯示 [不顯示] 應(yīng)答的權(quán)限部分。缺省顯示。
+[no]additional
顯示 [不顯示] 應(yīng)答的附加部分。缺省顯示。
+[no]all
設(shè)置或清除所有顯示標(biāo)志。
+time=T
為查詢設(shè)置超時時間為 T 秒。缺省是5秒。如果將 T 設(shè)置為小于1的數(shù),則以1秒作為查詢超時時間。
+tries=A
設(shè)置向服務(wù)器發(fā)送 UDP 查詢請求的重試次數(shù)為 A,代替缺省的 3 次。如果把 A 小于或等于 0,則采用 1 為重試次數(shù)。
+ndots=D
出于完全考慮,設(shè)置必須出現(xiàn)在名稱 D 的點數(shù)。缺省值是使用在 /etc/resolv.conf 中的 ndots 語句定義的,或者是 1,如果沒有 ndots 語句的話。帶更少點數(shù)的名稱被解釋為相對名稱,并通過搜索列表中的域或文件 /etc/resolv.conf 中的域偽指令進行搜索。
+bufsize=B
設(shè)置使用 EDNS0 的 UDP 消息緩沖區(qū)大小為 B 字節(jié)。緩沖區(qū)的最大值和最小值分別為 65535 和 0。超出這個范圍的值自動舍入到最近的有效值。
+[no]multiline
以詳細的多行格式顯示類似 SOA 的記錄,并附帶可讀注釋。缺省值是每單個行上顯示一條記錄,以便于計算機解析 dig 的輸出。

多條查詢

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

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

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

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

示例

一個典型的 dig 調(diào)用類似:

dig @server name type其中:

server

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

name

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

type

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

贊(4)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明出處:三五互聯(lián)知識庫 » Linux Dig命令使用大全

登錄

找回密碼

注冊