Dig 命令是如何使用的

这篇博客介绍了DNS记录中的CNAME类型,以及A记录的用途。通过一个实例展示了如何配置CNAME使得多个域名指向同一IP地址。此外,详细解释了Linux命令dig的用法,包括查询域名信息、MX记录、CNAME记录以及反向查找IP对应的域名。还给出了dig命令的多个实用示例,帮助读者理解DNS查询的过程。

常用的DNS记录

CNAME
可能需要先大概介绍一下什么是CNAME:一个域名可以有两种类型的指向,如果一个 域名指向 称为一个 记录 (Record)的话,那么就有两种 记录类型 (Record Type),分别是:

A记录 :指向一个IP地址
CNAME :指向一个其他的域名

DNS records

CNAME设置

这里有两条A记录,一条CNAME。两条A记录指向的就是我的博客所在的VPS:第二条容易理解,就是将 www.zhouliang.pro 指向了VPS的IP地址,这样你使用 http://www.zhouliang.pro 就可以访问我的博客了;第一条有点奇怪,这里是一个泛域名,也就是将 zhouliang.pro 也指向了这个IP地址,也就是说你用 http://zhouliang.pro 也可以直接访问我的博客。

彩蛋:买域名的时候特别注意服务商是不是提供免费的泛域名解析服务,不提供的都是耍流氓,据我所知,万网就是在耍流氓。

第三条记录就是一个CNAME指向,也许你已经在浏览器中打开了 http://i.zhouliang.pro ,我将 i.zhouliang.pro 转向了网易轻博客服务,放了几张照片,你们感受一下,小清新有木有。

dig 命令

学习Linux命令只有一条路,那就是: man dig ,到控制台敲一下这个命令,输出略长。本文的目的是先大致介绍一下,深入了解还是得细读 man dig 。

在控制台输入,输出结果如下:

$ dig i.zhouliang.pro

; <<>> DiG 9.8.3-P1 <<>> i.zhouliang.pro
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45515
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;i.zhouliang.pro. IN A

;; ANSWER SECTION:
i.zhouliang.pro. 14400 IN CNAME mydomain.lofter.com.
mydomain.lofter.com. 18000 IN A 54.248.125.234

;; Query time: 211 msec
;; SERVER: 192.168.106.1#53(192.168.106.1)
;; WHEN: Fri Jan 24 00:43:26 2014
;; MSG SIZE rcvd: 82
输出结果大致分成4个部分,实际上可能还包括更多的内容,总共会有以下6个部分:

Dig命令的输出分析

Header : 包括软件版本,全局变量以及除消息头以外的其他部分的信息,比如上例中,显示有1个QUERY,2个ANSWER
QUESTION SECTION : 请求参数信息,也就是你的输入
ANSWER SECTION : 从DNS查询到的信息,也就是输出,显示 i.zhouliang.pro 是CNAME,指向 mydomain.lofter.com ,而后者是一个A记录,指向一个IP地址
AUTHORITY SECTION : 包含DNS域名服务器的授权信息,上例中不包含这一部分,如果用这个命令就可以看到 dig @ns1.redhat.com redhat.com ,这里的 @ 符号用于指定查询所使用的DNS服务器
ADDITIONAL SECTION : 包含AUTHORITY SECTION中的域名服务器的IP地址,同样,上例中也不包含这一部分
Stats section : 最下方的一部分,显示了查询时间等额外信息
另外,上面所有的以 ; 开头的行实际上都是注释。

可以通过下面的参数来控制显示或者不显示上面的这些部分:

+nocomments – 不显示注释
+noauthority – 不显示AUTHORITY SECTION
+noadditional – 不显示ADDITIONAL SECTION
+nostats – 不显示Stats section
+noanswer – 不显示ANSWER SECTION
+noall - 不显示所有的信息,一般会这样用 dig zhouliang.pro +noall +answer
和上面参数对应还有 +comments , +answer 等,后文有示例,此处不赘述。另外,还有如下两个参数需要了解:

+short - 显示简短的信息
-t 指定查询的记录类型,可以是CNAME、A、MX、NS,分别表示CNAME、A记录、MX记录、DNS服务器,默认是A
-x 表示反向查找,也就是根据IP地址查找域名

dig命令示例

下面来举几个实用的例子。

1.查看域名

$ dig i.zhouliang.pro +noall +anwser

; <<>> DiG 9.8.3-P1 <<>> i.zhouliang.pro +noall +answer
;; global options: +cmd
i.zhouliang.pro. 10034 IN CNAME mydomain.lofter.com.
mydomain.lofter.com. 9183 IN A 54.248.125.234
特别注意这里输出了两行,第一行是CNAME,先将 i.zhouliang.pro 解析成 mydomain.lofter.com ,第二行是A记录,将 mydomain.lofter.com 解析成IP地址。这是一个完整的域名解析过程。

2.查找域名的MX记录:

$ dig zhouliang.pro -t MX +short
10 mxdomain.qq.com.
从输出可以看出,我用了QQ提供的域名邮箱服务。

3.查找域名对应的CNAME:

$ dig i.zhouliang.pro -t CNAME +short
mydomain.lofter.com.
从输出可以看出,我用了网易Loft提供的博客服务。另外,这个方法刚好解答了本文开头所提到的那个问题。

4.根据IP地址反向查找域名

$ dig -x 8.8.8.8 +short

; <<>> DiG 9.8.3-P1 <<>> -x 8.8.8.8 +noall +answer
;; global options: +cmd
8.8.8.8.in-addr.arpa. 79605 IN PTR google-public-dns-a.google.com.
从输出可以看出,Google的这个DNS服务器有个域名叫做google-public-dns-a.google.com

5.查询域名的解析DNS服务器地址

$ dig zhouliang.pro ns +short
ns15.bigwww.com.
ns13.bigwww.com.

how to use dig to query DNS
Understanding DNS with dig command
Dig dns txt record

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值