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

image

查询结果分为两组:

服务器、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、手动设置的公共DNSnslookup就是通过这个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命令

学习自:dig命令的介绍与使用-CSDN博客

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查询结果往往不同。

 

posted @ 2023-10-18 10:05  ShineLe  阅读(2654)  评论(0)    收藏  举报