domain-name-system – 查询特定名称服务器时,`dig`和`host`有什么区别?

我正在使用此命令来验证我是否使用DNS提供程序正确设置:
host hostname.example.com ns1.example-nameserver.com

据我所知,这要求ns1.example-nameserver.com查找hostname.example.com并报告答案.我得到了一个主机未找到的回复,所以我认为我做错了.但是,如果没有指定他们的名称服务器(从而允许我的ISP的名称服务器查找它),我得到了正确的响应(如果重要,主机名是CNAME).我无法理解这一点所以我四处寻找并找到了dig命令:

dig @ns1.example-nameserver.com hostname.example.com

据我所知,这与host命令的作用相同 – 要求特定的名称服务器查找主机.因此,我得出结论,他们必须以某种方式做到不同,并且缓存名称服务器必须使用与dig相同的方法.

我的结论是对还是错,如果是对的:

这两种查找方法有什么区别?

如果是错的话:

我对DNS以及导致我得出这个结论的主机和挖掘命令有什么误解?

输出示例:

$host cardiff.tzmchapters.org ns1.livedns.co.uk
Using domain server:
Name: ns1.livedns.co.uk
Address: 213.171.192.250#53
Aliases: 

Host cardiff.tzmchapters.org not found: 3(NXDOMAIN)

$dig @ns1.livedns.co.uk cardiff.tzmchapters.org

; <<>> DiG 9.8.3-P1 <<>> @ns1.livedns.co.uk cardiff.tzmchapters.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,status: NXDOMAIN,id: 23620
;; flags: qr aa rd; QUERY: 1,ANSWER: 1,AUTHORITY: 1,ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;cardiff.tzmchapters.org.   IN  A

;; ANSWER SECTION:
cardiff.tzmchapters.org. 3600   IN  CNAME   ghs.google.com.

;; AUTHORITY SECTION:
google.com.     3600    IN  SOA ns1.livedns.co.uk. admin.google.com. 1354213742 10800 3600 604800 3600

;; Query time: 27 msec
;; SERVER: 213.171.192.250#53(213.171.192.250)
;; WHEN: Mon Apr 22 23:47:05 2013
;; MSG SIZE  rcvd: 128

解决方法

host,dig和nslookup都共享大部分相同的功能.在您询问(询问特定名称服务器的特定DNS问题)的情况下,挖掘和主机(实际上nslookup)的行为完全相同.

对于DNS故障排除,首选dig是因为它的输出格式更“原始”:在其输出中它直接显示DNS响应中所有4个字段的内容:问题,答案,权限和其他部分(以及标题中的标志) ),还有更多的选择.另一方面,主机具有更加用户友好的输出格式.

如果您碰巧不需要其中一个命令而其他命令没有的选项,或者其中一个命令输出而其他命令没有的信息,则归结为优先选择.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些