Dig 命令的簡(jiǎn)明教程
哈嘍大家好,我是咸魚(yú)。
不知道大家在日常學(xué)習(xí)或者工作當(dāng)中用 dig 命令多不多。
dig 是 Domain Information Groper 的縮寫(xiě),對(duì)于網(wǎng)絡(luò)管理員和在域名系統(tǒng)(DNS)領(lǐng)域工作的小伙伴來(lái)說(shuō),它是一個(gè)非常常見(jiàn)且有用的工具。
無(wú)論是簡(jiǎn)單的 DNS 解析查找還是更高級(jí)的故障排除和分析,dig 都能夠勝任。
那么今天咸魚(yú)將和大家一起了解一下 dig 命令的一些常見(jiàn)用法以及示例。
除了 dig 命令,還有一個(gè)跟 dig 功能差不多的命令 nslookup。
安裝
如果 Linux 發(fā)行版沒(méi)有安裝 dig 命令,則可以通過(guò)下面的命令來(lái)安裝。
Debian 和 基于 Debian 的發(fā)行版:
Red Hat 和基于 RHEL 的發(fā)行版:
Arch Linux 和基于 Arch 的發(fā)行版:
以我的測(cè)試環(huán)境為例(CentOS 7.9):
常見(jiàn)用法
- @server:請(qǐng)求所指向的 DNS 服務(wù)器的主機(jī)名或IP地址。如果沒(méi)有指定 DNS 服務(wù)器,則使用系統(tǒng)當(dāng)前配置的 DNS 服務(wù)器
- name :要查找的域名
- type :要檢索的 DNS 記錄的類(lèi)型,默認(rèn)為 A 記錄類(lèi)型
比如說(shuō)我想解析 www.baidu.com 這個(gè)域名,指定使用 Google 的 dns 服務(wù)器(8.8.8.8):
如果要查找 MX 記錄:
前面我們講到,dig 命令會(huì)在 ANSWER 部分中默認(rèn)顯示 A 記錄,下面我們來(lái)看下命令輸出的信息:
可以看到一共有五列,我們以最后一行行為例:
- 第一列 www.wshifen.com:要查找的域名
- 第二列 192 :生存周期,告訴 DNS 解析器在請(qǐng)求一個(gè)新查詢(xún)之前緩存查詢(xún)多長(zhǎng)時(shí)間
- 第三列 IN:查詢(xún)的類(lèi),IN 指互聯(lián)網(wǎng)
- 第四列 A:DNS 查詢(xún)類(lèi)型( A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等)
- 第五列 104.193.88.77:域名關(guān)聯(lián)的 IP 地址
由前面的輸出信息我們可以看到,內(nèi)容還是挺多的,這時(shí)候有小伙伴會(huì)想:如何減少 dig 命令輸出的內(nèi)容呢?我只想要最有用的,其他的我看得頭昏眼花。
可以加上 +nocomments 選項(xiàng):
可以看到,加上 +nocomments 選項(xiàng)后返回的內(nèi)容有一部分注釋是被去掉了的。
這時(shí)候有的小伙伴還會(huì)說(shuō):不行不行,信息還是太多了,我只要 ANSWER 部分。該如何讓命令只輸出 ANSWER 部分呢?
可以看到,加了 +noall 和 +answer 選項(xiàng)之后,會(huì)顯示出干凈且易于閱讀的內(nèi)容。
那如果我只想要返回解析出來(lái)的結(jié)果呢?可以使用 +short 選項(xiàng):
進(jìn)階用法
(1) 指定返回類(lèi)型信息
前面我們提到過(guò),DNS 記錄的類(lèi)型(type)有很多種,例如 A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等.
我們可以在命令的末尾加上對(duì)應(yīng)的類(lèi)型名以此來(lái)返回解析后特定類(lèi)型信息:
或者使用特殊關(guān)鍵字 ALL 將所有類(lèi)型記錄放在一起:
(2) 查看 DNS 解析過(guò)程
如果我們不確定 DNS 配置在哪里有問(wèn)題,我們可以使用 dig 命令來(lái)查看 DNS 解析的每一過(guò)程,只需要加上 +trace 選項(xiàng)即可
(3) DNS 反向查找
DNS 正向查找就是通過(guò)域名找解析 IP;反向查找就是通過(guò) IP 地址找域名:
(4) 批量查詢(xún)
有小伙伴會(huì)想:我每次查詢(xún)一個(gè)域名效率太慢了,我能不能一次查詢(xún)多個(gè)域名呢?
是可以的,dig 是支持批量查詢(xún)的。
首先我們把要查詢(xún)的域名放在一個(gè)文件里面,每行一個(gè):
然后執(zhí)行 dig 命令的時(shí)候加上 -f 選項(xiàng):
修改 dig 默認(rèn)選項(xiàng)
前面我們?cè)谑褂?dig 命令的時(shí)候,為了簡(jiǎn)化輸出信息每次敲命令都得帶上+nocomments 選項(xiàng),那我們能不能把這個(gè)選項(xiàng)設(shè)置成默認(rèn)值,這樣在敲命令的時(shí)候就不需要額外加上這個(gè)選項(xiàng)了。
答案是可以的,我們需要在家目錄下創(chuàng)建一個(gè) ~/.digrc 文件,然后添加選項(xiàng):
這樣我們執(zhí)行 dig 命令的時(shí)候就算沒(méi)加上去,也會(huì)默認(rèn)使用這兩個(gè)選項(xiàng)。