首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux之dig命令

Linux之dig命令

作者头像
AsiaYe
发布2019-11-06 17:24:13
2K0
发布2019-11-06 17:24:13
举报
文章被收录于专栏:DBA随笔DBA随笔

Linux之dig命令

今天说点儿概念性的东西,关于linux的dig命令,这个命令主要是用来从DNS域名服务器查询主机的地址信息的。也就是说,针对给定的域名,解析出实际的IP地址,下面我们看看他的输出:

[dba_mysql ~]$dig www.baidu.com

###第一部分
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> www.baidu.com
;; global options: +cmd

###第二部分,可使用+nocomments选项来控制是否显示
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40510
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

###第三部分,可使用+noquestion选项来控制是否显示
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

###第四部分,可使用+noanswer选项来控制是否显示
;; ANSWER SECTION:
www.baidu.com.          117     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       117     IN      A       220.181.38.150
www.a.shifen.com.       117     IN      A       220.181.38.149

###第五部分,可使用+nostats选项来控制是否保留
;; Query time: 58 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Oct  8 22:29:56 2019
;; MSG SIZE  rcvd: 90

当我们直接使用dig命令+一个域名的时候,输出的结果如上图所示,结果中分为了5个部分,分别解释一下这5个部分:

第一部分:该部分是显示dig命令的版本和输入的参数

第二部分:该部分像是服务返回的一些技术信息,其中比较重要的参数是status,如果返回成功,则status的值是NOERROR,否则可能是NXDOMAIN等输出结果。

第三部分:该部分是指发送的请求域名

第四部分:该部分指的是返回的IP地址

第五部分:该部分query time指的是耗费时间,server指的是解析的DNS服务器地址、后面的53指的是端口号,以及具体的命令触发时间when。

我们可以看到,当我们dig www.baidu.com的时候,实际上是将百度的域名转发到了一个叫www.a.shifen.com的域名上,然后使用再去解析这个域名,从而得到IP地址,这里我们把这种域名到域名之间的转发用cname类型来表示,A类型表示直接从域名查IP。这样,就比较容易理解上面的A类型记录和cname类型记录。

dig命令包含很多参数,常用的几个参数如下:

1 @<服务器地址>:指定进行域名解析的域名服务器;

举例如下:

dig @127.0.0.1 www.baidu.com

2 -b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;

3 -f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;

4 -p:指定域名服务器所使用端口号,默认是53端口;

5 -t<类型>:指定要查询的DNS数据类型;

eg:

dig -t a www.baidu.com +noall +answer

[dba_mysql ~]$dig -t a www.baidu.com +noall +answer      

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> -t a www.baidu.com +noall +answer
;; global options: +cmd
www.baidu.com.          14      IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       443     IN      A       182.61.200.6
www.a.shifen.com.       443     IN      A       182.61.200.7

其中,noall和answer表示返回的信息是剪短信息。

6 -x<IP地址>:执行逆向域名查询;

eg:

dig -x 域名

7 -4:使用IPv4;

8 -6:使用IPv6;

9 -h:显示指令帮助信息。

10 +short:这个选项可以让你直接获得剪短的IP信息,而没有那些多余的内容。

[dba_mysql ~]$dig www.baidu.com +short
www.a.shifen.com.
220.181.38.150
220.181.38.149

时间原因,具体的例子这里不做演示,给出一些常用的方法即可,我们需要知道dig命令是将域名解析成IP的一个命令,常用的命令如下:

# dig 最基本的用法 dig @server www.baidu.com # 用 dig 查看反向解析 dig -x 124.42.102.203 @server # 查找一个域的授权 dns 服务器 dig www.baidu.com +nssearch # 从根服务器开始追踪一个域名的解析过程 dig www.baidu.com +trace

最后介绍一个DNS缓存的概念:

假如 DNS 服务器每次都需要迭代或递归查询上一级的 DNS 服务器,那么 DNS 可能就不堪重负,考虑到域名的 DNS 信息不会频繁的修改,所以每一级中的 DNS 服务器都会缓存结果(包括浏览器这样的客户端也会缓存 DNS 结果)。缓存带来的弊端可能就是 DNS 信息可能不是最新的,比如某个域名管理员修改了某个域名的 A 记录,由于每一级的 DNS 服务器都有缓存,所以最后客户端拿到的结果不是最新的,为了获取到最新的结果,可以直接向权威域名服务器进行信息查询。所以使用dig命令的时候,尽量关闭本机的DNS缓存,避免出现不准确的信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档