转贴http://support.microsoft.com/default.aspx/kb/200525/zh-cn
Nslookup.exe 是命令行管理工具,用于测试或解决 DNS 服务器问题。此工具是通过“控制面板”与 TCP/IP 协议一起安装的。本文包含使用 Nslo...
<script type="text/javascript"></script>
Nslookup.exe 是命令行管理工具,用于测试或解决 DNS 服务器问题。此工具是通过“控制面板”与 TCP/IP 协议一起安装的。本文包含使用 Nslookup.exe 的若干提示。
更多信息
要使用 Nslookup.exe,请注意以下方面: TCP/IP 协议必须安装在运行 Nslookup.exe 的计算机上。 在 Microsoft TCP/I...
<script type="text/javascript"></script>
要使用 Nslookup.exe,请注意以下方面:
Nslookup.exe 可以在两种模式下运行:交互式和非交互式。当需要返回单块数据时,请使用非交互式模式。非交互模式的语法如下:
要在交互模式下启动 Nslookup.exe,只需在命令提示符下输入 nslookup:
在命令提示符下输入 help 或 ? 将生成可用的命令列表。在命令提示符下输入的任何内容,如果它不是有效命令,则假设它是主机名,尝试使用默认服务器来解析它。要中断交互命令,请按 CTRL+C。要退出交互模式并返回到命令提示符下,并在命令提示符下输入 exit。
以下是帮助输出,其中包含选项的完整列表:
通过在命令提示符下运行 set 命令,可以在 Nslookup.exe 中设置许多不同的选项。要得到这些选项的完整列表,只需输入 set all。请参见以上内容,在 set 命令下,得到可用选项的打印输出。
要在域名空间中查找不同的数据类型,请在命令提示符下使用 set type 或 set q[uerytype] 命令。例如,要查询邮件交换器数据,请输入:
第一次查询是查找远程名称,答案是权威的,但随后的查询是非权威的。第一次查询远程主机时,本地 DNS 服务器与作为该域权威的 DNS 服务器取得联系。然后,本地 DNS 服务器缓存该信息,以便从本地服务器缓存中非权威地回答随后的查询。
要直接查询另一个名称服务器,请使用 server 或 lserver 命令切换到该名称服务器。 lserver 命令使用本地服务器得到要切换的服务器地址,而 server 命令使用当前默认服务器得到该地址。
例如:
使用 ls 命令,Nslookup 可以用于转移整个区域。查看远程域中的所有主机,这是有用的。 ls 命令的语法如下:
不带参数使用 ls 命令将返回所有地址和名称服务器数据的列表。 -a 参数将返回别名和正式名称, -d 将返回所有数据,而 -t 将按类型进行筛选。
例如:
在 DNS 服务器中可以按块转移区域,以便只有授权的地址和网络才可以执行此操作。如果设置了区域安全,将返回以下错误消息:
有关其它信息,请参见以下 Microsoft Knowledge Base 文章:
当启动 Nslookup.exe 工具时,以下错误可能出现:
备注: w.x.y.z 是在“DNS 服务搜索顺序”列表中列出的第一个 DNS 服务器。
第一个错误指出不能连接 DNS 服务器,或者该计算机上的服务没有运行。要解决此问题,启动该服务器上的 DNS 服务,或检查可能存在的连接问题。
第二个错误指出在“DNS 服务搜索顺序”列表中还没有定义服务器。要解决此问题,请将有效 DNS 服务器的 IP 地址添加到此列表中。
有关其它信息,请参见以下 Microsoft Knowledge Base 文章:
启动 Nslookup.exe 工具时,可能出现以下错误:
当没有名称服务器 IP 地址的 PTR 记录时,会出现此错误。当 Nslookup.exe 启动时,它执行反向搜索,以得到默认服务器的名称。如果没有 PTR 数据,则返回此错误消息。要解决此问题,请确保反向搜索区域存在,并包含名称服务器的 PTR 记录。
有关其它信息,请参见以下 Microsoft Knowledge Base 文章:
当在子域上执行查询或进行区域转移时,Nslookup 可能返回以下错误:
在 DNS Manager 中,可以在主区域下添加一个新域,这样就创建了一个子域。用这种方法创建子域并不为该域创建一个单独的 db 文件,这样在该域进行查询或在该域进行区域转移时将会产生以上错误。在父域上进行区域转移时将同时列出父域数据和子域数据。要解决此问题,请在 DNS 服务器上为该子域创建一个新主域。
- TCP/IP 协议必须安装在运行 Nslookup.exe 的计算机上。
- 在 Microsoft TCP/IP 属性页的 DNS 选项卡的“DNS 服务搜索顺序”字段中必须至少指定一个 DNS 服务器。
- Nslookup 一直从当前上下文中的名称中抽去后缀。如果无法进行完全合格的名称查询(即,使用尾随点),那么查询将被附加到当前上下文中。例如,当前 DNS 设置是 att.com,并且在 www.microsoft.com 中执行查询,那么第一个查询将作为 www.microsoft.com.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 命令下,得到可用选项的打印输出。
查找不同的数据类型
<script type="text/javascript"></script>要在域名空间中查找不同的数据类型,请在命令提示符下使用 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 服务器缓存该信息,以便从本地服务器缓存中非权威地回答随后的查询。
直接从另一个名称服务器中进行查询
<script type="text/javascript"></script>要直接查询另一个名称服务器,请使用 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 转移整个区域
<script type="text/javascript"></script>使用 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 Knowledge Base 文章:
193837
(http://support.microsoft.com/kb/193837/EN-US/ ) Windows NT 4.0 DNS 服务器默认区域安全设置
Nslookup.exe 的疑难解答
<script type="text/javascript"></script>默认服务器超时
<script type="text/javascript"></script>当启动 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 Knowledge Base 文章:
172060
(http://support.microsoft.com/kb/172060/EN-US/ ) NSLOOKUP:找不到地址 127.0.0.1 的服务器名
启动 Nslookup.exe 时找不到服务器名
<script type="text/javascript"></script>启动 Nslookup.exe 工具时,可能出现以下错误:
*** Can't find server name for address w.x.y.z: Non-existent domain
当没有名称服务器 IP 地址的 PTR 记录时,会出现此错误。当 Nslookup.exe 启动时,它执行反向搜索,以得到默认服务器的名称。如果没有 PTR 数据,则返回此错误消息。要解决此问题,请确保反向搜索区域存在,并包含名称服务器的 PTR 记录。
有关其它信息,请参见以下 Microsoft Knowledge Base 文章:
172953
(http://support.microsoft.com/kb/172953/EN-US/ ) 如何安装和配置 Microsoft DNS Server
Nslookup 在子域上无法执行
<script type="text/javascript"></script>当在子域上执行查询或进行区域转移时,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 服务器上为该子域创建一个新主域。