NSlookup命令的用法

用了域名服务器后,经常要查询域名的解析情况,nslookup是常用工具之一,无论是linux或者是window下都有这个工具,用好它对平常的域名解析情况,或者对域名服务器的维护都有帮助。

用途



查询因特网域名服务器。



语法

nslookup [ -Option ... ] [ Host ] [ -NameServer ]



描述



nslookup 命令以两种方式查询域名服务器。交互式模式允许查询名称服务器获得有关不同主机和域的信息,或打印域中主机列表。在非交互式模式,打印指定的主机或域的名称和请求的信息。



当没有给出参数时进入交互式模式,或者当第一个参数是 -(减号)并且第二个是主机名或名称服务器的因特网地址时,nslookup 命令进入交互式模式。当没有给出参数时,命令查询缺省名称服务器。-(减号)调用可选的子命令(-Option... 变量)。除了 set 命令,这些命令在命令行指定并且必须在 nslookup 命令参数之前。set 子命令选项能在用户主目录的 .nslookuprc 文件有选择的指定。



当第一个参数是正在搜索的主机的名称或地址,nslookup 命令在非交互式模式下执行。在此情况下,主机名或名称服务器的因特网地址是可选的。



非交互式命令使用缺省名称服务器或由 NameServer 参数指定的名称服务器为指定的主机搜索信息。如果Host 参数指定因特网地址并且查询类型是 A 或 PTR,则返回主机名称。如果 Host 参数指定名称并且名称没有结尾句点,缺省的域名追加到名称后。不在当前域中查找主机,在名称后追加单一的句点。

注:如果在用户主目录的 .nslookuprc 文件指定,set 子命令的 domainsrchlistdefname 和search 选项能影响非交互式命令的行为。



子命令



exit。将内置命令作为主机名,在它之前带转义字符 \。不能标识的命令解释为主机名。



下列子命令由 nslookup 命令标识:


finger [Name] [> FileName]
finger [Name] [>> FileName]

在当前主机连接 finger 守护程序服务器。当前一个查询主机成功并且返回地址信息,如返回 set querytype=A 命令时,定义当前主机。Name 参数指定用户名,它是可选的。> 和 >> 字符可以用来重定向输出到新建或现有的文件。

server Domain
lserver Domain 

更改缺省服务器为 Domain 参数指定的值。lserver 子命令使用初始服务器查询有关域的信息。server 子命令使用当前的缺省服务器。如果未发现授权应答,则任何可能有应答的附加服务器名返回。

root

ns.nic.ddn.mil 。root 服务器名可以使用 set root 子命令更改。(root 子命令与 lserver ns.nic.ddn.mil 子命令同义)。

