D-nslookup命令详解

Nslookup 命令详解Nslookup 显示可用来诊断域名系统 (DNS) 基础结构的信息。只有在已安装 TCP/IP 协议的情况下才可以使用 Nslookup 命令行工具。语法nslookup

Nslookup 命令详解

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,并且在 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 命令下,得到可用选项的打印输出。

查找不同的数据类型

要在域名空间中查找不同的数据类型,请在命令提示符下使用 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 服务器上为该子域创建一个新主域。

实例:

serial = 2010062300 (当前序列号是2010062300。这个序列号的作用是当辅域名服务器来copy 时候这个文件时,如果号码增加了就copy )

refresh = 10800 (3 hours) (辅域名服务器每隔3小时查询一个主服务器) retry = 3600 (3 hours) (当辅域名服务试图在主服务器上查询更时,而连接失败了,辅域名服务器每隔3小时访问主域名服务器)

expire = 691200 (8 days) (辅域名服务器在向主服务更新失败后,8天后删除w ww.net.com. 中的记录。)

default TTL = 50000 (13 hours 53 mins 20 secs) (缓存服务器保存记录的时间是13小时53分钟20秒。也就是告诉202.96.209.5保存seebod.com. 域的解析记录为13小时53分钟20秒)

清除DNS 缓存信息命令:ipconfig /flushdns

,

DNS 根IP

全球13个DNS 根(rootDNS )服务器信息

A.root-servers.net 198.41.0.4 美国(另支持IPv6)

B.root-servers.net 192.228.79.201美国

C.root-servers.net 192.33.4.12 法国

D.root-servers.net 128.8.10.90 美国

E.root-servers.net 192.203.230.10美国

F.root-servers.net 192.5.5.241 美国(另支持IPv6) G.root-servers.net 192.112.36.4 美国

H.root-servers.net 128.63.2.53 美国(另支持IPv6) I .root-servers.net 192.36.148.17 瑞典

J.root-servers.net 192.58.128.30 美国(另支持IPv6) K.root-servers.net 193.0.14.129 英国(另支持IPv6) L.root-servers.net 199.7.83.42 美国(另支持IPv6) M.root-servers.net 202.12.27.33 日本(另支持IPv6)

标签: