dig —发送域名查询信息包到域名服务器
SYNOPSIS(总览)dig[@server]domain[⟨query-type⟩][⟨query-class⟩][+⟨query-option⟩][-⟨dig-option⟩][%comment]
DESCRIPTION(描述)Dig (domain information groper域名信息搜索)是一个灵活的命令行工具,它可以用来从域名系统服务器中收集信息.Dig有两种模式:简单交互模式用于简单的查询,而批处理模式则可以对包含多个查询条目的列表执行查询.所有查询选项都可以从命令行输入.
通常简单的dig用法为下列格式:
dig @server domain query-type query-class这里:
server 可为域名或者以点分隔的Internet地址. 如果省略该可选字段, dig 会尝试使用你机器的默认域名服务器.注意:如果指定了一个域名,那么将使用域名系统解析程序(即BIND)来进行解析.如果你的系统不支持DNS,那么可能必须指定一个以点分隔的地址.另外一种选择是,如果在你配置的某个地方有一台这样的服务器,那么你所要做的就是建立/etc/resolv.conf并在其中指明默认域名服务器的位置,这样server自身就可以解析了.参看resolver(5)以获得 /etc/resolv.conf相关的信息.警告: 修改/etc/resolv.conf同样会对标准的解析程序库产生影响,而(潜在地)某些程序会要用到它.作为一种选择,用户可设置环境变量LOCALRES为指定的文件,这将用来取代/etc/resolv.conf(LOCALRES是特定针对 dig解析程序的,并不会牵涉到标准解析程序).如果 LOCALRES变量未设置或者指定的文件不能读,那么就使用/etc/resolf.conf.
domain 是指一个你请求信息的域名. 参看 -x 选项(在该部分的 OTHER OPTIONS 节中有介绍)以获知指定反向地址查询的便捷方法. query-type 是指你所请求的信息类型(DNS查询类型). 如果省略,默认为 “a” (T_A = address). 以下类型是可识别的: a T_A 网络地址 any T_ANY 所有/任何与指定域相关的信息 mx T_MX 该域的邮件网关 ns T_NS 域名服务器 soa T_SOA 区域的授权记录 hinfo T_HINFO 主机信息 axfr T_AXFR 区域传输记录(必须是询问一台授权的服务器) txt T_TXT 任意的字符串信息(参看RFC1035以获得完整的列表.)
query-class 是指在查询中请求的网络等级.如果省略,默认为 “in” (C_IN = Internet). 以下的等级是可识别的: in C_IN Internet等级的域 any C_ANY 所有/任何等级的信息(参看RFC1035以获得完整的列表.)
注意:“Any”可以用来指定一个等级和/或查询的一种类型. Dig会将第一次出现的“any” 解释为query-type = T_ANY.为了指明 query-class =C_ANY,你必须或者指定“any” 两次,或者使用-c选项(见下面)设置query-class.
OTHEROPTIONS(其它选项) %ignored-comment “%” 用来引用一个不用作解释的参数. 如果正以批处理的模式运行 dig 这可能很有用. 因为不用对一组查询中的每个 @server-domain-name 进行解析,你就可以避免这样做的额外开销, 并且仍然能够在命令行上以域名作为参数. 例如:dig @128.9.0.32 %venera.isi.edu mx isi.edu-⟨digoption⟩ “-” 用来指定一个影响 dig 操作的选项. 当前可用的选项有(尽管不能保证都有用): -xdot-notation-address 这是指定反向地址映射的便捷的方法. 不用写 “dig 32.0.9.128.in-addr.arpa”, 你可以简单地写成 “dig -x 128.9.0.32”. -ffile dig 批处理模式的文件.该文件包含了一组查询清单 ( dig 命令行),它们将一个接一个地执行.以 ‘; ,’ ‘#’ 或 ‘\n’ 开头的行将忽略.其它选项 仍然可以在命令行上出现,而且对 每个批处理查询都有效. -Ttime 当运行于批处理模式下时,两次接着的查询之间的 时间间隔,以秒计. 可以用来保持两个或多个批处理 dig 命令大致同步运行.默认为零. -pport 端口号.通过监听非标准端口号来查询 域名服务器.默认为53. -P[ping-string] 在查询返回之后,执行一次 ping(8) 命令以获得响应时间的对照关系.这在调用shell上 显得不那么自然. 该命令显示的最后三行统计信息为:ping -s -server_name -56 -3如果可选的“ping_string”存在,那么会覆盖shell命令中的“ping-s”.
-tquery-type 指定查询类型.可以指定为一个将包含在类型字段 中的整数值,也可以使用 上面讨论的缩写助记符(即 mx = T_MX). -cquery-class 指定查询等级.可以指定为一个将包含在等级字段 中的整数值,也可以使用 上面讨论的缩写助记符(即in = C_IN). -kkeydir:keyname 用TSIG密钥指定的的密钥名来签署这次查询, 该密钥名在目录keydir下. -envsav 该标识指定 dig 的环境变量 (默认的,显示选项,等等.),在所有参数都解释了之后, 应保存它们到 一个文件中以使之成为默认的环境变量. 如果你不喜欢默认的标准设置而又不想在每次使用 dig 时带大量的选项,那么这很有用. 环境变量包括解析程序状态变量标识,超时和重试次数 以及详细控制 dig 输出的标识(见下面). 如果shell环境变量 LOCALDEF 设置为一个文件的名字,那么此即为默认的 dig 环境变量所保存的地方.如果没有,那么会在当前 工作目录下创建 “DiG.env”.注意:LOCALDEF是特定针对 dig解析程序,而它不会影响标准解析程序库的操作.
每当 dig执行时,它会查找“./DiG.env”或者在shell环境变量LOCALDEF中指定的文件.如果这样的文件存在而且可读,那么在解释任何参数之前, 先从该文件中恢复环境变量.
-envset 该标识只影响批处理查询的运行.当在 dig 的批处理文件一行上指定了 “-envset” 时,在参数之后的 dig 环境变量会被解释为批处理文件执行期间 默认的环境变量, 或者 直到指定了 “-envset” 的下一行为止. -[no] cm stick 该标识只影响批处理查询的运行. 它指定 dig 环境变量(通过 “-envset” 开关变量初始化读入或设置)会在 dig 批处理文件每次查询(行)之前重建. 默认的 “-nostick” 表示 dig 环境变量不是固定的,因而在 dig 批处理文件中单行上指定的选项将对剩余的行 继续产生作用(也即,它们不会恢复成 “sticky(固定的)” 默认值).+⟨query-option⟩ “+” 用来指定一个在查询信息包中需修改的或者 需用来修改 dig 输出细节的选项.这些选项中的许多与 nslookup(8) 所承认的参数相同. 如果一个选项需带参数,那么格式如下:+ keyword [=value]绝大多数关键字可简写.“+”选项的解释是非常直白的—值与它的关键字之间千万不能用空格分隔.当前可用的关键字有:
Keyword Abbrev. Meaning [default]
(关键字) (缩写)(含义) [默认值]
[no]debug (deb) 打开/关闭调试模式 [deb] [no]d2 打开/关闭特殊的调试模式 [nod2] [no]recurse (rec) 使用/不使用递归查询 [rec] retry=# (ret) 设置重试次数为# [4] time=# (ti) 设置超时长度为#秒[4] [no] ko 保留公开的选项(keep open options)(隐含vc) [noko] [no] vc 使用/不使用虚拟电路 [novc] [no]defname (def) 使用/不使用默认的域名 [def] [no]search (sea) 使用/不使用域搜索列表 [sea] domain=NAME (do) 设置默认的域名为 NAME [no]ignore (i) 忽略/不忽略截断(trunc.)错误 [noi] [no]primary (pr) 使用/不使用主服务器 [nopr] [no]aaonly (aa) 表示只包含授权查询的标识 [noaa] [no] cmd 重复(echo)解释的参数 [cmd] [no]stats (st) 显示查询统计信息 [st] [no]Header (H) 显示基本的包头 [H] [no]header (he) 显示包头的标识 [he] [no]ttlid (tt) 显示TTLs(Time to Live) [tt] [no] cl 显示等级信息 [nocl] [no] qr 显示向外的查询 [noqr] [no]reply (rep) 显示响应信息 [rep] [no]ques (qu) 显示询问部分 [qu] [no]answer (an) 显示应答部分 [an] [no]author (au) 显示授权的部分 [au] [no]addit (ad) 显示附加的部分 [ad] pfdef 设置为默认显示位 pfmin 设置为最小的默认显示位 pfset=# 设置显示位为# (#可以为十六进制/八进制/十进制) pfand=# 位和显示位设为#(bitwise and print flags with #) pfor=# 位或显示位设为#(bitwise or print flags with #)当发送数据报查询时,retry 和 time选项会影响解析程序库的重传策略.其算法如下:
for i = 0 to retry - 1for j = 1 to num_serverssend_querywait((time * (2**i)) / num_servers)endend(注意: dig通常取“num_servers”的值为1 . )
DETAILS(细节)Dig以前要求BIND的resolver(3)库的版本作一些细微的修改.从BIND4.9起,BIND的解析程序已经修补好并可以正常地与dig 一起工作.实质上, dig在解释参数和设置适合的参数时是直来直去的(虽然并不巧妙)Dig 会用到resolver(3)的例程res_init(),res_mkquery(),res_send()以及访问 _res结构.
ENVIRONMENT(环境变量) LOCALRES 用来替换Pa /etc/resolv.conf的文件 LOCALDEF 默认的环境变量文件另见上面对-envsav, -envset, 和-[no]stick 选项的说明.
FILES(相关文件) /etc/resolv.conf 初始化的域名和域名服务器地址 ./DiG.env 默认的保存默认选项的文件SEEALSO(另见)named(8),resolver(3),resolver(5),nslookup(8).
STANDARDS(标准)RFC 1035.
AUTHOR(作者)Steve Hotz hotz@isi.edu
ACKNOWLEDGMENTS(致谢)Dig使用了源自nslookup(8)的函数, 其作者为Andrew Cherenson.
BUGSDig是蠕变特色("creepingfeaturism")的一个 典型实例 --这是因在其开发过程中就考虑到了一些潜在应用而导致的结果.它可能会从这种严格的限定中受益.同样,他们设立的显示位以及条目的间隔尺寸很明显地也是一种十分特别的创意.
当问题出在解析程序身上时,Dig不会总是能够正常地退出(在适合的状况下)(注意:绝大多数一般的exit情况是能够处理的).当运行于批处理模式下时尤其恼火.如果不能正常退出(又无法俘获)的话,那么整个批处理将终止;如果俘获了这样的事件,dig就只是继续下一个查询罢了.
[中文版维护人]riser
[中文版最新更新]2001/7/19
《中国Linux论坛man手册页翻译计划》http://cmpp.linuxforum.net
跋本页面中文版由中文man 手册页计划提供。中文 man手册页计划:https://github.com/man-pages-zh/manpages-zh