linux 中命令 dig 的使用

dig 命令主要用来从 DNS 域名服务器查询主机地址信息。

查询单个域名的 DNS 信息

dig 命令最典型的用法就是查询单个主机的信息。
比如在国内访问 github.com 很慢的问题就可以通过这个方法解决。

打开终端:

dig github.com
======================================
// 1. 这一部分是 dig 命令的版本
; <<>> DiG 9.9.7-P3 <<>> github.com
;; global options: +cmd
--------------------------------------------------------------------
// 2. 这一部分是服务返回的详情信息,其中比较重要的是 status 状态,如果 NOERROR 说明返回正常
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32014
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
---------------------------------------------------------------------
// 3. 查询的域名
;; QUESTION SECTION:
;github.com.			IN	A
----------------------------------------------------------------------
// 4. 查询结果
;; ANSWER SECTION:
github.com.		9	IN	A	13.229.188.59
----------------------------------------------------------------------
// 5. 本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等
;; Query time: 135 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 07 13:18:01 CST 2019
;; MSG SIZE  rcvd: 44
常见的DNS记录的类型
类型目的
A地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录
AAAA用来指定主机名(或域名)对应的 IPv6 地址记录
CNAME如果需要将域名指向另一个域名,再由另一个域名提供 ip 地址,就需要添加 CNAME 记录
MX如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录
NS域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记
SOASOA 这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录
TXT可以写任何东西,长度限制为 255。绝大多数的 TXT记录是用来做 SPF 记录(反垃圾邮件)

Example:

> dig www.baidu.com

; <<>> DiG 9.9.7-P3 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16355
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		940	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	78	IN	A	61.135.169.125
www.a.shifen.com.	78	IN	A	61.135.169.121

;; Query time: 24 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 07 13:30:31 CST 2019
;; MSG SIZE  rcvd: 90
查询 CNAME 类型的记录
> dig github.com CNAME

; <<>> DiG 9.9.7-P3 <<>> github.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48412
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
----------------------------------------------------------------------
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;github.com.			IN	CNAME

;; AUTHORITY SECTION:
github.com.		60	IN	SOA	ns1.p16.dynect.net. hostmaster.github.com. 1559839247 3600 600 604800 60

;; Query time: 1113 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 07 13:34:29 CST 2019
;; MSG SIZE  rcvd: 104
从指定的 DNS 服务器上查询
> dig @8.8.8.8 github.com
DNS 服务器 8.8.8.8
---------------------------------------------
; <<>> DiG 9.9.7-P3 <<>> @8.8.8.8 github.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36383
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

如果不指定DNS服务器,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器:

nameserver 127.0.0.1
反向查询

如果想要查询 8.8.8.8 是哪的 DNS 服务器,可以使用下面的命令:

> dig -x 8.8.8.8 +short
google-public-dns-a.google.com.
> dig -x 114.114.114.114 +short
public1.114dns.com.
控制显示结果

如果要获得精简的结果信息,使用下面的命令:

> dig +short baidu.com
> dig baidu.com +nocomments +noquestion +noauthority +noadditional +nostats
> dig baidu.com +noall +answer
查看TTL(Time To Live)

TTL 是 DNS 解析中很重要的指标,主要是控制 DNS 记录在 DNS 服务器上的缓存时间:

> dig baidu.com
; <<>> DiG 9.9.7-P3 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4626
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;baidu.com.			IN	A
----------------------------------------------
// 73 表示 TTL
;; ANSWER SECTION:
baidu.com.		73	IN	A	220.181.38.148
baidu.com.		73	IN	A	123.125.114.144

;; Query time: 10 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 07 13:49:06 CST 2019
;; MSG SIZE  rcvd: 59

> dig +nocmd +noall +answer +ttlid baidu.com
baidu.com.		65	IN	A	220.181.38.148
baidu.com.		65	IN	A	123.125.114.144
跟踪整个查询过程
> dig +trace baidu.com

		197349	IN	NS	g.root-servers.net.
