Nslookup显示可用来诊断域名系统 (DNS) 基础结构的信息。只有在已安装 TCP/IP 协议的情况下才可以使用 Nslookup 命令行工具。
语法
nslookup [-SubCommand ...] [{ComputerToFind| [-Server]}]
参数
-SubCommand ...
将一个或多个 nslookup 子命令指定为命令行选项。
ComputerToFind
如果未指定其它服务器,就使用当前默认 DNS 名称服务器查阅 ComputerToFind 的信息。要查找不在当前 DNS 域的计算机,请在名称上附加句点。
-Server
指定将该服务器作为 DNS 名称服务器使用。如果省略了 -Server,将使用默认的 DNS 名称服务器。
{help|?}
显示 nslookup 子命令的简短总结。
注释
如果 ComputerToFind 是 IP 地址,并且查询类型为 A 或 PTR 资源记录类型,则返回计算机的名称。如果 ComputerToFind 是一个名称,并且没有跟踪期,则向该名称添加默认 DNS 域名。此行为取决于下面 set 子命令的状态:domain、srchlist、defname 和 search。
如果键入连字符 (-) 代替 ComputerToFind,命令提示符更改为 nslookup 交互式模式。
命令行长度必须少于 256 个字符。
Nslookup 有两种模式:交互式和非交互式。
如果仅需要查找一块数据,请使用非交互式模式。对于第一个参数,键入要查找的计算机的名称或 IP 地址。对于第二个参数,键入 DNS 名称服务器的名称或 IP 地址。如果省略第二个参数,nslookup 使用默认 DNS 名称服务器。
如果需要查找多块数据,可以使用交互式模式。为第一个参数键入连字符 (-),为第二个参数键入 DNS 名称服务器的名称或 IP 地址。或者,省略两个参数,则 nslookup 使用默认 DNS 名称服务器。下面是一些有关在交互式模式下工作的提示:
要随时中断交互式命令,请按 CTRL+B。
要退出,请键入 exit。
要将内置命令当作计算机名,请在该命令前面放置转义字符 (\)。
将无法识别的命令解释为计算机名。
如果查找请求失败,nslookup 将打印错误消息。下表列出可能的错误消息。 错误消息 说明
Timed out 重试一定时间和一定次数之后,服务器没有响应请求。可以通过 set timeout 子命令设置超时期。而利用 set retry 子命令设置重试次数。
No response from server 服务器上没有运行 DNS 名称服务器。
No records 尽管计算机名有效,但是 DNS 名称服务器没有计算机当前查询类型的资源记录。查询类型使用 set querytype 命令指定。
Nonexistent domain 计算机或 DNS 域名不存在。
Connection refused
or
Network is unreachable
无法与 DNS 名称服务器或指针服务器建立连接。该错误通常发生在 ls 和 finger 请求中。
Server failure DNS 名称服务器发现在其数据库中内部不一致而无法返回有效应答。
Refused DNS 名称服务器拒绝为请求服务。
Format error DNS 名称服务器发现请求数据包的格式不正确。可能表明 nslookup 中存在错误。
范例
每个命令行选项均由连字符 (-) 后紧跟命令名组成,有时是等号 (=) 后跟一个数值。例如,要将默认的查询类型更改为主机(计算机)信息,并将初始超时更改为 10 秒,请键入:
nslookup -querytype=hinfo -timeout=10
概要
Nslookup.exe 是命令行管理工具,用于测试或解决 DNS 服务器问题。此工具是通过“控制面板”与 TCP/IP 协议一起安装的。本文包含使用 Nslookup.exe 的若干提示。
更多信息
要使用 Nslookup.exe,请注意以下方面: • TCP/IP 协议必须安装在运行 Nslookup.exe 的计算机上。
• 在 Microsoft TCP/IP 属性页的 DNS 选项卡的“DNS 服务搜索顺序”字段中必须至少指定一个 DNS 服务器。
• Nslookup 一直从当前上下文中的名称中抽去后缀。如果无法进行完全合格的名称查询(即,使用尾随点),那么查询将被附加到当前上下文中。例如,当前 DNS 设置是 att.com,并且在 中执行查询,那么第一个查询将作为 而失败,因为查询是不合格的。这种方式与其他供应商的 Nslookup 方式可能不一致,本文的目的在于阐明 Microsoft Windows NT Nslookup.exe 的处理方式。
• 如果已经使用 Microsoft TCP/IP 属性页 DNS 选项卡上定义的“域后缀搜索顺序”(Domain Suffix Search Order )中的搜索列表,将不会发生抽取操作。查询将被附加到列表中指定的域后缀中。要避免使用搜索列表,请始终使用“完全合格的域名称”(即,在名称中添加尾随点)。
Nslookup.exe 可以在两种模式下运行:交互式和非交互式。当需要返回单块数据时,请使用非交互式模式。非交互模式的语法如下:
nslookup [-option] [hostname] [server]
要在交互模式下启动 Nslookup.exe,只需在命令提示符下输入 nslookup:
C:\> nslookup
Default Server: nameserver1.domain.com
Address: 10.0.0.1
>
在命令提示符下输入 help 或 ? 将生成可用的命令列表。在命令提示符下输入的任何内容,如果它不是有效命令,则假设它是主机名,尝试使用默认服务器来解析它。要中断交互命令,请按 CTRL+C。要退出交互模式并返回到命令提示符下,并在命令提示符下输入 exit。
以下是帮助输出,其中包含选项的完整列表:
Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default
server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands
set OPTION - set an option
all - print options, current server and host
[no]debug - print debugging information
[no]d2 - print exhaustive debugging information
[no]defname - append domain name to each query
[no]recurse - ask for recursive answer to query
[no]search - use domain search list
[no]vc - always use a virtual circuit
domain=NAME - set default domain name to NAME
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1, N2,
and so on
root=NAME - set root server to NAME
retry=X - set number of retries to X
timeout=X - set initial time-out interval to X seconds
type=X - set query type (for example, A, ANY, CNAME, MX,
NS, PTR, SOA, SRV)
querytype=X - same as type
class=X - set query class (for example, IN (Internet), ANY)
[no]msxfr - use MS fast zone transfer
ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
finger [USER] - finger the optional NAME at the current default host
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to
FILE)
-a - list canonical names and aliases
-d - list all records
-t TYPE - list records of the given type (for example, A, CNAME,
MX, NS, PTR, and so on)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program
通过在命令提示符下运行 set 命令,可以在 Nslookup.exe 中设置许多不同的选项。要得到这些选项的完整列表,只需输入 set all。请参见以上内容,在 set 命令下,得到可用选项的打印输出。
查找不同的数据类型
要在域名空间中查找不同的数据类型,请在命令提示符下使用 set type 或 set q[uerytype] 命令。例如,要查询邮件交换器数据,请输入:
C:\> nslookup
Default Server: ns1.domain.com
Address: 10.0.0.1
> set q=mx
> mailhost
Server: ns1.domain.com
Address: 10.0.0.1
mailhost.domain.com MX preference = 0, mail exchanger =
mailhost.domain.com
mailhost.domain.com internet address = 10.0.0.5
>
第一次查询是查找远程名称,答案是权威的,但随后的查询是非权威的。第一次查询远程主机时,本地 DNS 服务器与作为该域权威的 DNS 服务器取得联系。然后,本地 DNS 服务器缓存该信息,以便从本地服务器缓存中非权威地回答随后的查询。
直接从另一个名称服务器中进行查询
要直接查询另一个名称服务器,请使用 server 或 lserver 命令切换到该名称服务器。lserver 命令使用本地服务器得到要切换的服务器地址,而 server 命令使用当前默认服务器得到该地址。
例如:
C:\> nslookup
Default Server: nameserver1.domain.com
Address: 10.0.0.1
> server 10.0.0.2
Default Server: nameserver2.domain.com
Address: 10.0.0.2
>
使用 Nslookup.exe 转移整个区域
使用 ls 命令,Nslookup 可以用于转移整个区域。查看远程域中的所有主机,这是有用的。ls 命令的语法如下:
ls [- a | d | t type] domain [> filename]
不带参数使用 ls 命令将返回所有地址和名称服务器数据的列表。-a 参数将返回别名和正式名称,-d 将返回所有数据,而 -t 将按类型进行筛选。
例如:
>ls domain.com
[nameserver1.domain.com]
nameserver1.domain.com. NS server = ns1.domain.com
nameserver2.domain.com NS server = ns2.domain.com
nameserver1 A 10.0.0.1
nameserver2 A 10.0.0.2
>
在 DNS 服务器中可以按块转移区域,以便只有授权的地址和网络才可以执行此操作。如果设置了区域安全,将返回以下错误消息:
*** Can't list domain example.com .: Query refused
Nslookup.exe 的疑难解答
默认服务器超时
当启动 Nslookup.exe 工具时,以下错误可能出现:
*** Can't find server name for address w.x.y.z : Timed out
备注: w.x.y.z 是在“DNS 服务搜索顺序”列表中列出的第一个 DNS 服务器。
*** Can't find server name for address 127.0.0.1: Timed out
第一个错误指出不能连接 DNS 服务器,或者该计算机上的服务没有运行。要解决此问题,启动该服务器上的 DNS 服务,或检查可能存在的连接问题。
第二个错误指出在“DNS 服务搜索顺序”列表中还没有定义服务器。要解决此问题,请将有效 DNS 服务器的 IP 地址添加到此列表中。
启动 Nslookup.exe 时找不到服务器名
启动 Nslookup.exe 工具时,可能出现以下错误:
*** Can't find server name for address w.x.y.z: Non-existent domain
当没有名称服务器 IP 地址的 PTR 记录时,会出现此错误。当 Nslookup.exe 启动时,它执行反向搜索,以得到默认服务器的名称。如果没有 PTR 数据,则返回此错误消息。要解决此问题,请确保反向搜索区域存在,并包含名称服务器的 PTR 记录。
Nslookup 在子域上无法执行
当在子域上执行查询或进行区域转移时,Nslookup 可能返回以下错误:
*** ns.domain.com can't find child.domain.com.: Non-existent domain
*** Can't list domain child.domain.com.: Non-existent domain
在 DNS Manager 中,可以在主区域下添加一个新域,这样就创建了一个子域。用这种方法创建子域并不为该域创建一个单独的 db 文件,这样在该域进行查询或在该域进行区域转移时将会产生以上错误。在父域上进行区域转移时将同时列出父域数据和子域数据。要解决此问题,请在 DNS 服务器上为该子域创建一个新主域。
以下转自沸腾年代。
Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在Windows 98中却没有集成这一个工具。
Nslookup 必须要安装了TCP/IP 协议的网络环境之后才能使用。
现在网络中已经架设好了一台 DNS 服务器,主机名称为 linlin ,它可以把域名 解析为 192.168.0.1 的IP地址,这是我们平时用得比较多的正向解析功能。
检测步骤如下:
在 Windows 2000 中单击“开始”->“程序”->“附件”->“命令提示符”,在 C:\> 的后面键入 Nslookup ,“回车”之后即可看到如下结果:
Server: linlin
Address: 192.168.0.5
Name:
Address: 192.168.0.1
以上结果显示,正在工作的 DNS 服务器的主机名为 linlin ,它的 IP 地址是192.168.0.5 ,而域名 所对应的 IP 地址为 192.168.0.1 。那么,在检测到 DNS 服务器 linlin 已经能顺利实现正向解析的情况下,它的反向解析是否正常呢? 也就是说,能否把IP地址192.168.0.1反向解析为域名 ?我们在命令提示符C:\>的后面键入 Nslookup 192.168.0.1 ,得到结果如下:
Server: linlin
Address: 192.168.0.5
Name:
Address: 192.168.0.1
这说明,DNS 服务器 linlin 的反向解析功能也正常。
然而,有的时候,我们键入Nslookup ,却出现如下结果:
Server: linlin
Address: 192.168.0.5
*** linlin can't find Non-existent domain
这种情况说明网络中DNS服务器 linlin 在工作,却不能实现域名 的正确解析。此时,要分析DNS服务器的配置情况,看是否 这一条域名对应的 IP 地址记录已经添加到了DNS的数据库中。
还有的时候,我们键入Nslookup ,会出现如下结果:
*** Can't find server name for domain: No response from server
*** Can't find : Non-existent domain
这时,说明测试主机在目前的网络中,根本没有找到可以使用的 DNS 服务器。此时,我们要对整个网络的连通性作全面的检测,并检查DNS服务器是否处于正常工作状态,采用逐步排错的方法,找出 DNS 服务不能启动的根源。
查询因特网域名服务器。
语法
nslookup [ -Option ... ] [ Host ] [ -NameServer ]
描述
nslookup 命令以两种方式查询域名服务器。交互式模式允许查询名称服务器获得有关不同主机和域的信息,或打印域中主机列表。在非交互式模式,打印指定的主机或域的名称和请求的信息。
当没有给出参数时进入交互式模式,或者当第一个参数是 -(减号)并且第二个是主机名或名称服务器的因特网地址时,nslookup 命令进入交互式模式。当没有给出参数时,命令查询缺省名称服务器。-(减号)调用可选的子命令(-Option... 变量)。除了 set 命令,这些命令在命令行指定并且必须在 nslookup 命令参数之前。set 子命令选项能在用户主目录的 .nslookuprc 文件有选择的指定。
当第一个参数是正在搜索的主机的名称或地址,nslookup 命令在非交互式模式下执行。在此情况下,主机名或名称服务器的因特网地址是可选的。
非交互式命令使用缺省名称服务器或由 NameServer 参数指定的名称服务器为指定的主机搜索信息。如果 Host 参数指定因特网地址并且查询类型是 A 或 PTR,则返回主机名称。如果 Host 参数指定名称并且名称没有结尾句点,缺省的域名追加到名称后。不在当前域中查找主机,在名称后追加单一的句点。
注:如果在用户主目录的 .nslookuprc 文件指定,set 子命令的 domain、srchlist、defname 和 search 选项能影响非交互式命令的行为。
子命令
下列命令可以随时输入 Ctrl-C 按键顺序终止。要退出,请输入 Ctrl-D 按键顺序或输入 exit。将内置命令作为主机名,在它之前带转义字符 \。不能标识的命令解释为主机名。
下列子命令由 nslookup 命令标识:
finger [Name] [> FileName] finger [Name] [>> FileName] |
在当前主机连接 finger 守护程序服务器。当前一个查询主机成功并且返回地址信息,如返回 set querytype=A 命令时,定义当前主机。Name 参数指定用户名,它是可选的。> 和 >> 字符可以用来重定向输出到新建或现有的文件。 |
server Domain lserver Domain |
更改缺省服务器为 Domain 参数指定的值。lserver 子命令使用初始服务器查询有关域的信息。server 子命令使用当前的缺省服务器。如果未发现授权应答,则任何可能有应答的附加服务器名返回。 |
root |
更改缺省服务器为 root 域名空间服务器。当前,使用主机 ns.nic.ddn.mil 。root 服务器名可以使用 set root 子命令更改。(root 子命令与 lserver ns.nic.ddn.mil 子命令同义)。 |
ls [Option] Domain [> FileName] ls [Option] Domain [>> 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 参数指定的值,并且更改域搜索列表为 Name1、Name2......参数指定的名称。可以指定由斜杠分开的六个名称的最大值。使用 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(不忽略)。
|
示例
-
更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10 秒,请输入:
nslookup -query=hinfo -timeout=10
-
设置域和搜索列表为三个名称,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,请输入:
nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
该命令覆盖缺省域名和 set domain 命令的搜索列表。使用 set all 命令显示列表。
-
确定名称是否指定主机、域、或其他实体,请输入:
nslookup -querytype=ANY austin.ibm.com
nslookup 命令返回有关名称 austin.ibm.com 的所有可用的信息,包括权限语句(SOA)、名称服务器、邮件交换器和主机因特网地址信息,如下:
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
-
要在 opus 主机上执行非交互式查询,请输入:
nslookup opus
nslookup 命令与 命令的应答相同。命令返回域名和 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 |
包含覆盖的缺省域。 |
阅读(1830) | 评论(0) | 转发(0) |