Nslookup.exe 是用于对 DNS 服务器进行测试和故障排除的命令行管理工具。此工具已通过控制面板与 TCP/IP 协议一起安装。本文包含有关使用 Nslookup.exe 的几点提示。
若要使用 Nslookup.exe,请注意以下事项:
Nslookup.exe 可在两种模式下运行:交互式和非交互式。当需要返回单块数据时,请使用非交互式模式。非交互模式的语法如下:
若要在交互模式下启动 Nslookup.exe,只需在命令提示符处键入“nslookup”:
在命令提示符处键入“help”或“?”将生成可用的命令列表。在命令提示符处键入的未被识别为有效命令的任何内容将被假定为主机名,然后将尝试使用默认服务器对其进行解析。若要中断交互式命令,请按 CTRL+C。若要退出交互式模式并返回到命令提示符处,请在命令提示符处键入 exit。
以下是帮助输出,其中包含完整的选项列表:
通过在命令提示符处运行 set 命令,可以在 Nslookup.exe 中设置许多不同的选项。若要获取完整的选项列表,请键入 set all。请参阅以上内容,在 set 命令下,显示了可用选项的打印输出。
第一次查询是查找远程名称,答案具有权威性,但随后的查询则不具有权威性。第一次查询远程主机时,本地 DNS 服务器与该域的权威 DNS 服务器取得联系。然后,本地 DNS 服务器缓存该信息,以便从本地服务器缓存中非权威地回答随后的查询。
例如:
不带参数使用 ls 命令将返回所有地址和名称服务器数据的列表。 -a 开关将返回别名和规范名称, -d 将返回所有数据,而 -t 将按类型进行筛选。
例如:
在 DNS 服务器中可以按块转移区域,以便只有授权的地址和网络才可以执行此操作。如果已设置区域安全,则将返回以下错误:
有关其他信息,请参阅以下 Microsoft 知识库文章:
注意: w.x.y.z 是 DNS 服务搜索顺序列表中列出的第一个 DNS 服务器。
第一个错误指出,无法连接 DNS 服务器或者服务未在该计算机上运行。若要更正此问题,请在该服务器上启动 DNS 服务,或检查可能存在的连接问题。
第二个错误指出,尚未在 DNS 服务搜索顺序列表中定义任何服务器。若要更正此问题,请向此列表中添加有效 DNS 服务器的 IP 地址。
有关其他信息,请参阅以下 Microsoft 知识库文章:
如果没有名称服务器 IP 地址的 PTR 记录,则会出现此错误。启动 Nslookup.exe 时,它会执行反向搜索,以获取默认服务器的名称。如果不存在 PTR 数据,则会返回此错误消息。若要更正此问题,请确保存在反向搜索区域且其中包含名称服务器的 PTR 记录。
有关其他信息,请参阅以下 Microsoft 知识库文章:
在 DNS 管理器中,可以在主区域下添加一个新域,这样就创建了一个子域。以这种方式创建子域不会为该域创建单独的 db 文件,因此查询该域或在其中进行区域转移将会生成以上错误。在父域上运行区域转移将同时列出父域和子域的数据。若要解决此问题,请在 DNS 服务器上为该子域创建新的主区域。
- TCP/IP 协议必须安装在运行 Nslookup.exe 的计算机上
- 从命令提示符运行 IPCONFIG /ALL 命令时,必须至少指定一个 DNS 服务器。
- Nslookup 一直从当前上下文中的名称中抽去后缀。如果无法进行完全合格的名称查询(即,使用尾随点),那么查询将被附加到当前上下文中。例如,当前的 DNS 设置是 att.com,并且在 www.microsoft.com 中执行查询;第一个查询将作为 www.microsoft.com.att.com 而失败,因为查询是不合格的。这种方式与其他供应商的 Nslookup 版本可能不一致,本文的目的在于阐明 Microsoft Windows NT Nslookup.exe 的处理方式。
- 如果您已经使用 Microsoft TCP/IP 属性页 DNS 选项卡上定义的“域后缀搜索顺序”中的搜索列表,将不会发生抽取操作。查询将被附加到列表中指定的域后缀中。若要避免使用搜索列表,请始终使用“完全合格的域名”(即,在名称中添加尾随点)。
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
有关其他信息,请参阅以下 Microsoft 知识库文章:
193837
(http://support.microsoft.com/kb/193837/zh-cn/ )
Windows NT 4.0 DNS Server 默认域安全设置
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 地址。
有关其他信息,请参阅以下 Microsoft 知识库文章:
172060
(http://support.microsoft.com/kb/172060/zh-cn/ )
NSLOOKUP:找不到地址 127.0.0.1 的服务器名称
启动 Nslookup.exe 时,找不到服务器名称
启动 Nslookup.exe 实用程序时,可能会出现以下错误:
*** Can't find server name for address w.x.y.z:Non-existent domain
如果没有名称服务器 IP 地址的 PTR 记录,则会出现此错误。启动 Nslookup.exe 时,它会执行反向搜索,以获取默认服务器的名称。如果不存在 PTR 数据,则会返回此错误消息。若要更正此问题,请确保存在反向搜索区域且其中包含名称服务器的 PTR 记录。
有关其他信息,请参阅以下 Microsoft 知识库文章:
172953
(http://support.microsoft.com/kb/172953/zh-cn/ )
如何安装和配置 Microsoft DNS 服务器
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 管理器中,可以在主区域下添加一个新域,这样就创建了一个子域。以这种方式创建子域不会为该域创建单独的 db 文件,因此查询该域或在其中进行区域转移将会生成以上错误。在父域上运行区域转移将同时列出父域和子域的数据。若要解决此问题,请在 DNS 服务器上为该子域创建新的主区域。