前言

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地址)。

angkongming@Vostro ~ $ nslookup
> www.baidu.com
Server: 127.0.1.1 //上连的dns服务器
Address: 127.0.1.1#53 //上连的dns服务器ip和端口Non-authoritative answer: //非权威答案,即从上连DNS服务器的本地缓存中读取出的值,而非实际去查询到的值
www.baidu.com canonical name = www.a.shifen.com. //说明www.baidu.com有个别名叫www.a.shifen.com
Name: www.a.shifen.com
Address: 180.97.33.107 //对应的ip1
Name: www.a.shifen.com
Address: 180.97.33.108 //对应的ip2
>

二、【如何进入非交互模式?】

如果你直接在nslookup命令后加上所要查询的IP或主机名,那么就进入了非交互模式。当然,这个时候你也可以在第二个参数位置设置所要连接的域名服务器。

wangkongming@Vostro ~ $ nslookup www.baidu.com
Server:        127.0.1.1
Address:    127.0.1.1#53Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 180.97.33.107
Name:    www.a.shifen.com
Address: 180.97.33.108wangkongming@Vostro ~ $ 

三、其他用法

1.server [domain]

首先nslookup会连接到当前的默认上连DNS服务器去查询domain的IP地址,并将之作为当前默认上连DNS服务器。
另外,还有一个命令叫做lserver [domain],它与server的区别在于,它是取本地的第一台DNS服务器来查询domain的IP地址,并将之作为当前默认上连DNS服务器。(lserver中的首字母l就是local的意思)

$ nslookup
> www.baidu.com //以默认的上连DNS服务器来查询
Server:         61.139.2.69
Address:        61.139.2.69#53Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.218.77 //对应的描述信息为“北京市 百度网讯科技”
Name:   www.a.shifen.com
Address: 119.75.217.56
> server 8.8.8.8 //更改了上连的DNS服务器地址
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.baidu.com 以更改后的上连DNS服务器来查询
Server:         8.8.8.8
Address:        8.8.8.8#53Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 220.181.111.147 //对应的描述信息为“北京市(南三环洋桥电信机房) 电信”

可见,两个不同的上连DNS服务器返回的IP地址是不同的。

2. exit
退出nslookup的交互模式。

3. set all
列出nslookup工具的常用选项的当前设置值。

> set all
Default server: 8.8.8.8 //当前的上连DNS服务器
Address: 8.8.8.8#53 //当前的上连DNS服务器的IP地址和端口Set options:novc                  nodebug         nod2search                recursetimeout = 0           retry = 3       port = 53querytype = A         class = INsrchlist =

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,则会进入到调试模式,查询过程中会显示完整的响应包以及其中的交互包。

$ nslookup
> set debug //进入调试模式
> www.baidu.com
Server:         61.139.2.69
Address:        61.139.2.69#53------------QUESTIONS: //发出的查询请求www.baidu.com, type = A, class = IN ANSWERS: //返回的信息->  www.baidu.comcanonical name = www.a.shifen.com.ttl = 1192->  www.a.shifen.cominternet address = 119.75.217.56ttl = 262->  www.a.shifen.cominternet address = 119.75.218.77ttl = 262AUTHORITY RECORDS:ADDITIONAL RECORDS:
------------
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.217.56
Name:   www.a.shifen.com
Address: 119.75.218.77

6. set [no]d2
开启了高级调试模式,会输出很多nslookup内部工作的信息,包括了许多函数调用信息。

7. set domain=[name]
用于设置默认的域。这样的话,对于所有不包含“.”的查询请求,都会自动在尾部追查此域。

$ nslookup
> set all //首先显示上连DNS服务器信息以及所有的当前选项信息
Default server: 61.139.2.69
Address: 61.139.2.69#53
Default server: 8.8.8.8
Address: 8.8.8.8#53
Default server: 202.102.224.68
Address: 202.102.224.68#53Set options:novc                  nodebug         nod2search                recursetimeout = 0           retry = 3       port = 53querytype = A         class = INsrchlist =  //可以看到srchlist(即search list为空)
> set domain=baidu.com //设置默认域为baidu.com
> image //直接查询image
Server:         61.139.2.69
Address:        61.139.2.69#53Non-authoritative answer:
image.baidu.com canonical name = image.n.shifen.com. //可以看到已默认追加了.baidu.com域,变成了image.baidu.com
Name:   image.n.shifen.com
Address: 220.181.111.131
> set domain= //清除domain设置
> image
Server:         61.139.2.69
Address:        61.139.2.69#53Non-authoritative answer:
Name:   image
Address: 61.139.8.100 //于是,可以发现,域名解析又被劫持了...

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值如下:

A:查看主机的IPv4地址
AAAA:查看主机的IPv6地址
ANY:查看关于主机域的所有信息
CNAME:查找与别名对应的正式名字
HINFO:查找主机的CPU与操作系统类型
MINFO:查找邮箱信息
MX:查找邮件交换信息
NS:查找主机域的域名服务器
PTR:查找与给定IP地址匹配的主机名
RP:查找域负责人记录
SOA:查找域内的SOA地址
UINFO:查找用户信息