ls [OptionDomain [> FileName]
ls [OptionDomain [>> FileName]

为指定的 Domain 列出可获得的信息,有选择的创建或追加输出到 FileName 参数指定的文件。缺省输出包含主机名和它们的因特网地址。Option 参数的可能值是:



-t 

QueryType


列出指定类型的所有记录。缺省记录类型是 A。有效类型是:



A

主机的因特网地址 CNAME

为别名规范名称 HINFO

主机 CPU 和操作系统 KEY

安全性密钥记录 MINFO

邮箱或邮件列表信息 MX

邮件交换器 NS

指定区域的名称服务器 PTR

如果查询是因特网地址则指向主机名;否则,指向其他信息 SIG

特征符记录 SOA

域的“start-of-authority”信息 TXT

文本信息 UINFO

用户信息 WKS

支持众所周知的服务 -a

列出域中主机的别名(与  -t CNAME 选项相同)。

-d

列出域中所有记录(与  -t ANY 选项同义)。

-h

列出域中 CPU 和操作系统信息(与  -t HINFO 选项同义)。

-s

列出域中众所周知的主机服务(与  -t WKS 选项同义)。


注: 当输出重定向到文件,每从服务器接收 50 条记录,打印散列标记。

view FileName

将以前 ls 命令的输出排序并且使用 more 命令将其列出。

help


?

显示命令的简要总结。

exit

退出程序。

set Keyword[=Value]

改变影响查询的状态信息。该命令可以在命令行指定或有选择的在用户主目录的.nslookuprc 文件指定。有效的关键字是:



all

显示频繁地使用的选项要设置的当前值。有关当前缺省服务器和主机的信息也显示。 class=

Value


更改查询类为下列之一。类指定信息的协议组。缺省值是 IN



IN

Internet 类 CHAOS

Chaos 类 HESIOD

MIT Althena Hesiod 类 ANY

通配符(上面任意之一) [no]debug

打开调试模式。缺省值是  nodebug (关闭)。

[no]d2

打开全面调试模式。缺省值是  nod2(关闭)。

domain=

Name

更改缺省域名为  Name 参数指定的域名。缺省域名追加到查询请求,取决于 

defname和 

search 选项的状态。如果搜索列表在其名称中至少包含两部分则域搜索列表包含缺省域的父域。例如,如果缺省域是 

CC.Berkeley.EDU,搜索列表是  CC.Berkeley.EDU 和 Berkeley.EDU。使用  set srchlist 命令指定不同列表。使用 

set all 命令显示列表。

domain=

Name 选项的缺省值是在系统的 

hostname

/etc/resolv.conf、或

LOCALDOMAIN 文件指定的值。

srchlst=

Name1/

Name2/...


更改缺省域名为 Name1 参数指定的值,并且更改域搜索列表为 Name1Name2......参数指定的名称。可以指定由斜杠分开的六个名称的最大值。使用 set all 命令显示名称列表。缺省值是在系统的 hostname/etc/resolv.conf 或 LOCALDOMAIN 文件指定的值。

注:该命令覆盖缺省域名和 set domain 命令选项的搜索列表。


[no]defname

追加缺省域名到单一的组成部分的查询请求(不包含句点的请求)。缺省值是  defname(追加)。

[no]search

如果查询请求包含结尾句点以外的句点,追加域搜索列表中的域名到请求直到接收到应答。缺省值是  search

port=

Value

更改缺省 TCP/UDP 名称服务器端口为  Value 参数指定的数。缺省值是 53。

querytype=

Value


type=Value

更改信息查询为下列值之一。缺省值是 A



A

主机的因特网地址 ANY

任何可用的选项。 CNAME

为别名规范名称 HINFO

主机 CPU 和操作系统 KEY

安全性密钥记录 MINFO

邮箱或邮件列表信息 MX

邮件交换器 NS

为指定区域的命名服务器 PTR

如果查询因特网地址则指向主机名;否则,指向其他信息 SIG

特征符记录 SOA

域的“start-of-authority”信息 TXT

文本信息 UINFO

用户信息 WKS

支持众所周知的服务 [no]recurse

如果没有信息则通知名称服务器查询其他服务器。缺省值是  recurse

retry=

Number

设置请求企图重试次数值为  Number 参数指定的值。当请求的应答没有在 

set timeout命令指定的时间帧之内接收,则超时周期加倍,请求重新发送。该子命令控制超时之前请求发送的次数。缺省值是 4。

root=

Host

更改 root 服务器名称为  Host 参数指定的名称。缺省值是 

ns.nic.ddn.mil。 timeout=

Number

更改初始等待应答超时间隔为  Number 参数指定的秒数。缺省值是 5 秒。

[no]vc

当发送请求到服务器使用虚拟电路。缺省值是  novc(没有虚拟电路)。

[no]ignoretc

忽略数据包截断错误。缺省值是  noignoretc(不忽略)。



示例

  1. 更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10 秒,请输入: nslookup -query=hinfo -timeout=10
  2. 设置域和搜索列表为三个名称,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,请输入: nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
    该命令覆盖缺省域名和 set domain 命令的搜索列表。使用 set all 命令显示列表。
  3. 确定名称是否指定主机、域、或其他实体,请输入: nslookup -querytype=ANY austin.ibm.com
    nslookup 命令返回有关名称 austin.ibm.com Server: benames.austin.ibm.comAddress: 9.3.199.2 austin.ibm.com origin = ausname1.austin.ibm.com mail addr = brian.chriss.austin.ibm.com serial=1993081210,refresh=3600,retry=300,expire=604800, min=86400 austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.com nameserver = bb3names.austin.ibm.com austin.ibm.com nameserver = benames.austin.ibm.com austin.ibm.com nameserver = b45names.austin.ibm.com austin.ibm.com nameserver = bbcnames.austin.ibm.com austin.ibm.com nameserver = netmail.austin.ibm.com austin.ibm.com preference = 10, mail exchanger = netmail.austin.ibm.com austin.ibm.com inet address = 129.35.208.98 ausname1.austin.ibm.com inet address = 129.35.17.2 bb3names.austin.ibm.com inet address = 129.35.208.99 benames.austin.ibm.com inet address = 9.3.199.2 b45names.austin.ibm.com inet address = 129.35.49.2 bbcnames.austin.ibm.com inet address = 129.35.17.68 netmail.austin.ibm.com inet address = 129.35.208.98
  4. 要在 opus nslookup opus
    nslookup 命令与 host 命令的应答相同。命令返回域名和 opus Name: opus.austin.ibm.com Address: 129.35.129.223
    opus 已经是名称服务器(以空 /etc/resolv.conf 文件正在运行 named 守护程序的主机),下列信息将会显示: Server: loopback Address: 0.0.0.0


退出状态



当查询请求不成功,则 nslookup 命令返回下列错误消息之一:


Timed Out

表示服务器在超出指定的重试次数后不响应请求。

No Response from Server

表示名称服务器不在服务器上运行。

No Records

表示服务器没有主机的指定查询类型的资源记录,即使主机名有效。

Non-Existent Domain

表示主机或域名不存在。

Connection Refused

表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Network Is Unreachable

表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。

Server Failure

表示名称服务器遇到内部矛盾并且不能返回有效的应答。

Refused

表示名称服务器拒绝请求服务。

Format Error

表示名称服务器拒绝数据包请求因为格式不正确。


文件


/usr/bin/nslookup

包含 nslookup 命令。

/etc/resolv.conf

包含初始域名和名称服务器地址。

$HOME/.nslookuprc

包含用户的初始选项。

HOSTALIASES

包含主机别名。

LOCALDOMAIN

包含覆盖的缺省域。


***值得提醒的是命令行参数中的[- name server]上的-后要有一空格,实际上 - 是第一个参数,曾经许多人都觉得这个参数不对,不能在命令行指定域名服务器,实际上都是这个原因。这个用法对检查某个域名服务器的解析是否正确很有用。比如三个运营商在当地的域名解析是否正确,就不用采用每次都修改电脑的域名服务器来实现,只要在命令行加上这个参数就行。

***nslookup不能查询dns的递归或者迭代,功能也比dig弱。