Dig全稱Domain Information Groper。是一個功能強(qiáng)大的命令行工具,用于查詢DNS域名服務(wù)器。
使用dig命令,您可以查詢各種DNS記錄的信息,包括主機(jī)地址,郵件交換和域名服務(wù)器。
它是系統(tǒng)管理員中用于排除DNS問題的最常用工具,它具很高的靈活性和易用性。
在本教程中我們將說明如何在Linux使用dig命令查詢DNS。包括在Linux發(fā)行版安裝dig。了解dig的輸出,僅輸出應(yīng)答,詳細(xì)的應(yīng)答ANSWER信息。
指定域名服務(wù)器查詢,了解DNS的記錄類型,查詢CNAME記錄,查詢TXT記錄,批量查詢,反向DNS查找,查詢所有記錄,查詢NS記錄,查詢MX記錄,配置dig。
安裝 dig命令
你可以運(yùn)行命令dig -v
檢查dig版本來驗(yàn)證您的系統(tǒng)是否已安裝dig。如果你的系統(tǒng)已經(jīng)安裝dig命令,dig -v
命令將會打印版本號DiG 9.11.3-1ubuntu1.1-Ubuntu
。
如果您的Linux系統(tǒng)還有沒有安裝dig命令,dig -v
命令將會打印dig: command not found
,則可以使用發(fā)行版的軟件包管理器來安裝它。
如果你的計(jì)算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版,比如Ubuntu,Linux mint。請運(yùn)行命令sudo apt install dnsutils
安裝dig。
如果你的計(jì)算機(jī)運(yùn)行的是基于RedHat的Linux發(fā)行版,比如CentOS,F(xiàn)edora等發(fā)行版,請運(yùn)行命令sudo yum install bind-utils
安裝dig。
如果你是Arch用戶可以運(yùn)行命令sudo pacman -S bind-tools
安裝dig。
sudo apt install dnsutils
sudo yum install bind-utils
sudo pacman -S bind-tools
了解dig輸出
使用dig命令的最簡單的方式,不指定任何選項(xiàng)運(yùn)行dig命令。dig命令打印非常詳細(xì)的輸出。例如命令dig linux.org
將會查詢linux.org
域的信息。
dig linux.org
; <<>> DiG 9.10.3-P4-Ubuntu <<>> linux.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57452
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 300 IN A 104.27.167.219
linux.org. 300 IN A 104.27.166.219
;; Query time: 256 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jul 19 11:12:41 CST 2019
;; MSG SIZE rcvd: 59
輸出的第一行打印已安裝的dig版本號以及運(yùn)行的DNS查詢。第二行顯示全局選項(xiàng),默認(rèn)是cmd。
如果您不希望第二行包含在輸出中,可以使用+nocmd
選項(xiàng)。此選項(xiàng)必須是dig
命令后的第一個參數(shù)。
Got Answer應(yīng)答包括從請求授權(quán)后來自DNS服務(wù)器應(yīng)答的詳細(xì)信息。此部分的第一行是標(biāo)題,包括操作碼(由dig執(zhí)行的操作)和操作的狀態(tài)。
狀態(tài)NOERROR
意味著所請求的都已授權(quán)查詢并且沒有任何問題??梢允褂?code>+nocomments選項(xiàng)刪除應(yīng)答的輸出。
OPT PSEUDOSECTION此部分僅在較新dig版本顯示。您可以在此處閱讀DNS擴(kuò)展機(jī)制EDNS的更多信息。如果您不希望此部分包含在輸出中,請使用+noedns
選項(xiàng)。
QUESTION顯示dig命令要查詢的記錄類型。默認(rèn)是A記錄,您可以使用+noquestion
選項(xiàng)禁用此部分的輸出。
ANSWER章節(jié)為我們提供了一個應(yīng)答。正如我們提到的,默認(rèn)情況下dig
會請求A記錄。這里域linux.org
指向IP地址104.18.59.123
。
如果你想關(guān)閉ANSWER輸出,可以使用+noanswer
選項(xiàng)從輸出中刪除此部分。
AUTHORITY SECTION告訴我們哪些服務(wù)器是應(yīng)答有詢域的DNS的AUTHORITY
。您可以使用+noauthority
選項(xiàng)禁用輸出的此部分。
ADDITIONAL SECTION為我們提供了有關(guān)AUTHORITY DNS服務(wù)器的IP地址的信息。
Query time這是dig輸出的最后一部分,其中包含查詢的統(tǒng)計(jì)信息。您可以使用+nostats
選項(xiàng)禁用此信息。
僅輸出應(yīng)答ANSWER
在大多數(shù)情況下,您只想快速查詢ANSWER SECTION,要獲得查詢的簡短應(yīng)答ANSWER。
請使用dig命令的+short
選項(xiàng),例如命令dig linux.org +short
僅打印A記錄的IP地址。
104.18.59.123
104.18.58.123
詳細(xì)的應(yīng)答ANSWER
想要更詳細(xì)的ANSWER應(yīng)答信息,請使用dig命令的+noall
選項(xiàng)關(guān)閉所有結(jié)果,然后僅使用+answer
選項(xiàng),展開ANSWER的詳細(xì)信息。
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org. 67 IN A 104.18.58.123
linux.org. 67 IN A 104.18.59.123
指定域名服務(wù)器查詢
默認(rèn)情況下,如果未指定DNS服務(wù)器,dig將使用etc/resolv.conf
文件中列出的域名服務(wù)器。
要指定查詢的DNS服務(wù)器,請使用@
符號,后跟域名服務(wù)器IP地址或主機(jī)名運(yùn)行dig命令。
例如命令dig linux.org @8.8.8.8
使用Google DNS服務(wù)器8.8.8.8
查詢linux.org
域名信息。
dig linux.org @8.8.8.8
DNS 記錄類型
Dig命令允許您通過將記錄類型附加到查詢末尾來運(yùn)行指定DNS記錄類型的查詢。在下一節(jié)中,我們將向您展示如何搜索最常見的記錄。
例如A記錄(IP地址),CNAME(別名),TXT(文本記錄),MX記錄(郵件交換)和NS(域名服務(wù)器記錄)。
查詢A記錄
獲取域名的所有A記錄地址,請使用dig
命令的a
選項(xiàng)。如果未指定DNS記錄類型,dig將請求A記錄。
您也可以在不指定a
選項(xiàng)查詢A記錄,運(yùn)行命令dig +nocmd google.com a +noall +answer
。
dig +nocmd google.com a +noall +answer
google.com. 300 IN A 172.217.27.46
查詢CNAME別名記錄
要查找指定域名的別名記錄,請使用dig
命令的cname
選項(xiàng)。
命令dig +nocmd mail.google.com cname +noall +answer
將會查詢mail.google.com的別名記錄。
dig +nocmd mail.google.com cname +noall +answer
查詢TXT記錄
使用dig命令的txt
選項(xiàng)可檢索指定域名的所有TXT記錄。
dig +nocmd google.com txt +noall +answer
查詢MX記錄
獲取指定域名所有郵件服務(wù)器列表,請使用dig命令的mx
選項(xiàng)。
dig +nocmd google.com mx +noall +answer
查詢NS記錄
要查找指定域的名稱服務(wù)器,請使用dig命令的ns
選項(xiàng)。
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.
查詢所有記錄
使用any
選項(xiàng)可獲取指定域名的所有DNS記錄。
dig +nocmd google.com any +noall +answer
反向DNS查找
要查詢與指定IP地址關(guān)聯(lián)的主機(jī)名或者域名,可以使用dig命令的-x
選項(xiàng),執(zhí)行反向DNS解釋。
例如命令dig -x 208.118.235.148 +noall +answer
執(zhí)行反向DNS解釋,查找ip地址208.118.235.148
的域名。
從輸出中可以看到IP地址208.118.235.148
與主機(jī)名wildebeest.gnu.org
相關(guān)聯(lián)。
dig -x 208.118.235.148 +noall +answer
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
批量查詢
如果要使用dig命令查詢大量的域名,可以將它們添加到文件中,每行一個域名,然后使用dig的-f
選項(xiàng)指定文件名。
例如命令dig -f domains.txt +short
查詢domains.txt
文件的所有域名。
dig -f domains.txt +short
google.com
myfreax.com
linux.org
domains.txt
配置 dig
可以在${HOME}/.digrc
文件為每個用戶設(shè)置選項(xiàng)來控制dig命令的行為。
如果.digrc
文件指定的選項(xiàng)與用戶在命令行指定選項(xiàng)沖突,則優(yōu)先使用命令行指定的選項(xiàng)。
例如,如果只想打印應(yīng)答部分,請使用你喜歡的文本編輯器編輯文件,在本教程中我們將使用vim編輯文件~/.digrc
。
vim ~/.digrc
+nocmd +noall +answer
~/.digrc
結(jié)論
至此您應(yīng)該能夠解決大多數(shù)與DNS相關(guān)的問題,如果您喜歡我們的內(nèi)容,歡迎轉(zhuǎn)發(fā)。
-
Linux
+關(guān)注
關(guān)注
87文章
11212瀏覽量
208724 -
DNS
+關(guān)注
關(guān)注
0文章
215瀏覽量
19771 -
命令
+關(guān)注
關(guān)注
5文章
678瀏覽量
21966 -
Dig
+關(guān)注
關(guān)注
0文章
2瀏覽量
6139
發(fā)布評論請先 登錄
相關(guān)推薦
評論