NSlookup命令的用法
用了域名服务器后,经常要查询域名的解析情况,nslookup是常用工具之一,无论是linux或者是window下都有这个工具,用好它对平常的域名解析情况,或者对域名服务器的维护都有帮助。
用途
查询因特网域名服务器。
语法
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 守护程序服务器。当前一个查询主机成功并且返回地址信息,如返回set querytype=A 命令时,定义当前主机。Name参数指定用户名,它是可选的。> 和 >>字符可以用来重定向输出到新建或现有的文件。 |
server Domain | 更改缺省服务器为 Domain 参数指定的值。lserver子命令使用初始服务器查询有关域的信息。server子命令使用当前的缺省服务器。如果未发现授权应答,则任何可能有应答的附加服务器名返回。 |
root | 更改缺省服务器为 root 域名空间服务器。当前,使用主机 ns.nic.ddn.mil 。root 服务器名可以使用set root子命令更改。(root 子命令与 lserverns.nic.ddn.mil 子命令同义)。 |
ls [Option]Domain [>FileName] | 为指定的 Domain 列出可获得的信息,有选择的创建或追加输出到 FileName参数指定的文件。缺省输出包含主机名和它们的因特网地址。Option 参数的可能值是:
|
view FileName | 将以前 ls 命令的输出排序并且使用 more命令将其列出。 |
help | |
? | 显示命令的简要总结。 |
exit | 退出程序。 |
setKeyword[=Value] | 改变影响查询的状态信息。该命令可以在命令行指定或有选择的在用户主目录的 .nslookuprc文件指定。有效的关键字是:
|
type=Value | 更改信息查询为下列值之一。缺省值是 A。
|
示例
更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10秒,请输入:
nslookup -query=hinfo-timeout=10
设置域和搜索列表为三个名称,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,请输入:
nslookup -setsrchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
该命令覆盖缺省域名和 setdomain 命令的搜索列表。使用 setall 命令显示列表。
确定名称是否指定主机、域、或其他实体,请输入:
nslookup -querytype=ANYaustin.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.comserial=1993081210,refresh=3600,retry=300,expire=604800, min=86400austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.comnameserver = bb3names.austin.ibm.com aust in.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, mailexchanger = netmail.austin.ibm.com austin.ibm.com inet address =129.35.208.98 ausname1.austin.ibm.com inet address = 129.35.17.2bb3names.austin.ibm.com inet address = 129.35.208.99benames.austin.ibm.com inet address = 9.3.199.2b45names.austin.ibm.com inet address = 129.35.49.2bbcnames.austin.ibm.com inet address = 129.35.17.68netmail.austin.ibm.com inet address = 129.35.208.98
要在 opus 主机上执行非交互式查询,请输入:
nslookup opus
nslookup 命令与 host命令的应答相同。命令返回域名和 opus主机的因特网地址,如下:
Name: opus.austin.ibm.comAddress: 129.35.129.223
如果主机 opus已经是名称服务器(以空 /etc/resolv.conf 文件正在运行named 守护程序的主机),下列信息将会显示:
Server: loopback Address:0.0.0.0
退出状态
当查询请求不成功,则 nslookup命令返回下列错误消息之一:
TimedOut | 表示服务器在超出指定的重试次数后不响应请求。 |
NoResponse from Server | 表示名称服务器不在服务器上运行。 |
NoRecords | 表示服务器没有主机的指定查询类型的资源记录,即使主机名有效。 |
Non-Existent Domain | 表示主机或域名不存在。 |
Connection Refused | 表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和finger 请求有关的典型错误。 |
NetworkIs Unreachable | 表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和finger 请求有关的典型错误。 |
ServerFailure | 表示名称服务器遇到内部矛盾并且不能返回有效的应答。 |
Refused | 表示名称服务器拒绝请求服务。 |
FormatError | 表示名称服务器拒绝数据包请求因为格式不正确。 |
文件
/usr/bin/nslookup | 包含 nslookup 命令。 |
/etc/resolv.conf | 包含初始域名和名称服务器地址。 |
$HOME/.nslookuprc | 包含用户的初始选项。 |
HOSTALIASES | 包含主机别名。 |
LOCALDOMAIN | 包含覆盖的缺省域。 |
***值得提醒的是命令行参数中的[- name server]上的-后要有一空格,实际上 -是第一个参数,曾经许多人都觉得这个参数不对,不能在命令行指定域名服务器,实际上都是这个原因。这个用法对检查某个域名服务器的解析是否正确很有用。比如三个运营商在当地的域名解析是否正确,就不用采用每次都修改电脑的域名服务器来实现,只要在命令行加上这个参数就行。
***nslookup不能查询dns的递归或者迭代,功能也比dig弱。