哈嘍大家好,我是咸魚(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
命令,還有一種跟dig
功能是差不多的 命令nslookup
安裝
如果 Linux 發(fā)行版沒(méi)有安裝 dig
命令,則可以通過(guò)下面的命令來(lái)安裝
- Debian 和 基于 Debian 的發(fā)行版
apt install dnsutils
- Red Hat 和基于 RHEL 的發(fā)行版
dnf install bind-utils
# 或
yum install bind-utils
- Arch Linux 和基于 Arch 的發(fā)行版
pacman -S dnsutils
以我的測(cè)試環(huán)境為例(CentOS 7.9)
常見(jiàn)用法
# 基本語(yǔ)法
dig [@server] [name] [type]
-
@server
:請(qǐng)求所指向的 DNS 服務(wù)器的主機(jī)名或IP地址。如果沒(méi)有指定 DNS 服務(wù)器,則使用系統(tǒng)當(dāng)前配置的 DNS 服務(wù)器 -
name
:要查找的域名 -
type
:要檢索的 DNS 記錄的類型,默認(rèn)為 A 記錄類型
比如說(shuō)我想解析 www.baidu.com
這個(gè)域名,指定使用 Google 的 dns 服務(wù)器(8.8.8.8)
# A 記錄
dig @8.8.8.8 www.baidu.com
如果要查找 MX 記錄
dig @8.8.8.8 www.baidu.com MX
前面我們講到,dig
命令會(huì)在 ANSWER 部分中默認(rèn)顯示 A 記錄,下面我們來(lái)看下命令輸出的信息
可以看到一共有五列,我們以最后一行行為例:
- 第一列
www.wshifen.com
:要查找的域名 - 第二列
192
:生存周期,告訴 DNS 解析器在請(qǐng)求一個(gè)新查詢之前緩存查詢多長(zhǎng)時(shí)間 - 第三列
IN
:查詢的類,IN 指互聯(lián)網(wǎng) - 第四列
A
:DNS 查詢類型( 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)
dig @8.8.8.8 www.baidu.com +nocomments
可以看到,加上 +nocomments
選項(xiàng)后返回的內(nèi)容有一部分注釋是被去掉了的
這時(shí)候有的小伙伴還會(huì)說(shuō):不行不行,信息還是太多了,我只要 ANSWER 部分。該如何讓命令只輸出 ANSWER 部分呢?
dig www.baidu.com +noall +answer
可以看到,加了 +noall
和 +answer
選項(xiàng)之后,會(huì)顯示出干凈且易于閱讀的內(nèi)容
那如果我只想要返回解析出來(lái)的結(jié)果呢?可以使用 +short
選項(xiàng)
dig www.baidu.com +short
進(jìn)階用法
- 指定返回類型信息
前面我們提到過(guò),DNS 記錄的類型(type)有很多種,例如 A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等
我們可以在命令的末尾加上對(duì)應(yīng)的類型名以此來(lái)返回解析后特定類型信息
# 返回 MX 類型
dig www.baidu.com MX
# 返回 CNAME 類型
dig www.baidu.com CNAME
或者使用特殊關(guān)鍵字 ALL
將所有類型記錄放在一起
# 將會(huì)返回所有類型信息
dig www.baidu.com ALL
- 查看 DNS 解析過(guò)程
如果我們不確定 DNS 配置在哪里有問(wèn)題,我們可以使用 dig
命令來(lái)查看 DNS 解析的每一過(guò)程,只需要加上 +trace
選項(xiàng)即可
dig www.baidu.com +trace
- DNS 反向查找
DNS 正向查找就是通過(guò)域名找解析 IP;反向查找就是通過(guò) IP 地址找域名
# 查找 ip 95.217.163.246 對(duì)應(yīng)的域名
dig -x 95.217.163.246
- 批量查詢
有小伙伴會(huì)想:我每次查詢一個(gè)域名效率太慢了,我能不能一次查詢多個(gè)域名呢?
是可以的,dig
是支持批量查詢的
首先我們把要查詢的域名放在一個(gè)文件里面,每行一個(gè)
[root@localhost ~]# cat domains.txt
www.baidu.com
archlinux.org
然后執(zhí)行 dig
命令的時(shí)候加上 -f
選項(xiàng)
# 加上 +short 簡(jiǎn)化輸出內(nèi)容
dig -f domains.txt +short
修改 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)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-710854.html
[root@localhost ~]# cat ~/.digrc
+nocomments
+short
這樣我們執(zhí)行 dig
命令的時(shí)候就算沒(méi)加上去,也會(huì)默認(rèn)使用這兩個(gè)選項(xiàng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710854.html
到了這里,關(guān)于dig 簡(jiǎn)明教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!