命令行工具-dig

Surge社区时看有人提到了dig命令,因此学习了解下

简介

摘自 WIKI,dig是一个网络管理命令行工具,用于查询域名系统(DNS),英文单词dig也有寻找的意思。因此很好记忆,dig就是查询目标域名相关信息。

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ dig 1991421.cn @119.29.29.29

; <<>> DiG 9.10.6 <<>> 1991421.cn @119.29.29.29
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45826
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1991421.cn. IN A

;; ANSWER SECTION:
1991421.cn. 600 IN A 108.160.132.49

;; Query time: 91 msec
;; SERVER: 119.29.29.29#53(119.29.29.29)
;; WHEN: Tue Jan 18 22:53:26 CST 2022
;; MSG SIZE rcvd: 55

如上为我查询我的博客域名的DNS记录的操作

  1. 119.29.29.29腾讯云 DNS,之所以用这个DNS解析,是因为我的域名是国内买的。
  2. 之所以指定DNS Server是因为Mac使用Surge且开启了增强模式,默认DNS Server是Surge下的,因此查询到的A记录不真实。

dig查询使用的协议?

默认是UDP,但是可以通过增加参数使用TCP。比如dig 1991421.cn @119.29.29.29 tcp

dig vs ping

了解了dig之后发现可以完全替代ping,毕竟查询的DNS信息足够详细,且可以指定DNS Server

so,可以习惯使用dig,而非ping了

安装

  1. Mac下自带dig,因此不用care,直接用。
  2. Linux下需要手动安装sudo yum install bind-utils

写在最后

用好常见命令工具,对于日常一些问题排查起来更方便。除了dig,还有telnet,curl等也很常用。

相关文档