nslookup命令是常用域名查询工具,就是查DNS信息用的命令。
通过man nslookup可以看到对于nslookup的官方解释是“query Internet name servers interactively”。
通过man nslookup可以看到其作者是Andrew Cherenson,我寻找到了他的linkedin主页,原来
他是一位计算机科学的高材生,曾经就读于哈佛大学和加州大学伯克利分校。目前就职于ChoiceStream公司,
nslookup有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
本地的dns配置文件在哪里?
文件是:/etc/resolv.conf
打开这个文件:vi /etc/resolv.conf
进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。
如果你直接在nslookup命令后加上所要查询的IP或主机名,那么就进入了非交互模式。当然,这个时候你也可以在第二个参数位置设置所要连接的域名服务器。
三、其他用法
1.server [domain]
首先nslookup会连接到当前的默认上连DNS服务器去查询domain的IP地址,并将之作为当前默认上连DNS服务器。 另外,还有一个命令叫做lserver [domain],它与server的区别在于,它是取本地的第一台DNS服务器来查询domain的IP地址,并将之作为当前默认上连DNS服务器。(lserver中的首字母l就是local的意思)
可见,两个不同的上连DNS服务器返回的IP地址是不同的。
2. exit 退出nslookup的交互模式。
3. set all 列出nslookup工具的常用选项的当前设置值。
4. set class=[value] 可以更改查询类,而不同的类设定了不同的协议族。
IN:Internet类(默认) CH:Chaos类 HS:Hesiod类 一般我们最长使用IN。而Hesiod之前仅在M.I.T(Massachusetts Institute of Technology,即麻省理工学院)范围内使用,现在甚至已经无人使用。而Chaos也几乎灭绝,曾经BIND套装用Chaos来协助检查版本号信息。
5. set [no]debug 可以用来设置是否进入调试模式。如果set debug,则会进入到调试模式,查询过程中会显示完整的响应包以及其中的交互包。
6. set [no]d2 开启了高级调试模式,会输出很多nslookup内部工作的信息,包括了许多函数调用信息。
7. set domain=[name] 用于设置默认的域。这样的话,对于所有不包含“.”的查询请求,都会自动在尾部追查此域。
8. set [no]search 如果设置了set search,那么当查询的字串中只包含一个句点,且结尾非句点时,nslookup会将domain设置的域追加到查询字串的尾部来尝试查询。
9. set port=[value] 众所周知,DNS默认的服务端口是53。当某些特殊情况,此端口改变时,可以通过本命令来设置。
10. set type=[value] 也可以写成set querytype=[value],用于更改信息查询类型。 默认情况下,nslookup是查询域名所对应的A记录,而如果你想查询其对应的MX记录等信息时,就需要专门设置type值了。 目前常用的type值如下:
例如,针对MX类型的查询结果如下:
11. retry=[number] / timeout=[number] 可以用来设置查询重试的次数,以及每次查询的超时时限。
【总结】 其实nslookup命令的man信息不长,大家仔细阅读个20、30分钟也就基本掌握了。 nslookup命令很小,但却很实用,它是我们与DNS服务器之间很好很方便的通讯桥梁。
参考文档:
1.Linux命令学习之nslookup_忽略的爱的博客-CSDN博客_linux nslookup