发布时间:2022-04-23 文章分类:Linux + 投稿人:樱花 字号: 默认 | | 超大 打印

nslookup 程序是DNS 服务的主要诊断工具,它提供了执行DNS 服务器查询测试并获取详细信息。使用nslookup 可以诊断和解决名称解析问题、检查资源记录是否在区域中正确添加或更新,以及排除其他服务器相关问题。nslookup 命令的功能是查询一台机器的IP 地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP 地址对应的域名。

模式
nslookup 有两种运行模式:非交互式和交互式。
非交互式通常用于返回单块数据的情况,其命令格式:
nslookup [-选项] 查询的域名 [DNS 服务器地址]
如果没有指明nslookup 要使用DNS 服务器地址,则nslookup 使用/etc/resolv.conf。文件定义DNS 服务进行查询。非交互式nslookup 程序运行完后,就会返回Shell 提示符下。如果要查询另外一条记录,则需要重新执行该程序,
交互式通常用于返回多块数据的情况,其命令格式:
nslookup [- DNS 服务器地址]
如果没有指明nslookup 要使用DNS 服务器地址,则nsookup 使用/etc/resolv.conf。文件定义的DNS服务进行查询。运行交互式nslookup 程序,就会进入nslookup 程序提示符“>”,接下来就可以在“>”后输入nslookup 的各种命令、需查询的域名或反向解析的IP 地址。查询完一条记录可接着在“>”后输入新的查询,使用exit 命令可退出nslookup 程序.由于对DNS 服务器进行测试往往需要连续查询多条记录,所以实际更多地使用nslookup 程序的交互式。

主要用法
1.测试主机地址A 资源记录
进入nslookup 程序后,默认的查询类型是主机地址,在nslookup 程序提示符“>”下直接输入要测试的完全规范域名FQDN,nslookup 会显示当前DNS 服务器的名称和IP 地址,然后返回完全规范域名FQDN 对应的IP 地址
测试反向解析指针PTR 资源记录
在nslookup 程序提示符“>”下直接输入要测试的IP 地址,nslookup 会返回IP 地址所对应的完全规范域名FQDN。
2.测试别名CNAME 资源记录
在nslookup 程序提示符“>”下先使用命令“set type=cname”设置查询的类型为别名,然后输入要测试的别名,nslookup 会返回对应的真实计算机。
3.测试邮件交换器MX 资源记录
在nslookup 程序提示符“>”下先使用命令“set type=mx”设置查询的类型为邮件交换器然后输入要测试的域名,nslookup 会返回对应的邮件交换器地址。
4.测试起始授权机构SOA 资源记录
在nslookup 程序提示符“>”下先使用命令“set type=soa”设置查询的类型为起始授权机构然后输入要测试的域名,nslookup 会返回对应的SOA 资源记录内容 。
5.测试名称服务器NS 资源记录
在nslookup 程序提示符“>”下先使用命令“set type=ns”设置查询的类型为名称服务器,然后输入要测试的域名,nslookup 会返回对应的名称服务器地址。
6.测试负载均衡
测试负载均衡需要在查询的类型为主机地址,如果当前的查询类型不是主机地址,就应在nslookup程序提示符“>”下先使用命令“set type=a”设置查询的类型为主机地址,然后输入要测试的负载均衡完全规范域名FQDN,nslookup 会返回对应的所有IP 地址。
7.设置默认的本地dns服务器
set domain=8.8.8.8
8.测试直接解析域名
测试直接解析域名需要在查询的类型为主机地址,如果当前查询类型不是主机地址,应在nslookup程序提示符“>”下先使用命令“set type=a”设置查询的类型为主机地址,然后输入要测试的直接解析域名,nslookup 会返回域名对应的IP 地址。
9.测试泛域名
测试泛域名需要在查询的类型为主机地址,如果当前查询类型不是主机地址,就应在nslookup 程序提示符“>”下先使用命令“set type=a”设置查询的类型为主机地址,然后输入任意主机名的域名(没有相应的A 记录),对于每个任意主机名的域名,nslookup 会返回同一个IP 地址。
10.测试外部Internet 域名
除了要测试本地DNS 服务器的区域数据外,还要测试DNS 服务器是否能解析外部:Internet 的域名(需要保证DNS 服务器能与Internet 连接),即测试named.conf 文件定义的根区域是否正确。在nslookup 程序提示符“>”下输入如www.baidu.com 等Internet 上的完全规范域名FQDN,nslookup会返回对应的IP 地址。

小例子
1.最基本的用法

代码如下:

[root@rudder ~]# nslookup baidu.com
Server: 8.8.8.8
Address: 8.8.8.8#53</p>
<p>Non-authoritative answer:
Name: baidu.com
Address: 123.125.114.144
Name: baidu.com
Address: 220.181.111.85
Name: baidu.com
Address: 220.181.111.86

2.nslookup,交互方式,查看dns

代码如下:

[root@rudder ~]# nslookup
> www.baidu.com

Server:172.17.0.254
Address:172.17.0.254#53

Non-authoritative answer: #非权威答案,表明是在缓存中读取的
www.baidu.comcanonical name = www.a.shifen.com.
Name:www.a.shifen.com
Address: 61.135.169.105 #返回第一个IP地址
Name:www.a.shifen.com
Address: 61.135.169.125 #返回第二个IP地址

代码如下:

> server 8.8.8.8 #设置域名服务器为 8.8.8.8

Default server: 8.8.8.8
Address: 8.8.8.8#53

代码如下:

> www.baidu.com #再次请求百度的IP地址

Server:8.8.8.8
Address:8.8.8.8#53

Non-authoritative answer:
www.baidu.comcanonical name = www.a.shifen.com.
Name:www.a.shifen.com
Address: 220.181.111.147 #不同的DNS获取的IP地址是不同的。