Linux DNS查询命令
Linux下DNS查询命令使用host、dig、nslookup。
一、安装软件包
dig和nslookup需要安装相关软件包。
Centos:
# yum install bind-utils
Debian:
# apt-get update
# apt-get install dnsutils
另外查询前先要在/etc/resolv.conf设置好dns服务器IP。
二、使用方法
1、host命令
host命令是一个简单的DNS查询工具。
一般格式:
host 域名
host -a 域名
常用选项:
-a:相当于"-v -t any"。
-t type:指定要查询的记录类型。默认查询A、AAAA、MX记录。
-v:详细方式输出。
举例:
# host www.163.com
www.163.com is an alias for www.163.com.lxdns.com.
www.163.com.lxdns.com is an alias for 163.xdwscache.glb0.lxdns.com.
163.xdwscache.glb0.lxdns.com has address 113.107.76.19
2、dig命令
dig命令是一个功能强大的DNS查询命令。
一般格式:
dig [@global-server] [domain] [q-type] [q-class] {q-opt} {d-opt}
参数说明:
@global-server:默认是以/etc/resolv.conf作为DNS查询的主机,这里可以填入其它DNS主机IP。
domain:要查询的域名。
q-type:查询记录的类型,例如a、any、mx、ns、soa、hinfo、axfr、txt等,默认查询a。
q-class:查询的类别,相当于nslookup中的set class。默认值为in(Internet)。
q-opt:查询选项,可以有好几种方式,比如:-f file为通过批处理文件解析多个地址;-p port指定另一个端口(缺省的DNS端口为53),等等。
d-opt:dig特有的选项。使用时要在参数前加上一个“+”号。
d-opt常用选项:
+vc:使用TCP协议查询。
+time=###:设置超时时间。
+trace:从根域开始跟踪查询结果。
举例:
1)
# dig www.163.com
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> www.163.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.163.com.INA
;; ANSWER SECTION:
www.163.com.40INCNAMEwww.163.com.lxdns.com.
www.163.com.lxdns.com.600INCNAME163.xdwscache.glb0.lxdns.com.
163.xdwscache.glb0.lxdns.com. 120 INA113.107.76.19
;; Query time: 779 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jan 31 03:23:36 2014
;; MSG SIZE rcvd: 110
2)
# dig +trace www.163.com
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> +trace www.163.com
;; global options: +cmd
.8854INNSf.root-servers.net.
.8854INNSc.root-servers.net.
.8854INNSd.root-servers.net.
.8854INNSk.root-servers.net.
.8854INNSa.root-servers.net.
.8854INNSb.root-servers.net.
.8854INNSi.root-servers.net.
.8854INNSg.root-servers.net.
.8854INNSj.root-servers.net.
.8854INNSm.root-servers.net.
.8854INNSe.root-servers.net.
.8854INNSh.root-servers.net.
.8854INNSl.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 583 ms
com.172800INNSj.gtld-servers.net.
com.172800INNSb.gtld-servers.net.
com.172800INNSk.gtld-servers.net.
com.172800INNSl.gtld-servers.net.
com.172800INNSh.gtld-servers.net.
com.172800INNSf.gtld-servers.net.
com.172800INNSm.gtld-servers.net.
com.172800INNSg.gtld-servers.net.
com.172800INNSd.gtld-servers.net.
com.172800INNSc.gtld-servers.net.
com.172800INNSi.gtld-servers.net.
com.172800INNSa.gtld-servers.net.
com.172800INNSe.gtld-servers.net.
;; Received 501 bytes from 192.33.4.12#53(192.33.4.12) in 542 ms
163.com.172800INNSns2.nease.net.
163.com.172800INNSns3.nease.net.
163.com.172800INNSns4.nease.net.
163.com.172800INNSns5.nease.net.
163.com.172800INNSns6.nease.net.
163.com.172800INNSns1.nease.net.
;; Received 242 bytes from 192.43.172.30#53(192.43.172.30) in 471 ms
www.163.com.600INCNAMEwww.163.com.lxdns.com.
;; Received 61 bytes from 61.135.255.140#53(61.135.255.140) in 278 ms
3、nslookup
nslookup命令使用频率比dig要高,可能是因为windows上没有dig命令吧。
一般格式:
nslookup [-option] [name | -] [server]
参数说明:
option:表示一些选项。这些选项可以通过set命令设置修改。
name:表示查询的域名。
server:可以指定DNS主机IP。
set命令说明:
set all:打印当前的选项值。
set calss=value:设置查询的类型,一般情况下为Internet。
set debug:设置调试模式。
set d2:设置详细调试模式。
set domin=name:设置默认的域名。
set search:
set port=value:设置DNS端口。
set querytype=value:改变查询的信息的类型。默认的类型为A纪录。
set type=value:和set querytype一样。
set recurse:设置查询类型为递归;若为set norecurse,查询类型为跌代;缺省为前者。
set retry=number:设置重试的次数。
set timeout=number:设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会将长超时值加倍,重新查询。
set vc:通过tcp方式查询。
set fail:
具体说明可以查看man手册。
举例:
# nslookup www.163.com 4.2.2.2
Server:4.2.2.2
Address:4.2.2.2#53
Non-authoritative answer:
www.163.comcanonical name = www.163.com.lxdns.com.
www.163.com.lxdns.comcanonical name = 163.xdwscache.glb0.lxdns.com.
Name:163.xdwscache.glb0.lxdns.com
Address: 113.107.76.19