Linux下解析域名除了使用nslookup以外,開可使用dig命令來解析域名,dig命令能夠獲得更多的域名信息。dig 命令主要用來從 DNS 域名服務器查詢主機地址信息。dig的全稱是 (domain information groper )。它是一個用來靈活探測DNS的工具。它會打印出>DNS name server的迴應。 |
dig
命令最典型的用法就是查詢單個主機的信息。linux
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 命令的版本和輸入的參數。
第二部分顯示服務返回的一些技術詳情,比較重要的是 status。若是 status 的值爲 NOERROR 則說明本次查詢成功結束。
第三部分中的 "QUESTION SECTION" 顯示咱們要查詢的域名。
第四部分的 "ANSWER SECTION" 是查詢到的結果。
第五部分則是本次查詢的一些統計信息,好比用了多長時間,查詢了哪一個 DNS 服務器,在什麼時間進行的查詢等等。ubuntu
默認狀況下 dig 命令查詢 A 記錄,上圖中顯示的 A 即說明查詢的記錄類型爲 A 記錄。在嘗試查詢其它類型的記錄前讓咱們先來了解一下常見的 DNS 記錄類型。服務器
A 地址記錄,用來指定域名的 IPv4 地址,若是須要將域名指向一個 IP 地址,就須要添加 A 記錄。
AAAA 用來指定主機名(或域名)對應的 IPv6 地址記錄。
CNAME 若是須要將域名指向另外一個域名,再由另外一個域名提供 ip 地址,就須要添加 CNAME 記錄。
MX 若是須要設置郵箱,讓郵箱可以收到郵件,須要添加 MX 記錄。
NS 域名服務器記錄,若是須要把子域名交給其餘 DNS 服務器解析,就須要添加 NS 記錄。
SOA SOA 這種記錄是全部區域性文件中的強制性記錄。它必須是一個文件中的第一個記錄。
TXT 能夠寫任何東西,長度限制爲 255。絕大多數的 TXT記錄是用來作 SPF 記錄(反垃圾郵件)。dom
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
這樣結果中就只有 CNAME 的記錄。其實咱們能夠在查詢中指定任何 DNS 記錄的類型。工具
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 服務器爲 8.8.8.8。google
linuxidc@linuxidc:~$ dig m.linuxidc.com
linuxidc@linuxidc:~$ dig -x 8.8.8.8 +short google-public-dns-a.google.com.
好吧,應該是Google的,能夠放心使用了。.net
linuxidc@linuxidc:~$ dig +short m.linuxidc.com 122.228.238.15 106.119.182.141
這下顯示的結果就清爽多了。3d
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
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.
上圖中顯示的並非一個完整的結果,感興趣的朋友能夠本身嘗試。code
internet上有13個根域服務器,使用不加參數的dig命令顯示這些服務器信息orm
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
是一個很給力 DNS 查詢工具,本文僅介紹了其常見用法,更多的命令選項及使用方法請查看 man page。