Dig全稱Domain Information Groper。是一個功能強大的命令行工具,用于查詢DNS域名服務器。
使用dig命令,您可以查詢各種DNS記錄的信息,包括主機地址,郵件交換和域名服務器。
它是系統管理員中用于排除DNS問題的最常用工具,它具很高的靈活性和易用性。
在本教程中我們將說明如何在Linux使用dig命令查詢DNS。包括在Linux發行版安裝dig。了解dig的輸出,僅輸出應答,詳細的應答ANSWER信息。
指定域名服務器查詢,了解DNS的記錄類型,查詢CNAME記錄,查詢TXT記錄,批量查詢,反向DNS查找,查詢所有記錄,查詢NS記錄,查詢MX記錄,配置dig。
安裝 dig命令
你可以運行命令dig -v
檢查dig版本來驗證您的系統是否已安裝dig。如果你的系統已經安裝dig命令,dig -v
命令將會打印版本號DiG 9.11.3-1ubuntu1.1-Ubuntu
。
如果您的Linux系統還有沒有安裝dig命令,dig -v
命令將會打印dig: command not found
,則可以使用發行版的軟件包管理器來安裝它。
如果你的計算機運行的是基于Debian的Linux發行版,比如Ubuntu,Linux mint。請運行命令sudo apt install dnsutils
安裝dig。
如果你的計算機運行的是基于RedHat的Linux發行版,比如CentOS,Fedora等發行版,請運行命令sudo yum install bind-utils
安裝dig。
如果你是Arch用戶可以運行命令sudo pacman -S bind-tools
安裝dig。
sudo apt install dnsutils
sudo yum install bind-utils
sudo pacman -S bind-tools
了解dig輸出
使用dig命令的最簡單的方式,不指定任何選項運行dig命令。dig命令打印非常詳細的輸出。例如命令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版本號以及運行的DNS查詢。第二行顯示全局選項,默認是cmd。
如果您不希望第二行包含在輸出中,可以使用+nocmd
選項。此選項必須是dig
命令后的第一個參數。
Got Answer應答包括從請求授權后來自DNS服務器應答的詳細信息。此部分的第一行是標題,包括操作碼(由dig執行的操作)和操作的狀態。
狀態NOERROR
意味著所請求的都已授權查詢并且沒有任何問題。可以使用+nocomments
選項刪除應答的輸出。
OPT PSEUDOSECTION此部分僅在較新dig版本顯示。您可以在此處閱讀DNS擴展機制EDNS的更多信息。如果您不希望此部分包含在輸出中,請使用+noedns
選項。
QUESTION顯示dig命令要查詢的記錄類型。默認是A記錄,您可以使用+noquestion
選項禁用此部分的輸出。
ANSWER章節為我們提供了一個應答。正如我們提到的,默認情況下dig
會請求A記錄。這里域linux.org
指向IP地址104.18.59.123
。
如果你想關閉ANSWER輸出,可以使用+noanswer
選項從輸出中刪除此部分。
AUTHORITY SECTION告訴我們哪些服務器是應答有詢域的DNS的AUTHORITY
。您可以使用+noauthority
選項禁用輸出的此部分。
ADDITIONAL SECTION為我們提供了有關AUTHORITY DNS服務器的IP地址的信息。
Query time這是dig輸出的最后一部分,其中包含查詢的統計信息。您可以使用+nostats
選項禁用此信息。
僅輸出應答ANSWER
在大多數情況下,您只想快速查詢ANSWER SECTION,要獲得查詢的簡短應答ANSWER。
請使用dig命令的+short
選項,例如命令dig linux.org +short
僅打印A記錄的IP地址。
104.18.59.123
104.18.58.123
詳細的應答ANSWER
想要更詳細的ANSWER應答信息,請使用dig命令的+noall
選項關閉所有結果,然后僅使用+answer
選項,展開ANSWER的詳細信息。
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
指定域名服務器查詢
默認情況下,如果未指定DNS服務器,dig將使用etc/resolv.conf
文件中列出的域名服務器。
要指定查詢的DNS服務器,請使用@
符號,后跟域名服務器IP地址或主機名運行dig命令。
例如命令dig linux.org @8.8.8.8
使用Google DNS服務器8.8.8.8
查詢linux.org
域名信息。
dig linux.org @8.8.8.8
DNS 記錄類型
Dig命令允許您通過將記錄類型附加到查詢末尾來運行指定DNS記錄類型的查詢。在下一節中,我們將向您展示如何搜索最常見的記錄。
例如A記錄(IP地址),CNAME(別名),TXT(文本記錄),MX記錄(郵件交換)和NS(域名服務器記錄)。
查詢A記錄
獲取域名的所有A記錄地址,請使用dig
命令的a
選項。如果未指定DNS記錄類型,dig將請求A記錄。
您也可以在不指定a
選項查詢A記錄,運行命令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
選項。
命令dig +nocmd mail.google.com cname +noall +answer
將會查詢mail.google.com的別名記錄。
dig +nocmd mail.google.com cname +noall +answer
查詢TXT記錄
使用dig命令的txt
選項可檢索指定域名的所有TXT記錄。
dig +nocmd google.com txt +noall +answer
查詢MX記錄
獲取指定域名所有郵件服務器列表,請使用dig命令的mx
選項。
dig +nocmd google.com mx +noall +answer
查詢NS記錄
要查找指定域的名稱服務器,請使用dig命令的ns
選項。
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
選項可獲取指定域名的所有DNS記錄。
dig +nocmd google.com any +noall +answer
反向DNS查找
要查詢與指定IP地址關聯的主機名或者域名,可以使用dig命令的-x
選項,執行反向DNS解釋。
例如命令dig -x 208.118.235.148 +noall +answer
執行反向DNS解釋,查找ip地址208.118.235.148
的域名。
從輸出中可以看到IP地址208.118.235.148
與主機名wildebeest.gnu.org
相關聯。
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
選項指定文件名。
例如命令dig -f domains.txt +short
查詢domains.txt
文件的所有域名。
dig -f domains.txt +short
google.com
myfreax.com
linux.org
domains.txt
配置 dig
可以在${HOME}/.digrc
文件為每個用戶設置選項來控制dig命令的行為。
如果.digrc
文件指定的選項與用戶在命令行指定選項沖突,則優先使用命令行指定的選項。
例如,如果只想打印應答部分,請使用你喜歡的文本編輯器編輯文件,在本教程中我們將使用vim編輯文件~/.digrc
。
vim ~/.digrc
+nocmd +noall +answer
~/.digrc
結論
至此您應該能夠解決大多數與DNS相關的問題,如果您喜歡我們的內容,歡迎轉發。
-
Linux
+關注
關注
87文章
11296瀏覽量
209353 -
DNS
+關注
關注
0文章
218瀏覽量
19828 -
命令
+關注
關注
5文章
683瀏覽量
22015 -
Dig
+關注
關注
0文章
2瀏覽量
6144
發布評論請先 登錄
相關推薦
評論