循序渐进教你学运维-基础命令篇3
linux基础命令—dig
dig:查找DNS解析过程。
常见 DNS 记录的类型
A
即Address记录,地址记录,用来指定域名的 IPv4 地址。
AAAA
用来指定主机名(或域名)对应的 IPv6 地址记录。
CNAME
别名记录或规范名字,如果需要将域名指向另一个域名,再由另一个域名提供 ip 地址,就需要添加 CNAME 记录。
MX
邮件路由记录,用户可将该域名下的邮箱服务器映射到mail server上;如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录。
NS
域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录。
SOA
SOA 这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录。
TXT
可以写任何东西,长度限制为 255。绝大多数的 TXT记录是用来做 SPF 记录(反垃圾邮件)。
查询单个主机的信息
dig
命令最典型的用法就是查询单个主机的信息。
user@svr:~$ dig hiyiba.com
查询 CNAME 类型的记录
除了A记录,常见的DNS记录还有CNAME,我们可以在查询时指定要查询的DNS记录类型:
user@svr:~$ dig hiyiba.com CNAME
这样结果中就只有 CNAME 的记录。其实我们可以在查询中指定任何 DNS 记录的类型。
从指定的 DNS 服务器上查询
由于一些原因,希望从指定的 DNS 服务器上进行查询(从默认的 DNS 服务器上获得的结果可能不准确)。指定 DNS 服务器的方式为使用 @
符号:
user@svr:~$ dig @8.8.8.8 hiyiba.com
如果不指定 DNS 服务器,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器
反向查询
在前面的查询中我们指定了查询服务器为 8.8.8.8,这是谁家的 DNS 服务器?其实我们可以使用 dig 的 -x 选项来反向解析 IP 地址对应的域名:
user@svr:~$ dig -x 8.8.8.8 +short
控制显示结果
dig 命令默认返回的结果展示详细的信息,如果要获得精简的结果可以使用 +short 选项:
user@svr:~$ dig +short hiyiba.com
user@svr:~$ dig hiyiba.com +noall +answer
跟踪整个查询过程
如果你好奇 dig 命令执行查询时都经历了哪些过程,你可以尝试使用 +trace 选项。它会输出从根域到最终结果的所有信息:
user@svr:~$ dig sohu.com @202.102.134.68 -p 53 -t MX +trace
显示根域服务器
internet上有13个(IPv4)根域服务器,使用不加参数的dig命令显示这些服务器信息
user@svr:~$ dig