(轉)Linux命令:使用dig命令解析域名
Linux命令:使用dig命令解析域名
Linux下解析域名除了使用nslookup之外,開可以使用dig命令來解析域名,dig命令可以得到更多的域名信息。
dig的全稱是 (domain information groper)。它是一個用來靈活探測DNS的工具。它會打印出DNS name server的回應。
一、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(域信息搜索器)命令是一個用於詢問 DNS 域名服務器的靈活的工具。它執行 DNS 搜索,顯示從受請求的域名服務器返回的答復。多數 DNS 管理員利用 dig 作為 DNS 問題的故障診斷,因為它靈活性好、易用、輸出清晰。
雖然通常情況下 dig 使用命令行參數,但它也可以按批處理模式從文件讀取搜索請求。不同於早期版本,dig 的 BIND9 實現允許從命令行發出多個查詢。除非被告知請求特定域名服務器,dig 將嘗試 /etc/resolv.conf 中列舉的所有服務器。當未指定任何命令行參數或選項時,dig 將對“.”(根)執行 NS 查詢。
二、dig命令選項
-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 中的服務器聲明實現。 |
三、查詢選項
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 選項)可以被下面的查詢特別選項重設。例如:
[root@RHEL6 ~]#dig +qr www.lampbo.org any -x 127.0.0.1 isc.org ns +noqr
顯示 dig 如何從命令行出發進行三個查詢:一個針對 www.lampbo.org的任意查詢、一個 127.0.0.1 的逆向查詢,以及一個 lampbo.org 的 NS 記錄查詢。應用了 +qr 的全局查詢選項,以便 dig 顯示進行每條查詢的初始查詢。最後那個查詢有一個本地查詢選項 +noqr,表示 dig 在搜索 lampbo.org 的 NS 記錄時不顯示初始查詢。
五、dig典型用法
dig 調用類似:
[root@RHEL6 ~]#dig @server name type
其中:
server 待查詢名稱服務器的名稱或 IP 地址。可以是用點分隔的 IPv4 地址或用冒號分隔的 IPv6 地址。當由主機提供服務器參數時,dig 在查詢域名服務器前先解析那個名稱。如果沒有服務器參數可以提供,dig 參考 /etc/resolv.conf,然後查詢列舉在那裏的域名服務器。顯示來自域名服務器的應答。
name 將要查詢的資源記錄的名稱。
type 顯示所需的查詢類型 - ANY、A、MX、SIG,以及任何有效查詢類型等。如果不提供任何類型參數,dig 將對紀錄 A 執行查詢。
6、示例
(1)、顯示13個根域服務器
internet上有13個根域服務器,使用不加參數的dig命令顯示這些服務器信息
[root@RHEL6 ~]#dig ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63379 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 126666 IN NS m.root-servers.net. . 126666 IN NS f.root-servers.net. . 126666 IN NS b.root-servers.net. . 126666 IN NS j.root-servers.net. . 126666 IN NS c.root-servers.net. . 126666 IN NS k.root-servers.net. . 126666 IN NS e.root-servers.net. . 126666 IN NS g.root-servers.net. . 126666 IN NS i.root-servers.net. . 126666 IN NS h.root-servers.net. . 126666 IN NS l.root-servers.net. . 126666 IN NS d.root-servers.net. . 126666 IN NS a.root-servers.net. ;; ADDITIONAL SECTION: a.root-servers.net. 557725 IN A 198.41.0.4 b.root-servers.net. 490757 IN A 192.228.79.201 c.root-servers.net. 494796 IN A 192.33.4.12 d.root-servers.net. 604214 IN A 128.8.10.90 e.root-servers.net. 491068 IN A 192.203.230.10 f.root-servers.net. 492932 IN A 192.5.5.241 g.root-servers.net. 400973 IN A 192.112.36.4 h.root-servers.net. 492311 IN A 128.63.2.53 i.root-servers.net. 349084 IN A 192.36.148.17 j.root-servers.net. 492099 IN A 192.58.128.30 k.root-servers.net. 403770 IN A 193.0.14.129 l.root-servers.net. 308080 IN A 199.7.83.42 m.root-servers.net. 217613 IN A 202.12.27.33 ;; Query time: 12 msec ;; SERVER: 202.96.69.38#53(202.96.69.38) ;; WHEN: Fri May 25 22:45:50 2012 ;; MSG SIZE rcvd: 436
(2)、常用查詢
例如查詢www.baidu.com這個域名的信息
[root@RHEL6 ~]#dig www.baidu.com ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9532 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 805 IN CNAME www.a.shifen.com. www.a.shifen.com. 251 IN A 61.135.169.105 www.a.shifen.com. 251 IN A 61.135.169.125 ;; AUTHORITY SECTION: a.shifen.com. 65426 IN NS ns5.a.shifen.com. a.shifen.com. 65426 IN NS ns4.a.shifen.com. a.shifen.com. 65426 IN NS ns9.a.shifen.com. a.shifen.com. 65426 IN NS ns7.a.shifen.com. ;; ADDITIONAL SECTION: ns4.a.shifen.com. 450 IN A 123.125.113.67 ns7.a.shifen.com. 216 IN A 220.181.38.47 ns9.a.shifen.com. 263 IN A 61.135.166.226 ;; Query time: 11 msec ;; SERVER: 202.96.69.38#53(202.96.69.38) ;; WHEN: Fri May 25 22:48:36 2012 ;; MSG SIZE rcvd: 210
解析過程說明:
· DNS客戶端發包到DNS服務端請求www.baidu.com的IP地址,由於有一條CNAME記錄;
· DNS客戶端會訪問www.a.shifen.com的域名服務器(相當於是訪問www.baidu.com的域名服務器);
· 在這裏www.a.shifen.com的域名服務器是一個負責DNS查詢流量均衡的調度器,負責把DNS請求調度到ns5.a.shifen.com、ns6.a.shifen.com等域名服務器上
· 最後這些標記了NS的域名服務器會把百度的IP返回給DNS客戶端
· 然後我們就得到了www.baidu.com的IP地址
(3)使用 +[no]short 運行簡短輸出
[root@RHEL6 ~]#dig sohu.com @202.102.134.68 -p 53 -t MX +short 10 sohumx.h.a.sohu.com. 5 sohumx1.sohu.com.
(4)、使用 +[no]trace 跟蹤域名解析過程
[root@RHEL6 ~]#dig sohu.com @202.102.134.68 -p 53 -t MX +trace ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> sohu.com @202.102.134.68 -p 5 3 -t MX +trace ;; global options: +cmd . 465774 IN NS m.root-servers.net. . 465774 IN NS h.root-servers.net. . 465774 IN NS a.root-servers.net. . 465774 IN NS b.root-servers.net. . 465774 IN NS e.root-servers.net. . 465774 IN NS l.root-servers.net. . 465774 IN NS j.root-servers.net. . 465774 IN NS g.root-servers.net. . 465774 IN NS c.root-servers.net. . 465774 IN NS d.root-servers.net. . 465774 IN NS i.root-servers.net. . 465774 IN NS k.root-servers.net. . 465774 IN NS f.root-servers.net. . 465802 IN RRSIG NS 8 0 518400 20120531000000 201 20523230000 56158 . rnJgCZ4R9UnWLKKme23oJa9wh5q9dYNvHZvwsrFtAHe8OtE8qNdeVDvh jyc 3eJktGOMT77U336stCRE1b0KzPD7CZe04+plO9Ckm0wkFYFReg2Aa MTLxqI//hcUnIfixLXeq4bULt0 rjfQTzjjh0d1vG9fPTbSIkgHle6WW5 +PM= ;; Received 397 bytes from 202.102.134.68#53(202.102.134.68) in 106 ms com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. ;; Received 486 bytes from 192.228.79.201#53(b.root-servers.net) in 270 ms sohu.com. 172800 IN NS dns.sohu.com. sohu.com. 172800 IN NS ns1.sohu.com. sohu.com. 172800 IN NS ns2.sohu.com. sohu.com. 172800 IN NS ns4.sohu.com. ;; Received 162 bytes from 192.33.14.30#53(b.gtld-servers.net) in 438 ms sohu.com. 600 IN MX 10 sohumx.h.a.sohu.com. sohu.com. 600 IN MX 5 sohumx1.sohu.com. sohu.com. 21600 IN NS ns2.sohu.com. sohu.com. 21600 IN NS dns.sohu.com. sohu.com. 21600 IN NS ns1.sohu.com. sohu.com. 21600 IN NS ns4.sohu.com. ;; Received 229 bytes from 121.14.0.41#53(ns4.sohu.com) in 70 ms
文章來源:http://www.lampbo.org/linux-xuexi/linux-base/linux-command-use-dig-resolve-domain.html
nslookup命令詳解
原文:http://blog.csdn.net/violet_echo_0908/article/details/52033725
nslookup命令用於查詢DNS的記錄,查看域名解析是否正常,在網絡故障的時候用來診斷網絡問題。 nslookup的用法相對來說還是蠻簡單的,主要是下面的幾個用法。
1 直接查詢
這個可能大家用到最多,查詢一個域名的A記錄。
nslookup domain [dns-server]
- 1
如果沒指定dns-server,用系統默認的dns服務器。下面是一個例子:
[root@localhost ~]# nslookup baidu.com
Server: 10.30.7.177
Address: 10.30.7.177#53
Non-authoritative answer:
Name: baidu.com
Address: 123.125.114.144
Name: baidu.com
Address: 111.13.101.208
Name: baidu.com
Address: 180.149.132.47
Name: baidu.com
Address: 220.181.57.217
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2 查詢其他記錄
直接查詢返回的是A記錄,我們可以指定參數,查詢其他記錄,比如AAAA、MX等。
nslookup -qt=type domain [dns-server]
- 1
其中,type可以是以下這些類型:
- A 地址記錄
- AAAA 地址記錄
- AFSDB Andrew文件系統數據庫服務器記錄
- ATMA ATM地址記錄
- CNAME 別名記錄
- HINFO 硬件配置記錄,包括CPU、操作系統信息
- ISDN 域名對應的ISDN號碼
- MB 存放指定郵箱的服務器
- MG 郵件組記錄
- MINFO 郵件組和郵箱的信息記錄
- MR 改名的郵箱記錄
- MX 郵件服務器記錄
- NS 名字服務器記錄
- PTR 反向記錄
- RP 負責人記錄
- RT 路由穿透記錄
- SRV TCP服務器信息記錄
- TXT 域名對應的文本信息
- X25 域名對應的X.25地址記錄
例如:
[root@localhost ~]# nslookup -qt=mx baidu.com 8.8.8.8
*** Invalid option: qt=mx
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: baidu.com
Address: 111.13.101.208
Name: baidu.com
Address: 123.125.114.144
Name: baidu.com
Address: 180.149.132.47
Name: baidu.com
Address: 220.181.57.217
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3 查詢更具體的信息
查詢語法:
nslookup –d [其他參數] domain [dns-server]
- 1
只要在查詢的時候,加上-d參數,即可查詢域名的緩存。
(轉)Linux命令:使用dig命令解析域名