nslookup

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

显示可用于诊断域名系统 (DNS) 基础结构的信息。 在使用此工具之前,应熟悉 DNS 的工作原理。 仅当已安装 TCP/IP 协议时,nslookup 命令行工具才可用。

语法

nslookup [exit | finger | help | ls | lserver | root | server | set | view] [options]

参数

参数 说明
nslookup exit 退出 nslookup 命令行工具。
nslookup finger 与当前计算机上的接头程序服务器连接。
nslookup help 显示子命令的简短摘要。
nslookup ls 列出 DNS 域的信息。
nslookup lserver 将默认服务器更改为指定的 DNS 域。
nslookup root 将默认服务器更改为 DNS 域名空间的根目录的服务器。
nslookup server 将默认服务器更改为指定的 DNS 域。
nslookup set 更改影响查找的行为方式的配置设置。
nslookup set all 输出配置设置的当前值。
nslookup set class 更改查询类。 类指定信息的协议组。
nslookup set d2 打开或关闭详细调试模式。 每个数据包的所有字段都会输出。
nslookup set debug 打开或关闭调试模式。
nslookup set domain 将默认 DNS 域名更改为指定名称。
nslookup set port 将默认 TCP/UDP DNS 名称服务器端口更改为指定值。
nslookup set querytype 更改查询的资源记录类型。
nslookup set recurse 如果 DNS 名称服务器没有信息,则指示 DNS 名称服务器查询其他服务器。
nslookup set retry 设置重试次数。
nslookup set root 更改用于查询的根服务器的名称。
nslookup set search 将 DNS 域搜索列表中的 DNS 域名追加到请求,直到收到答案。 当 set 和 lookup 请求包含至少一个句点,但不以尾随句点结束时,此方法适用。
nslookup set srchlist 更改默认 DNS 域名和搜索列表。
nslookup set timeout 更改等待请求答复的初始秒数。
nslookup set type 更改查询的资源记录类型。
nslookup set vc 指定在向服务器发送请求时使用还是不使用虚拟线路。
nslookup view 排序并列出前面 ls 子命令或命令的输出。

注解

  • nslookup 命令行工具有两种模式:交互式和非交互式。

    • 如果需要仅查找单个数据片段,或者在脚本、命令行或 PowerShell 中使用了 nslookup,请使用非交互模式。 在非交互模式(也称为命令模式)下,第一个命令行参数是要查找的计算机名称或 IP 地址。 第二个参数则是 DNS 名称服务器的名称或 IP 地址。 如果忽略第二个参数,nslookup 将使用默认的 DNS 名称服务器。

    • 如果需要查找多个数据片段或设置多个配置,可以使用交互模式。 要进入交互模式,请在 nslookup 命令行中键入连字符 (-),而不是第一个参数。 对于第二个参数,请输入 DNS 名称服务器的名称或 IP 地址。 如果忽略第二个参数,nslookup 将使用默认的 DNS 名称服务器。 还可以通过在命令提示符处直接输入 nslookup,然后输入名称或 IP 地址以在交互式命令行中搜索来调用交互模式。

  • 单独输入 nslookup -nslookup 后,命令提示符将更改为交互式提示符 >。 在交互模式下,可以:

    • 在单独的行中输入名称或 IP 地址、set 变量和其他选项。
    • 随时通过按 Ctrl+B 键中断交互式命令。
    • 通过输入 exit 退出。
    • 将内置命令视为计算机名称,方法是在它前面加上转义字符(\)。 无法识别的命令将被解释为计算机名称。
  • 如果要查找的计算机是 IP 地址,并且查询针对 APTR 资源记录类型,则返回计算机的名称。

  • 如果要查找的计算机是一个名称,并且没有尾随句点,则将默认 DNS 域名追加到该名称后。 此行为取决于以下 set 子命令的状态:domain、srchlist、 defname 和 search。

  • 如果查找请求失败,命令行工具会提供以下错误消息之一:

    错误消息 说明
    超时 服务器在经过一定时间和一定次数的重试后未响应请求。 可以使用 nslookup set timeout 命令设置超时期限。 可以使用 nslookup set retry 命令设置重试次数。
    服务器无响应 服务器计算机上未运行 DNS 名称服务器。
    无记录 DNS 名称服务器没有计算机当前查询类型的资源记录,尽管计算机名称有效。 查询类型是使用 nslookup set querytype 命令指定的。
    不存在的域 计算机或 DNS 域名不存在。
    连接被拒绝或无法访问网络 无法连接到 DNS 名称服务器或接头程序服务器。 ls 和 finger 请求通常会发生此错误。
    服务器故障 DNS 名称服务器在其数据库中发现内部不一致,无法返回有效答案。
    拒绝 DNS 名称服务器拒绝为请求提供服务。
    格式错误 DNS 名称服务器发现请求数据包的格式不正确。 这可能指示 nslookup 中存在错误。

示例

在 nslookup 非交互模式下,可以在 Windows 命令行或脚本中指定参数和选项。 在交互式模式下,可以在交互式命令提示符处在单独的行上指定参数和选项。

非交互模式

在 nslookup 非交互模式下,第一个参数是要查找的计算机,第二个参数是要使用的 DNS 名称服务器。 如果未指定第二个参数,nslookup 将使用默认 DNS 名称服务器。 以下示例在非交互模式下使用 nslookup

  • 以下示例在位于 1.1.1.1 的 DNS 名称服务器上查找域名 mydomain.com 的 IP 地址:

    nslookup mydomain.com 1.1.1.1
    
  • 以下示例在默认 DNS 名称服务器上查找 IP 地址 4.4.4.4 的域名:

    nslookup 4.4.4.4
    
  • 要指定选项,可以使用 nslookup -<option>。 例如,以下命令可启用 nslookup debug 选项以获取有关发送的数据包的详细信息。

    nslookup -debug mydomain.com
    
  • 要返回某些类型的记录或信息,请使用 -type=<resourcerecordtype> 选项。 例如,以下命令仅返回 IPv6 记录类型:

    nslookup -type=AAAA mydomain.com
    
  • 可以在命令行中组合选项和资源记录类型查询。 以下示例启用调试输出,检索 IPv6 和 IPv4 地址,不尝试使用搜索域,使用递归查找,并使用 1.1.1.1 DNS 查找服务器:

    nslookup -debug -type=A+AAAA -nosearch -recurse mydomain.com 1.1.1.1
    

交互模式

要使用交互模式,请输入 - 而不是 nslookup 命令行的第一个参数,或直接输入 nslookup。 然后,命令提示符将更改为交互式提示 >。 以下示例显示了交互式模式命令。

  • 以下命令将 nslookup 置于交互式模式下,并将 1.1.1.1 设置为默认 DNS 查找服务器:

    nslookup - 1.1.1.1
    
  • 交互式提示符处的以下命令可返回当前服务器的 nslookup 选项和参数设置:

    set all
    
  • 交互式提示符处的以下命令可返回 mydomain.com 的 IP 地址:

    mydomain.com
    
  • 交互式提示符处的以下命令可将默认 DNS 名称服务器更改为 4.4.4.4

    server 4.4.4.4
    
  • 交互式提示符处的以下命令可将查询资源记录类型设置为 HINFO

    set type=HINFO
    
  • 交互式提示符处的以下命令可退出交互式模式,并返回到 Windows 命令提示符:

    exit