這篇文章將為大家詳細(xì)講解有關(guān)linux如何使用dig命令挖掘域名解析信息,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
命令行工具
dig
是用于解析域名和故障排查的一個(gè)利器。
從主要功能上來(lái)說(shuō),dig
和 nslookup
之間差異不大,但 dig
更像一個(gè)加強(qiáng)版的 nslookup
,可以查詢到一些由域名服務(wù)器管理的信息,這在排查某些問(wèn)題的時(shí)候非常有用??偟膩?lái)說(shuō),dig
是一個(gè)既簡(jiǎn)單易用又功能強(qiáng)大的命令行工具。(LCTT 譯注:dig
和 nslookup
行為的主要區(qū)別來(lái)自于 dig
使用是是操作系統(tǒng)本身的解析庫(kù),而 nslookup
使用的是該程序自帶的解析庫(kù),這有時(shí)候會(huì)帶來(lái)一些行為差異。此外,從表現(xiàn)形式上看,dig
返回是結(jié)果是以 BIND 配置信息的格式返回的,也帶有更多的技術(shù)細(xì)節(jié)。)
dig
最基本的功能就是查詢域名信息,因此它的名稱實(shí)際上是“域名信息查詢工具”的縮寫(xiě)。dig
向用戶返回的內(nèi)容可以非常詳盡,也可以非常簡(jiǎn)潔,展現(xiàn)內(nèi)容的多少完全由用戶在查詢時(shí)使用的選項(xiàng)來(lái)決定。
如果只需要查詢某個(gè)域名指向的 IP 地址,可以使用 +short
選項(xiàng):
$ dig facebook.com +short31.13.66.35
在查詢的時(shí)候發(fā)現(xiàn)有的域名會(huì)指向多個(gè) IP 地址?這其實(shí)是網(wǎng)站提高其可用性的一種措施。
$ dig networkworld.com +short151.101.2.165151.101.66.165151.101.130.165151.101.194.165
也正是由于這些網(wǎng)站通過(guò)負(fù)載均衡實(shí)現(xiàn)高可用,在下一次查詢的時(shí)候,或許會(huì)發(fā)現(xiàn)這幾個(gè) IP 地址的排序有所不同。(LCTT 譯注:瀏覽器等應(yīng)用默認(rèn)會(huì)使用返回的第一個(gè) IP 地址,因此這樣實(shí)現(xiàn)了一種簡(jiǎn)單的負(fù)載均衡。)
$ dig networkworld.com +short151.101.130.165151.101.194.165151.101.2.165151.101.66.165
dig
的標(biāo)準(zhǔn)返回內(nèi)容則包括這個(gè)工具本身的一些信息,以及請(qǐng)求域名服務(wù)器時(shí)返回的響應(yīng)內(nèi)容:
$ dig networkworld.com ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>*gt; networkworld.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39932;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 65494;; QUESTION SECTION:;networkworld.com. IN A ;; ANSWER SECTION:networkworld.com. 300 IN A 151.101.194.165networkworld.com. 300 IN A 151.101.130.165networkworld.com. 300 IN A 151.101.66.165networkworld.com. 300 IN A 151.101.2.165 ;; Query time: 108 msec;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Thu Feb 13 13:49:53 EST 2020;; MSG SIZE rcvd: 109
由于域名服務(wù)器有緩存機(jī)制,返回的內(nèi)容可能是之前緩存好的信息。在這種情況下,dig
最后顯示的查詢時(shí)間會(huì)是 0 毫秒(0 msec):
;; Query time: 0 msec <==;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Thu Feb 13 15:30:09 EST 2020;; MSG SIZE rcvd: 109
在默認(rèn)情況下,dig
會(huì)根據(jù) /etc/resolv.conf
這個(gè)文件的內(nèi)容決定向哪個(gè)域名服務(wù)器獲取查詢結(jié)果。你也可以使用 @
來(lái)指定 dig
請(qǐng)求的域名服務(wù)器。
在下面的例子中,就指定了 dig
向 Google 的域名服務(wù)器 8.8.8.8 查詢域名信息。
$ dig @8.8.8.8 networkworld.com ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> @8.8.8.8 networkworld.com; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21163;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;networkworld.com. IN A ;; ANSWER SECTION:networkworld.com. 299 IN A 151.101.130.165networkworld.com. 299 IN A 151.101.66.165networkworld.com. 299 IN A 151.101.194.165networkworld.com. 299 IN A 151.101.2.165 ;; Query time: 48 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Thu Feb 13 14:26:14 EST 2020;; MSG SIZE rcvd: 109
想要知道正在使用的 dig
工具的版本,可以使用 -v
選項(xiàng)。你會(huì)看到類(lèi)似這樣:
$ dig -vDiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu
或者這樣的返回信息:
$ dig -vDiG 9.11.4-P2-RedHat-9.11.4-22.P2.el8
如果你覺(jué)得 dig
返回的內(nèi)容過(guò)于詳細(xì),可以使用 +noall
(不顯示所有內(nèi)容)和 +answer
(僅顯示域名服務(wù)器的響應(yīng)內(nèi)容)選項(xiàng),域名服務(wù)器的詳細(xì)信息就會(huì)被忽略,只保留域名解析結(jié)果。
$ dig networkworld.com +noall +answer ; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> networkworld.com +noall +answer;; global options: +cmdnetworkworld.com. 300 IN A 151.101.194.165networkworld.com. 300 IN A 151.101.130.165networkworld.com. 300 IN A 151.101.66.165networkworld.com. 300 IN A 151.101.2.165
如果你要查詢多個(gè)域名,可以把這些域名寫(xiě)入到一個(gè)文件內(nèi)(domains
),然后使用下面的 dig
命令遍歷整個(gè)文件并給出所有查詢結(jié)果。
$ dig +noall +answer -f domainsnetworkworld.com. 300 IN A 151.101.66.165networkworld.com. 300 IN A 151.101.2.165networkworld.com. 300 IN A 151.101.130.165networkworld.com. 300 IN A 151.101.194.165world.std.com. 77972 IN A 192.74.137.5uushenandoah.org. 1982 IN A 162.241.24.209amazon.com. 18 IN A 176.32.103.205amazon.com. 18 IN A 176.32.98.166amazon.com. 18 IN A 205.251.242.103
你也可以在上面的命令中使用 +short
選項(xiàng),但如果其中有些域名指向多個(gè) IP 地址,就無(wú)法看出哪些 IP 地址對(duì)應(yīng)哪個(gè)域名了。在這種情況下,更好地做法應(yīng)該是讓 awk
對(duì)返回內(nèi)容進(jìn)行處理,只留下第一列和最后一列:
$ dig +noall +answer -f domains | awk '{print $1,$NF}'networkworld.com. 151.101.66.165networkworld.com. 151.101.130.165networkworld.com. 151.101.194.165networkworld.com. 151.101.2.165world.std.com. 192.74.137.5amazon.com. 176.32.98.166amazon.com. 205.251.242.103amazon.com. 176.32.103.205
關(guān)于“l(fā)inux如何使用dig命令挖掘域名解析信息”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。