dig

linux下查询域名解析有两种选择,nslookup或者dig
Dig是域信息搜索器的简称(Domain Information Groper),使用dig命令可以执行查询域名相关的任务。



###1. 理解dig的输出结果



$ dig chenrongrong.info

1 ; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> chenrongrong.info
2 ;; global options: +cmd
3 ;; Got answer:
4 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22752
5 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

7 ;; OPT PSEUDOSECTION:
8 ; EDNS: version: 0, flags:; udp: 4096
9 ;; QUESTION SECTION:
10 ;chenrongrong.info. IN A

11 ;; ANSWER SECTION:
12 chenrongrong.info. 600 IN A 103.245.222.133

13 ;; AUTHORITY SECTION:
14 chenrongrong.info. 600 IN NS f1g1ns2.dnspod.net.
15 chenrongrong.info. 600 IN NS f1g1ns1.dnspod.net.

16 ;; Query time: 183 msec
17 ;; SERVER: 127.0.1.1#53(127.0.1.1)
18 ;; WHEN: Thu Dec 25 16:04:51 CST 2014
19 ;; MSG SIZE rcvd: 116 1~8: 显示了dig的基本设置信息,e.g. java -version


9-10: 显示了查询内容,这里查询的是域名chenrongrong.info的A记录



11-12: 显示了查询结果,域名chenrongrong.info的A记录是103.245.222.133(A (Address) 记录是用来指定主机名(或域名)对应的IP地址记)



13-15: 授权信息,域名chenrongrong.info的NS(nameserver)是dnspod的域名服务器



16-19: 统计信息



上述选项都可以通过对应选项选择是否输出,+[no]question,+[no]answer,+[no]authority,+[no]stat,当然+short更加简洁



###2. 显示特定的输出结果



+[no]comments – Turn off the comment lines
+[no]authority – Turn off the authority section
+[no]additional – Turn off the additional section
+[no]stats – Turn off the stats section
+[no]answer – Turn off the answer section (Of course, you wouldn’t want to turn off the answer section) ###3. 查询MX记录 MX(Mail Exchanger)记录查询:


$ dig redhat.com MX +noall +answer
or
$ dig -t MX redhat.com +noall +answer 后者-t代表查询类型,可以是A,MX,NS等,+noall 代表清除所有显示的选项
###4. 查询域名服务器



$ dig -t NS chenrongrong.info +noall +answer ###5. 查询所有DNS记录

$ dig -t ANY chenrongrong.info +answer

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> -t ANY chenrongrong.info +noall +answer
;; global options: +cmd
chenrongrong.info. 568 IN A 103.245.222.133
chenrongrong.info. 568 IN NS f1g1ns2.dnspod.net.
chenrongrong.info. 568 IN NS f1g1ns1.dnspod.net.
chenrongrong.info. 568 IN SOA f1g1ns1.dnspod.net.freednsadmin.dnspod.com. 1417233166 3600 180 1209600 180 ###6. 简洁显示+short


+short参数只显示nameserver $ dig -t NS chenrongrong.info +short



f1g1ns2.dnspod.net.
f1g1ns1.dnspod.net. ###7. DNS反向解析dig -x


我们一般所说的DNS域名解析指的是正向解析即从域名解析到相应的IP,反之从IP解析到对应的DNS服务器就是反向解析,8.8.8.8是google的一个公共DNS服务器,我们可以通过dig -x查找该ip对应的DNS服务器



$ dig -x 8.8.8.8 +short

google-public-dns-a.google.com. 8.显示域名的CNAME记录


CNAME记录,即:别名记录。这种记录允许您将多个名字映射到同一台计算机.



dig cname www.baidu.com +short

www.a.shifen.com. dig可以使我们更好的理解DNS解析的过程,dig -h列出了更多详细的命令参数可供我们使用,这也是学习命令有效方式:


Ask Itself,Ask Manpage

dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。
第一部分显示 dig 命令的版本和输入的参数。
第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
第三部分中的 “QUESTION SECTION” 显示我们要查询的域名。
第四部分的 “ANSWER SECTION” 是查询到的结果。
第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。



默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。



常见 DNS 记录的类型
类型 目的
A 地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录。
AAAA 用来指定主机名(或域名)对应的 IPv6 地址记录。
CNAME 如果需要将域名指向另一个域名,再由另一个域名提供 ip 地址,就需要添加 CNAME 记录。
MX 如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录。
NS 域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录。
SOA SOA 这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录。
TXT 可以写任何东西,长度限制为 255。绝大多数的 TXT记录是用来做 SPF 记录(反垃圾邮件)。
2、什么是A记录?
A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。



3、什么是CNAME记录?
即:别名记录。这种记录允许您将多个名字映射到另外一个域名。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就 http://www.mydomain.com/和“mail.mydomain.com”。实际上他们都指向 “host.mydomain.com”。



4、使用A记录和CNAME进行域名解析的区别
A记录就是把一个域名解析到一个IP地址(Address,特制数字IP地址),而CNAME记录就是把域名解析到另外一个域名。其功能是差不多,CNAME将几个主机名指向一个别名,其实跟指向IP地址是一样的,因为这个别名也要做一个A记录的。但是使用CNAME记录可以很方便地变更IP地址。如果一台服务器有100个网站,他们都做了别名,该台服务器变更IP时,只需要变更别名的A记录就可以了。



5、使用A记录和CNAME哪个好?
域名解析CNAME记录A记录哪一种比较好?如果论对网站的影响,就没有多大区别。但是:CNAME有一个好处就是稳定,就好像一个IP与一个域名的区别。服务商从方便维护的角度,一般也建议用户使用CNAME记录绑定域名的。如果主机使用了双线IP,显然使用CNAME也要方便一些。



A记录也有一些好处,例如可以在输入域名时不用输入WWW.来访问网站哦!从SEO优化角度来看,一些搜索引擎如alex或一些搜索查询工具网站等等则默认是自动去掉WWW.来辨别网站,CNAME记录是必须有如:WWW(别名)前缀的域名,有时候会遇到这样的麻烦,前缀去掉了默认网站无法访问。



有人认为,在SEO优化网站的时候,由于搜索引擎找不到去掉WWW.的域名时,对网站权重也会有些影响。因为有些网民客户也是不喜欢多写三个W来访问网站的,网站无法访问有少量网民客户会放弃继续尝试加WWW.访问域名了,因此网站访问浏览量也会减少一些。



也有人认为同一个域名加WWW.和不加WWW.访问网站也会使网站权重分散,这也是个问题。但是可以使用301跳转把不加WWW.跳转到加WWW.的域名,问题就解决了。


Category web