Linux dig命令常見用法
DIG命令(Domain Information Groper命令)是常用的域名查詢工具,通過此命令,你可以實(shí)現(xiàn)域名查詢和域名問題的定位,對于網(wǎng)絡(luò)管理員和在域名系統(tǒng)(DNS)領(lǐng)域工作的小伙伴來說,它是一個(gè)非常常見且有用的工具。
dig安裝
無論是簡單的 DNS 解析查找還是更高級的故障排查和,dig 都能夠勝任,除了 dig 命令,還有一種跟 dig 功能是差不多的命令nslookup,這樣你可以更好的理解。
使用如下命令安裝dig工具
sudo yum install bind-utils #Centos系統(tǒng)
sudo apt-get install dnsutils #Ubuntu系統(tǒng)
man dig查看用法
dig用法
常見用法
[root@VM-4-17-opencloudos ~]# dig www.baidu.com
;<<>>DiG9.11.36-RedHat-9.11.36-5.oc8.2<<>> www.baidu.com
;;global options:+cmd
;;Got answer:
;;->>HEADER<<- opcode: QUERY, status: NOERROR, id:56216
;; flags: qr rd ra; QUERY:1, ANSWER:3, AUTHORITY:0, ADDITIONAL:0
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com.266 IN CNAME www.a.shifen.com.
www.a.shifen.com.60 IN A 180.101.50.188#解析出來的地址1
www.a.shifen.com.60 IN A 180.101.50.242#解析出來的地址2
;;Query time:1 msec #查詢時(shí)間
;; SERVER:183.60.83.19#53(183.60.83.19) #默認(rèn)的dns服務(wù)器
;; WHEN:SunJul0719:27:17 CST 2024
;; MSG SIZE rcvd: 90
比如說我想解析www.baidu.com 這個(gè)域名,指定使用全國通用的 dns 服務(wù)器(114.114.114.114)
dig @114.114.114.114 www.baidu.com命令默認(rèn)顯示A記錄
如果要查找 MX 記錄,直接@指定dns就好
dig @114.114.114.114 www.baidu.com MX
前面我們講到,dig命令會在ANSWER 部分中默認(rèn)顯示 A 記錄,下面我們來看下命令輸出的信息
可以看到一共有五列,我們以最后一行行為例:
第一列 www.wshifen.com:要查找的域名
第二列 172 :生存周期,告訴 DNS 解析器在請求一個(gè)新查詢之前緩存查詢多長時(shí)間
第三列 IN:查詢的類,IN 指互聯(lián)網(wǎng)
第四列 A:DNS 查詢類型( A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等)
第五列 220:域名關(guān)聯(lián)的 IP 地址,可能存在多個(gè)
由前面的輸出信息我們可以看到,顯示內(nèi)容很多,這時(shí)候有小伙伴會想:如何減少 dig 命令輸出的內(nèi)容呢?我只想要最有用的,其他的我看得頭昏眼花。
可以加上 +nocomments 選項(xiàng)
dig @114.114.114.114 www.baidu.com +nocomments
可以看到,加上+nocomments 選項(xiàng)后返回的內(nèi)容有一部分注釋是被去掉了
這時(shí)候有的小伙伴還會說:不行不行,信息還是太多了,我只要 ANSWER 部分。該如何讓命令只輸出 ANSWER 部分呢?
dig www.baidu.com +noall +answer
可以看到,加了 +noall 和 +answer 選項(xiàng)之后,會顯示出干凈且易于閱讀的內(nèi)容
- 只輸出結(jié)果
如果我只想要返回解析出來的結(jié)果呢?可以使用 +short選項(xiàng),這樣就干凈多了
dig www.baidu.com +short
前面我們提到過,DNS 記錄的類型(type)有很多種,例如 A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等
我們可以在命令的末尾加上對應(yīng)的類型名以此來返回解析后特定類型信息
返回MX類型
dig www.baidu.com MX
返回 CNAME 類型
dig www.baidu.com CNAME
或者使用特殊關(guān)鍵字 ALL 將所有類型記錄放在一起
dig www.baidu.com ALL
- 查看 DNS 解析過程
如果我們不確定 DNS 配置在哪里有問題,我們可以使用 dig 命令來查看 DNS 解析的每一過程,只需要加上 +trace 選項(xiàng)即可
dig www.baidu.com +trace
- DNS 反向查找
DNS 正向查找就是通過域名找解析 IP;反向查找就是通過 IP 地址找域名查找 ip 95.217.163.246 對應(yīng)的域名dig -x 95.217.163.246
- dig批量查詢
有小伙伴會想:我每次查詢一個(gè)域名效率太慢了,如果批量查詢域名,有什么好的方式嗎?
首先我們把要查詢的域名放在一個(gè)文件里面,每行一個(gè)
[root@VM-4-17-opencloudos ~]# cat dns.txt
blog.csdn.net
www.baidu.com
批量查詢時(shí)dig命令加上-f選項(xiàng)
# 加上+short簡化輸出內(nèi)容dig -f dns.txt +short
- K8S中的dig查詢
在K8S中驗(yàn)證coredns解析查詢域名ip的的過程
localhost> kubectl get svc -A |grep dns #查找coredns的svc
kube-system kube-dns ClusterIP 10.186.0.2 <none> 53/UDP,53/TCP,9153/TCP 45d
localhost> kubectl get svc -A |grep zook #找一個(gè)服務(wù)驗(yàn)證
default zookeeper ClusterIP 10.186.182.211 <none> 2181/TCP 45d
default zookeeper-1 ClusterIP None <none> 2888/TCP 45d
localhost> dig zookeeper.default.svc.cluster1.local@10.186.0.2 +short #驗(yàn)證結(jié)果和實(shí)際ip一致
10.186.182.211