Linux:IP与域名解析——nslookup与dig的功能和区别
1、nslookup
学习自:Linux nslookup命令详解 – 编程技术之美-IT之美
Linux nslookup命令常见用法_SparLight的博客-CSDN博客
1)简介
Linux中的nslookup命令用于查询DNS服务器,获取特定主机名的IP或域名的MX记录等。
2)用法
nslookup 选项 主机名 DNS服务器
主机名:需要查询的主机名或IP地址
DNS服务器:DNS服务器的IP或域名
选项:
选项 |
说明 |
| -query | 指定查询类型,默认为A记录 |
| -timeout | 指定查询超时时间 |
| -debug | 显示调试信息 |
| -help | 显示帮助信息 |
| -version | 显示版本信息 |
3)例子
①查询指定主机名的IP
nslookup www.google.com

查询结果分为两组:
服务器、Address 和 名称、Addresses
其中:
a)服务器、Address代表进行域名解析操作的DNS服务器的信息。
服务器:域名服务器的名称。上图UnKnown是一种常见的情况,看这个域名服务器的IP:192.168.253.86,可以发现这是一个本地IP。
说明nslookup成功找到了正在使用的DNS服务器的IP地址,即192.168.253.86(通常是本地路由器,承担本地DNS功能),但无法获取该DNS服务器的域名(也就是上边的服务器:Unknown,即无法通过反向解析得知这个IP对应的服务器名称)
由于路由器未配置PTR记录(反向解析记录,其作用是将IP映射到域名),没有这个记录时,nslookup就无法知道这个IP对应的服务器叫啥名字,只能显示unknown。
不过,虽然DNS服务器的名字未知,但是后边紧跟的Address显示的IP地址却是真实正在使用的DNS服务器(可能是路由器IP、运营商DNS、手动设置的公共DNS),nslookup就是通过这个IP地址完成了域名解析查询。
b)非权威应答:名称、Addresses
这一部分代表最终的解析结果。Addresses代表了待解析域名的真实IP,可以用于访问该网站。
非权威应答:这个结果来自“缓存”或“非直接负责该域名的DNS服务器”(例如某个本地DNS服务器),但结果本身是正确的。
②查询指定IP对应的主机名
nslookup 8.8.8.8

说明:nslookup后跟IP和后跟域名的区别
a)域名(正向解析)
直接查该域名的IP地址(A地址)
③查询MX记录
nslookup -query=mx google.com
④指定DNS服务器进行查询
nslookup www.google.com 8.8.8.8
2、dig命令
1)简介
dig是domain information group的简写,即域名信息组。
dig是一个常用的域名查询工具,可以从DNS域名服务器查询主机地址信息,获取到详细的域名信息。
dig名是Bind的一部分,本身没有在Windows和Linux系统中集成,如果我们想要使用该命令就要先下载对应的软件包。
2)软件包安装
Debian(Ubuntu,kali…)系列下安装
apt-get install dnsutils
RedHat(RedHat,Centos,Fedora…)系列
yum install bind-utils
Windows
Windows下安装dig命令比较繁琐一点,需要先下载Bind,再添加环境变量,安装教程链接:win10 安装dig工具与使用dig命令3)用法
命令:dig DNS URL 选项
选项:
常规选项
dig www.baidu.com A # 查询A记录,如果域名后面不加任何参数,默认查询A记录 dig www.baidu.com MX # 查询MX记录 dig www.baidu.com CNAME # 查询CNAME记录 dig www.baidu.com NS # 查询NS记录 dig www.baidu.com ANY # 查询上面所有的记录 dig www.baidu.com A +short # 查询A记录并显示简要的返回的结果 dig www.baidu.com A +multiline # 查询A记录并显示详细的返回结果
从指定的DNS服务器进行查询
如果不指定DNS服务器,可能会导致获得的结果不准确;
如果不指定DNS服务器,dig会依次使用/etc/resolv.conf中的地址作为DNS服务器。
dig @192.168.0.2 www.baidu.com # 表示从192.168.0.2这个IP服务器对www.baidu.com进行A记录查询
查询PTR记录
dig -x 192.168.213.131 # 访问PTR记录,查询该IP地址所对应的主机名 DNS解析是用域名查IP,而PTR记录是IP查域名

4)例子及说明
dig www.baidu.com

①DIG行

这部分输出了有关于它的版本信息(version 9.16.15)和全局的设置选项
②Got answer行

该行输出了DNS返回的技术信息。比较重要的是status,如果status值为NOERROR,说明本次查询成功。这段信息(即Got answer行显示的信息)可以用命令选项 [no] comments来控制是否显示。
③QUESTION SECTION行

查询字段,显示了我们要查询的域名和服务,比如这里的A代表A记录查询,即主机查询。
④ANSWER SECTION行

回答字段,返回查询结果。
这里的结果表示:①要查询www.baidu.com,先查询CNAME记录,对www.a.shifen.com进行访问;②当访问了www.a.shifen.com之后,该主机让我们访问110.242.68.3;③当访问了110.242.68.3之后,该主机会告诉我们www.baidu.com的IP是110.242.68.4。
⑤

最后一节显示了请求所花的时间、dns服务器、当前时间、查询信息的大小。
3、nslookup与dig之间的区别
学习自:通过DNS和IP地址挖掘目标网络信息:dig和nslookup_dig和nslookup区别-CSDN博客
dig会从域名的官方DNS服务器上获取到精确的权威解答;
nslookup只会得到DNS解析服务器保存在Cache中的非权威解答。
对于一些采用了分布式服务器和CDN技术的大型网站,用nslookup查询到的结果和dig查询结果往往不同。

浙公网安备 33010602011771号