.			197349	IN	NS	c.root-servers.net.
.			197349	IN	NS	l.root-servers.net.
.			197349	IN	NS	h.root-servers.net.
.			197349	IN	NS	m.root-servers.net.
.			197349	IN	NS	d.root-servers.net.
.			197349	IN	NS	k.root-servers.net.
.			197349	IN	NS	j.root-servers.net.
.			197349	IN	NS	b.root-servers.net.
.			197349	IN	NS	i.root-servers.net.
.			197349	IN	NS	a.root-servers.net.
.			197349	IN	NS	e.root-servers.net.
.			197349	IN	NS	f.root-servers.net.
;; Received 228 bytes from 192.168.0.1#53(192.168.0.1) in 57 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20190620050000 20190607040000 25266 . opyB+ZlRWaSIHKOB7rHUq6/EPUJOZHLcYubtgr3YzPIApawFMf+XY9XU Xn74DpXmQWm7DQbVpFpdFmC/AbpVq4cJ2c+05ywAEuLIrLdQZL1Tuiyd b3nnxXDVfIi9bWGvNLx1ZiLXN+Z88hA3NAtrlDUPgrCzrr9F8WCxLXv4 0B05NULLME5qiriNxVvdf8TzOxJ2bcEtNWqyHjMk0m+YVzn/9eLyOiQx U3d+PVuX1fgSRdHfSa8qUazjuYZ8HitsaUeV/T8+xE7LhE22ZjqbCGmZ yBaHbQqpkFLH8f3TBn+Q3h4CtJvrwdn4Jhme+pztp5rJUlLFRzbXidI9 EWRS2g==
;; Received 1169 bytes from 193.0.14.129#53(k.root-servers.net) in 355 ms

baidu.com.		172800	IN	NS	ns2.baidu.com.
baidu.com.		172800	IN	NS	ns3.baidu.com.
baidu.com.		172800	IN	NS	ns4.baidu.com.
baidu.com.		172800	IN	NS	ns1.baidu.com.
baidu.com.		172800	IN	NS	ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20190612044518 20190605033518 3800 com. kK+DBXFO++94SBlrVrUiVcRHsgFXS3D2cyHXxwRMSxcLGVriUL9aRk/j gAqDPO0w8p40ZZGHBBODE7Mjd+W712VTgxzOqOnbnnzz6PDyDDosTy+e 8pSkZjFDNK9nhkl4VzsSVeB40iR8jMt0FT+vbtKJoINyPVsNk0zTpqYT b+8=
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN NSEC3 1 1 0 - HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6 NS DS RRSIG
HPVV2B5N85O7HJJRB7690IB5UVF9O9UA.com. 86400 IN RRSIG NSEC3 8 2 86400 20190614045758 20190607034758 3800 com. Qu2qzqYur98PHidSdC5P2kARHhRHdW4Qcnr0LsmdbQ7vxAHM7i1CDiMN 5XZi8TNLZ2+MQDShTGrnzwQRmo3FUTKNw2pYvlNujUtndf4I+XlwujpK C7YptNjAYq9AQf0uVnRJIZ0cgAm7ydJJEVIrCvqSoJJAktm/afmpl09c 02Y=
;; Received 693 bytes from 192.41.162.30#53(l.gtld-servers.net) in 316 ms

baidu.com.		120	IN	A	220.181.38.148
baidu.com.		120	IN	A	123.125.114.144
baidu.com.		86400	IN	NS	ns3.baidu.com.
baidu.com.		86400	IN	NS	ns4.baidu.com.
baidu.com.		86400	IN	NS	ns2.baidu.com.
baidu.com.		86400	IN	NS	ns7.baidu.com.
baidu.com.		86400	IN	NS	dns.baidu.com.
;; Received 240 bytes from 220.181.33.31#53(ns2.baidu.com) in 23 ms
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值