溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下如何使用Dig解析域名

發(fā)布時(shí)間:2022-01-26 11:22:40 來(lái)源:億速云 閱讀:187 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Linux下如何使用Dig解析域名,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Dig是一個(gè)在類(lèi)Unix命令行模式下查詢DNS包括NS記錄,A記錄,MX記錄等相關(guān)信息的工具。Dig的源碼是ISC BIND大包的一部分,但是大多編譯和安裝Bind的文檔都不把它包括在內(nèi),但是在linux系統(tǒng)下,它通常是某個(gè)包的一部分,在Gentoo下是bind-tools,在Redhat/Fedora下是 bind-utils,或者在Debian下是 dnsutils。

Linux下如何使用Dig解析域名

查詢單個(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#53(127.0.0.53)
;; WHEN: Sun Mar 03 10:55:35 CST 2019
;; MSG SIZE  rcvd: 77
Linux下如何使用Dig解析域名

dig 命令默認(rèn)的輸出信息比較豐富,大概可以分為。 5 個(gè)部分

第一部分顯示 dig 命令的版本和輸入的參數(shù)。 第二部分顯示服務(wù)返回的一些技術(shù)詳情,比較重要的是 status。如果 status 的值為 NOERROR 則說(shuō)明本次查詢成功結(jié)束。 第三部分中的 “QUESTION SECTION” 顯示我們要查詢的域名。 第四部分的 “ANSWER SECTION” 是查詢到的結(jié)果。 第五部分則是本次查詢的一些統(tǒng)計(jì)信息,比如用了多長(zhǎng)時(shí)間,查詢了哪個(gè) DNS 服務(wù)器,在什么時(shí)間進(jìn)行的查詢等等。

默認(rèn)情況下 dig 命令查詢 A 記錄,上圖中顯示的 A 即說(shuō)明查詢的記錄類(lèi)型為 A 記錄。在嘗試查詢其它類(lèi)型的記錄前讓我們先來(lái)了解一下常見(jiàn)的 DNS 記錄類(lèi)型。

常見(jiàn) DNS 記錄的類(lèi)型

類(lèi)型目的

A 地址記錄,用來(lái)指定域名的 IPv4 地址,如果需要將域名指向一個(gè) IP 地址,就需要添加 A 記錄。 AAAA 用來(lái)指定主機(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 可以寫(xiě)任何東西,長(zhǎng)度限制為 255。絕大多數(shù)的 TXT記錄是用來(lái)做 SPF 記錄(反垃圾郵件)。

查詢 CNAME 類(lèi)型的記錄

除了A記錄,常見(jiàn)的DNS記錄還有CNAME,我們可以在查詢時(shí)指定要查詢的DNS記錄類(lèi)型:

linuxidc@linuxidc:~$ dig m.linuxidc.com CNAME

; > DiG 9.11.3-1ubuntu1.5-Ubuntu > m.linuxidc.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:20:34 CST 2019
;; MSG SIZE  rcvd: 43
Linux下如何使用Dig解析域名

這樣結(jié)果中就只有 CNAME 的記錄。其實(shí)我們可以在查詢中指定任何 DNS 記錄的類(lèi)型。

從指定的 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#53(8.8.8.8)
;; WHEN: Sun Mar 03 11:21:48 CST 2019
;; MSG SIZE  rcvd: 75
Linux下如何使用Dig解析域名

從上圖可以看到本次查詢的 DNS 服務(wù)器為 8.8.8.8。

如果不指定 DNS 服務(wù)器,dig 會(huì)依次使用 /etc/resolv.conf 里的地址作為 DNS 服務(wù)器:

Linux下如何使用Dig解析域名
Linux下解析域名命令-dig 命令使用詳解Linux下解析域名命令-dig 命令使用詳解
linuxidc@linuxidc:~$ dig m.linuxidc.com

上面查詢的 DNS 服務(wù)器就變成了:

Linux下如何使用Dig解析域名

反向查詢

在前面的查詢中我們指定了查詢服務(wù)器為 8.8.8.8,這是誰(shuí)家的 DNS 服務(wù)器?其實(shí)我們可以使用 dig 的 -x 選項(xiàng)來(lái)反向解析 IP 地址對(duì)應(yīng)的域名:

linuxidc@linuxidc:~$ dig -x 8.8.8.8 +short
google-public-dns-a.google.com.

Linux下如何使用Dig解析域名 好吧,應(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

Linux下如何使用Dig解析域名 這下顯示的結(jié)果就清爽多了。

其實(shí)我們還可以通過(guò)更多選項(xiàng)來(lái)控制輸出的內(nèi)容,比如只想顯示 “ANSWER SECTION” 的內(nèi)容:

Linux下如何使用Dig解析域名
Linux下解析域名命令-dig 命令使用詳解Linux下解析域名命令-dig 命令使用詳解

這個(gè)結(jié)果很不錯(cuò),就是使用的選項(xiàng)太多了(dig 命令有很多這樣的選項(xiàng),詳情請(qǐng)參考使用手冊(cè))。我們可以換一種優(yōu)雅一些的方式來(lái)實(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
Linux下如何使用Dig解析域名

跟蹤整個(gè)查詢過(guò)程

如果你好奇 dig 命令執(zhí)行查詢時(shí)都經(jīng)歷了哪些過(guò)程,你可以嘗試使用 +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 mscom.   172800 IN NS d.gtld-servers.net.
Linux下如何使用Dig解析域名

上圖中顯示的并不是一個(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#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:37:11 CST 2019
;; MSG SIZE  rcvd: 239
Linux下如何使用Dig解析域名


關(guān)于“Linux下如何使用Dig解析域名”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI