nslookup,dig,host的用法详解


0.前言

我们在日常上网时都是用域名访问网路,如www.baidu.com,而在实际寻址过程中,是使用IP地址,如180.101.49.11,域名到IP地址的解析是通过DNS服务器来实现的,系统中我们可以用一些网络命令来解析指定的域名。比如说nslookup,dig和host命令。

1.nslookup

1.1 nslookup命令简介

nslookup命令用于查询DNS记录,查看域名解析是否正常,在网络故障时可以用来诊断网络问题。

nslookup命令分为直接查询指定参数查询。

直接查询的语法为nslookup domain [dns-server],其中domain是要查询的域名,dns-server是可选字段,默认使用本地DNS服务器解析。

指定参数查询的语法为 nslookup -qt=type domain [dns-server],其中type表示参数类型,常见类型有:

A 地址记录(IPV4)
AAAA 地址记录(IPV6)
CNAME 别名记录
MX 邮件服务器记录
PTR 反向记录

格式:

nslookup [FQDN] [server]

选项与参数:

  1. 可以直接在 nslookup 加上待查询的主机名或者是 IP,[server] 可有可无;
  2. 如果在 nslookup 后面没有加上任何主机名或 IP,那将进入 nslookup的查询功能,在 nslookup 的查询功能当中,可以输入其他参数来进行特殊查询,

例如:
set type=any : 列出所有的信息『正解方面配置文件』
set type=mx : 列出与 mx 相关的信息!

1.2 nslookup应用

使用nslookup www.baidu.com 解析百度的域名

其中119.29.29.29是域名服务器地址(腾讯DNSPod DNS),端口为53号,canonical name是别名,Address指的是域名对应的IP地址。
除此之外,我们可以指定域名服务器,比如 nslookup www.baidu.com 8.8.8.8

然后再使用指定参数查询,如 nslookup -q=AAAA www.qq.com 的IPV6地址(注:Linux下使用nslookup -q=type domain)

我们可以查询到对应的IPV6地址。此外我们还可以使用MX参数解析邮件服务器的地址,使用PTR参数通过IP地址反向解析出域名,此处不再赘述。

2.dig

2.1 dig简介

除了常用的nslookup之外,有一个更为强大的命令dig,dig是UNIX/BSD系统都自带的DNS诊断工具,使用起来比较灵活,功能也足够强大,windows下的nslookup功能比较简单,Linux下的dig命令支持更多DNS查询功能,比如DNS跟踪,一半使用dig domain +trace进行DNS解析跟踪。
当本地的DNS服务器去访问一个域名的时候,整个域名解析的完整过程如下:

2.2 dig应用

1.dig查询www.baidu.com的ip全过程

我们结合具体的例子来看一下DNS解析域名的具体过程。

首先在终端输入dig www.baidu.com +trace

拆解这整个过程,可以看出从119.29.29.29服务器返回了13个根域名服务器信息,系统从13个根服务器随机选择一个进行访问。

我们可以看到系统随机选择了根域名服务器e.root-servers.net,并返回了.com域名服务器列表

系统选择了e.gtld-servers.net并返回了a.shifen.com.的域名服务器列表。

接下来系统访问ns7.baidu.com并返回了www.baidu.com的域名服务器列表。

最后得到www.baidu.com的IP地址为180.76.76.92。

  1. 查询 linux.vbird.org 的 SOA 相关信息
dig -t soa linux.vbird.org

由于 dig 的输出信息实在是太丰富了,又分成多个部分去进行回报,因此很适合作为 DNS 追踪回报的一个指令呢! 你可以透过这个指令来了解一下你所设定的 DNS 数据库是否正确,并进行除错喔! _!此外,你也可以透过『 -t type 』 的功能去查询其他服务器的设定值,可以方便你进行设定 DNS 服务器时的参考喔!正解查询完毕,接下来玩一玩反解吧!

  1. 查询180.101.49.11 (百度)反解析
dig -x 180.101.49.11

反解相当有趣!从上面的输出结果来看,反解的查询目标竟然从180.101.49.11变成了 101.180.in-addr.arpa. 这个模样~这是啥鬼东西?不要怕,这等我们讲到反解时再跟大家进一步解释。 你现在要知道的是,反解的查询领域名,跟正解不太一样即可,尤其是那个怪异的 in-addr.arpa. 结尾的数据,可以先记下来。

3.host

3.1 host简介

格式:

host [-a] FQDN [server]
host -l domain [server]

选项:
-a :代表列出该主机所有的相关信息,包括 IP、TTL 与除错讯息等等
-l :若后面接的那个 domain 设定允许 allow-transfer 时,则列出该domain所管理的所有主机名对应数据

server:这个参数可有可无,当想要利用非 /etc/resolv.conf 内的 DNS 主机来查询主机名与 IP 的对应时,就可以利用这个参数了

3.2host应用

1.使用默认值来查出百度的IP

host www.baidu.com

  1. 查出百度的所有重要参数
host -a www.baidu.com

  1. 强制以 8.8.8.8 这部 DNS 服务器来查询
host www.baidu.com 8.8.8.8

  1. 找出 sxjy.com领域的所有主机对应
host -l sxjy.com

怎么会无法响应呢?这样的响应是因为管理 vbird.org 领域的 DNS 并不许我们的领域查询,毕竟我们不是 vbird.org 的系统管理员,当然没有权限可以读取整个vbird.org 的领域设定啰!这个『 host -l 』是用在自己的 DNS 服务器上,本章稍后谈到服务器设定后,使用这个选项就能够读取相关的数据了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM