oLeiShen 2019-10-30
一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手。
如果是在debian下的话,只要装上dnsutils这个包就可以使用dig命令了。
最基本的使用方式就是
dig www.oolec.com
即查询域名的A记录,查询的dns服务器将采用系统配置的服务器,即/etc/resovle.conf 中的。
如果要查询其他类型的记录,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可
dig www.oolec.com mx
dig www.oolec.com ns
此外,如果你是一个系统管理员,部署好了一台dns服务器之后想对它进行解析测试,就必须要显式指定待测试的dns服务器地址了,例如
dig @202.106.0.20 www.oolec.com a
默认情况下dig将采用udp协议进行查询,如果要采用tcp方式,可以加上 +tcp参数
dig www.oolec.com a +tcp
另外一个重要的功能是+trace参数,使用这个参数之后将显示从根域逐级查询的过程
dig www.oolec.com a +trace
比如,对本站域名www.linuxers.cn A记录的trace查询可以看到根域.,顶级域.cn,以及linuxers.cn的域名权威服务器的地址及其各自的返回结果,这样对于追踪dns解析中的问题有很大的帮助。
:~/Desktop# dig trace www.bing.com
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> trace www.bing.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56918
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;trace. IN A
;; Query time: 1 msec
;; SERVER: 192.168.241.2#53(192.168.241.2)
;; WHEN: Wed Oct 30 00:00:36 EDT 2019
;; MSG SIZE rcvd: 23
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18709
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.bing.com. IN A
;; ANSWER SECTION:
www.bing.com. 5 IN CNAME a-0001.a-afdentry.net.trafficmanager.net.
a-0001.a-afdentry.net.trafficmanager.net. 5 IN CNAME cn.cn-0001.cn-msedge.net.
cn.cn-0001.cn-msedge.net. 5 IN CNAME cn-0001.cn-msedge.net.
cn-0001.cn-msedge.net. 5 IN A 202.89.233.100
cn-0001.cn-msedge.net. 5 IN A 202.89.233.101
;; Query time: 5 msec
;; SERVER: 192.168.241.2#53(192.168.241.2)
;; WHEN: Wed Oct 30 00:00:36 EDT 2019
;; MSG SIZE rcvd: 165