例如,针对MX类型的查询结果如下:

> set type=MX
> baidu.com //查询MX信息
Server:         61.139.2.69
Address:        61.139.2.69#53Non-authoritative answer:
baidu.com       mail exchanger = 20 jpmx.baidu.com.
baidu.com       mail exchanger = 20 mx50.baidu.com.
baidu.com       mail exchanger = 10 mx.mailcdn.baidu.com.
baidu.com       mail exchanger = 20 mx1.baidu.com.Authoritative answers can be found from:
> set type=A
> baidu.com //查询A记录
Server:         61.139.2.69
Address:        61.139.2.69#53Non-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

11. retry=[number] / timeout=[number]
可以用来设置查询重试的次数,以及每次查询的超时时限。

【总结】
其实nslookup命令的man信息不长,大家仔细阅读个20、30分钟也就基本掌握了。
nslookup命令很小,但却很实用,它是我们与DNS服务器之间很好很方便的通讯桥梁。

参考文档:

1.Linux命令学习之nslookup_忽略的爱的博客-CSDN博客_linux nslookup

Linux之nslookup命令使用详解—网络故障定位(一)相关推荐

  1. Linux之ping命令使用详解—网络故障定位(六)

    Linux命令有很多,今天跟大家介绍常用的两个命令ping .traceroute命令,按照工具的作用,原理,用法三个维度来理解. 一.ping 1.作用 探测端到端的连通性,包往返时延. 2.原理 ...

  2. Linux之dig命令使用详解—网络故障定位(二)

    前言 Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息.dig 命令主要用来从 DNS 域名服务器查询主机地址信息.dig的全称是 ( ...

  3. Linux之curl命令使用详解—网络故障定位(五)

    前言 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FTP. ...

  4. Linux之telnet命令使用详解—网络故障定位(四)

    前言 什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具.一旦入侵者与远程主机建立了Tel ...

  5. Linux之traceroute命令使用详解—网络故障定位(三)

    现实世界中的网络是由无数的计算机和路由器组成的一张的大网,应用的数据包在发送到服务器之前都要经过层层的路由转发.而Traceroute是一种常规的网络分析工具,用来定位到目标主机之间的所有路由器 原理 ...

  6. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

  7. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令

    linux下ftp命令使用详解---linux文件传输ftp命令 上一篇 / 下一篇  2010-12-18 09:15:35 / 个人分类:Linux ftp(file transfer proto ...

  8. linux bin fuser,Linux中fuser命令用法详解

    描述: fuser可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID. 默认情况下每个文件名后面跟一个字母 ...

  9. linux下top命令参数详解

    linux下top命令参数详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: ...

  10. linux ping大包指令,linux下ping命令使用详解,

    linux下ping命令使用详解, •ping命令一般用于检测网络通与不通,也叫时延,其值越大,速度越慢PING(PacketInternetGrope),因特网包探索器,用于测试网络连接量的程序. ...

最新文章

  1. 妥~阿里程序员常用的 15 款开发者工具
  2. 在SAP PI中建立场景
  3. 打开 XP Pro SP2 远程桌面的多用户支持
  4. main函数的参数argc和argv
  5. JAVA 求数组中的最大值
  6. 初识单点登录及JWT实现
  7. USACO 3.3.2 Shopping Offers解题报告
  8. 阿里巴巴消息中间件: Spring Cloud Stream
  9. Ubuntu下deb与rpm包的安装方法
  10. 一汽大众汽车宣布召回19.1万辆国产奥迪A6L
  11. oracle无+密码登陆,Oracle 11g通过wallet实现无密码登录
  12. Cannot subclass final class class com.sun.proxy.$Proxy16
  13. 无类域间路由CIDR
  14. MySQL可不可以直接定义程序_mysql8 参考手册-定义存储程序
  15. Flyweight模式
  16. 网站前端js-parseInt.html
  17. android+解锁工具,安卓手机解锁助手 (A Unlock Tool)
  18. 如何在Linux上安装Oracle客户端连接工具sqlplus
  19. django+vue实现机器学习代码生成系统(数据清洗、数据探索、机器学习模型构建、模型评估)
  20. NXP MPC574X eTimer

热门文章

  1. 自己怎么做网站,个人做网站的步骤
  2. 一、Matlab图像处理入门
  3. matlab图像去毛刺_MATLAB数字图像处理
  4. 电源设计经验之 MOS 管驱动电路
  5. python开发抢票软件_12306抢票软件run python版
  6. 不同编程语言语言的适用场景
  7. python-opencv:在视频中显示fps等opencv快速入门
  8. 中国国航往返飞机票怎么改签
  9. win7访问linux共享没有权限设置,局域网共享时提示:你没有权限访问,请与网络管理员联系...
  10. github+gitee上传源码 git工具的安装和使用