转自:http://blog.chinaunix.net/uid-28933499-id-3750357.html
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 命令标识:
示例
更改缺省查询类型类型为主机信息(HINFO)并且初始超时时间为 10 秒,请输入:
nslookup -query=hinfo -timeout=10
设置域和搜索列表为三个名称,lcs.MIT.EDU、ai.MIT.EDU 和 MIT.EDU,请输入:
nslookup -set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU
该命令覆盖缺省域名和 set domain 命令的搜索列表。使用 set all 命令显示列表。
nslookup -querytype=ANY austin.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.com
serial=1993081210,refresh=3600,retry=300,expire=604800, min=86400
austin.ibm.com nameserver = ausname1.austin.ibm.com austin.ibm.com
nameserver = bb3names.austin.ibm.com austin.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, mail exchanger =
netmail.austin.ibm.com austin.ibm.com inet address = 129.35.208.98
ausname1.austin.ibm.com inet address = 129.35.17.2
bb3names.austin.ibm.com inet address = 129.35.208.99
benames.austin.ibm.com inet address = 9.3.199.2 b45names.austin.ibm.com
inet address = 129.35.49.2 bbcnames.austin.ibm.com inet address =
129.35.17.68 netmail.austin.ibm.com inet address = 129.35.208.98
nslookup opus
nslookup 命令与 host 命令的应答相同。命令返回域名和 opus 主机的因特网地址,如下:
Name: opus.austin.ibm.com Address: 129.35.129.223
如果主机 opus 已经是名称服务器(以空 /etc/resolv.conf 文件正在运行 named 守护程序的主机),下列信息将会显示:
Server: loopback Address: 0.0.0.0
退出状态
当查询请求不成功,则 nslookup 命令返回下列错误消息之一:
表示服务器在超出指定的重试次数后不响应请求。 |
|
表示名称服务器不在服务器上运行。 |
|
表示服务器没有主机的指定查询类型的资源记录,即使主机名有效。 |
|
表示主机或域名不存在。 |
|
表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。 |
|
表示在查询时,不能连接到名称或远程用户信息服务命令服务器。该错误是与 ls 和 finger 请求有关的典型错误。 |
|
表示名称服务器遇到内部矛盾并且不能返回有效的应答。 |
|
表示名称服务器拒绝请求服务。 |
|
表示名称服务器拒绝数据包请求因为格式不正确。 |
文件
包含 nslookup 命令。 |
|
包含初始域名和名称服务器地址。 |
|
包含用户的初始选项。 |
|
包含主机别名。 |
|
包含覆盖的缺省域。 |
***值得提醒的是命令行参数中的[- name server]上的-后要有一空格,实际上 –
是第一个参数,曾经许多人都觉得这个参数不对,不能在命令行指定域名服务器,实际上都是这个原因。这个用法对检查某个域名服务器的解析是否正确很有用。比如三个运营商在当地的域名解析是否正确,就不用采用每次都修改电脑的域名服务器来实现,只要在命令行加上这个参数就行。
***nslookup不能查询dns的递归或者迭代,功能也比dig弱。