為你介紹Linux系統(tǒng)下解析域名的dig命令!
今天馬哥教育要跟大家分享的文章是關(guān)于Linux系統(tǒng)下解析域名的dig命令!正在從事Linux相關(guān)工作的小伙伴們來看一看希望對(duì)大家有所幫助哦! Linux入門新手和正在Linux學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?
一、查詢單個(gè)域名的DNS信息
dig 命令最典型的用法就是查詢單個(gè)主機(jī)的信息。
Linuxidc@Linuxidc:~$ dig www.Linuxidc.com
; < <>> DiG 9.11.3-1Ubuntu1.5-Ubuntu < <>> www.Linuxidc.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 17774
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.Linuxidc.com. IN A
;; ANSWER SECTION:
www.Linuxidc.com. 5 IN A 122.228.238.15
www.Linuxidc.com. 5 IN A 106.42.25.203
;; Query time: 10 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 10:55:35 CST 2019
;; MSG SIZE rcvd: 77
dig命令默認(rèn)的輸出信息比較豐富,大概可以分為。5個(gè)部分
第一部分顯示dig命令的版本和輸入的參數(shù)。
第二部分顯示服務(wù)返回的一些技術(shù)詳情,比較重要的是status。如果status的值為NOERROR則說明本次查詢成功結(jié)束。
第三部分中的"QUESTION SECTION"顯示我們要查詢的域名。
第四部分的"ANSWER SECTION"是查詢到的結(jié)果。
第五部分則是本次查詢的一些統(tǒng)計(jì)信息,比如用了多長(zhǎng)時(shí)間,查詢了哪個(gè)DNS服務(wù)器,在什么時(shí)間進(jìn)行的查詢等等。
默認(rèn)情況下dig命令查詢A記錄,上圖中顯示的A即說明查詢的記錄類型為A記錄。在嘗試查詢其它類型的記錄前讓我們先來了解一下常見的DNS記錄類型。
二、常見DNS記錄的類型
類型目的
A地址記錄,用來指定域名的IPv4地址,如果需要將域名指向一個(gè)IP地址,就需要添加A記錄。
AAAA用來指定主機(jī)名(或域名)對(duì)應(yīng)的IPv6地址記錄。
CNAME如果需要將域名指向另一個(gè)域名,再由另一個(gè)域名提供ip地址,就需要添加CNAME記錄。
MX如果需要設(shè)置郵箱,讓郵箱能夠收到郵件,需要添加MX記錄。
NS域名服務(wù)器記錄,如果需要把子域名交給其他DNS服務(wù)器解析,就需要添加NS記錄。
SOA SOA這種記錄是所有區(qū)域性文件中的強(qiáng)制性記錄。它必須是一個(gè)文件中的第一個(gè)記錄。
TXT可以寫任何東西,長(zhǎng)度限制為255。絕大多數(shù)的TXT記錄是用來做SPF記錄(反垃圾郵件)。
三、查詢CNAME類型的記錄
除了A記錄,常見的DNS記錄還有CNAME,我們可以在查詢時(shí)指定要查詢的DNS記錄類型:
Linuxidc@Linuxidc:~$ dig m.Linuxidc.com CNAME
; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> m.Linuxidc.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 61349
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;m.Linuxidc.com. IN CNAME
;; Query time: 26 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:20:34 CST 2019
;; MSG SIZE rcvd: 43
這樣結(jié)果中就只有CNAME的記錄。其實(shí)我們可以在查詢中指定任何DNS記錄的類型。
四、從指定的DNS服務(wù)器上查詢
由于一些原因,希望從指定的DNS服務(wù)器上進(jìn)行查詢(從默認(rèn)的DNS服務(wù)器上獲得的結(jié)果可能不準(zhǔn)確)。指定DNS服務(wù)器的方式為使用@符號(hào):
Linuxidc@Linuxidc:~$ dig @8.8.8.8 m.Linuxidc.com
; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> @8.8.8.8 m.Linuxidc.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 38966
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;m.Linuxidc.com. IN A
;; ANSWER SECTION:
m.Linuxidc.com. 199 IN A 122.228.238.71
m.Linuxidc.com. 199 IN A 113.107.238.155
;; Query time: 120 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 03 11:21:48 CST 2019
;; MSG SIZE rcvd: 75
從上圖可以看到本次查詢的DNS服務(wù)器為8.8.8.8。
如果不指定DNS服務(wù)器,dig會(huì)依次使用/etc/resolv.conf里的地址作為DNS服務(wù)器:
Linuxidc@Linuxidc:~$ dig m.Linuxidc.com
上面查詢的DNS服務(wù)器就變成了:
五、反向查詢
在前面的查詢中我們指定了查詢服務(wù)器為8.8.8.8,這是誰家的DNS服務(wù)器?其實(shí)我們可以使用dig的-x選項(xiàng)來反向解析IP地址對(duì)應(yīng)的域名:
Linuxidc@Linuxidc:~$ dig -x 8.8.8.8 +short
google-public-dns-a.google.com.
好吧,應(yīng)該是Google的,可以放心使用了。
六、控制顯示結(jié)果
dig命令默認(rèn)返回的結(jié)果展示詳細(xì)的信息,如果要獲得精簡(jiǎn)的結(jié)果可以使用+short選項(xiàng):
Linuxidc@Linuxidc:~$ dig +short m.Linuxidc.com
122.228.238.15
106.119.182.141
這下顯示的結(jié)果就清爽多了。
其實(shí)我們還可以通過更多選項(xiàng)來控制輸出的內(nèi)容,比如只想顯示"ANSWER SECTION"的內(nèi)容:
這個(gè)結(jié)果很不錯(cuò),就是使用的選項(xiàng)太多了(dig命令有很多這樣的選項(xiàng),詳情請(qǐng)參考使用手冊(cè))。我們可以換一種優(yōu)雅一些的方式來實(shí)現(xiàn)和上面相同的結(jié)果:
Linuxidc@Linuxidc:~$ dig m.Linuxidc.com +noall +answer
; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> m.Linuxidc.com +noall +answer
;; global options: +cmd
m.Linuxidc.com. 5 IN A 113.107.238.212
m.Linuxidc.com. 5 IN A 122.228.238.15
跟蹤整個(gè)查詢過程
如果你好奇dig命令執(zhí)行查詢時(shí)都經(jīng)歷了哪些過程,你可以嘗試使用+trace選項(xiàng)。它會(huì)輸出從根域到最終結(jié)果的所有信息:
Linuxidc@Linuxidc:~$ dig sohu.com @202.102.134.68 -p 53 -t MX +trace
; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> sohu.com @202.102.134.68 -p 53 -t MX +trace
;; global options: +cmd
. 482761 IN NS f.root-servers.net.
. 482761 IN NS a.root-servers.net.
. 482761 IN NS c.root-servers.net.
. 482761 IN NS b.root-servers.net.
. 482761 IN NS j.root-servers.net.
. 482761 IN NS d.root-servers.net.
. 482761 IN NS k.root-servers.net.
. 482761 IN NS e.root-servers.net.
. 482761 IN NS h.root-servers.net.
. 482761 IN NS i.root-servers.net.
. 482761 IN NS m.root-servers.net.
. 482761 IN NS g.root-servers.net.
. 482761 IN NS l.root-servers.net.
;; Received 239 bytes from 202.102.134.68#53(202.102.134.68) in 40 ms
com. 172800 IN NS d.gtld-servers.net.
上圖中顯示的并不是一個(gè)完整的結(jié)果,感興趣的朋友可以自己嘗試。
顯示13個(gè)根域服務(wù)器
internet上有13個(gè)根域服務(wù)器,使用不加參數(shù)的dig命令顯示這些服務(wù)器信息
Linuxidc@Linuxidc:~$ dig
; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 41525
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 5 IN NS b.root-servers.net.
. 5 IN NS c.root-servers.net.
. 5 IN NS d.root-servers.net.
. 5 IN NS e.root-servers.net.
. 5 IN NS f.root-servers.net.
. 5 IN NS g.root-servers.net.
. 5 IN NS h.root-servers.net.
. 5 IN NS i.root-servers.net.
. 5 IN NS j.root-servers.net.
. 5 IN NS k.root-servers.net.
. 5 IN NS l.root-servers.net.
. 5 IN NS m.root-servers.net.
. 5 IN NS a.root-servers.net.
;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:37:11 CST 2019
;; MSG SIZE rcvd: 239
dig 是一個(gè)很給力DNS查詢工具,本文介紹了其常見用法。
以上就是馬哥教育今天為大家分享的關(guān)于Linux系統(tǒng)下解析域名的dig命令!的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)哦!
原文來自:https://www.Linuxidc.com/Linux/2019-03/157239.htm