Linux中DNS服务器地址查询命令nslookup使用教程
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.com canonical 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.com canonical name = www.a.shifen.com.
name: www.a.shifen.com
address: 220.181.111.147 #不同的dns获取的ip地址是不同的。