如何找到冲突的DNS记录的来源?
您将需要给定域名的SOA(权限开始)记录,这是使用通用的nslookup命令行工具完成它的方法:
command line> nslookup > set querytype=soa > stackoverflow.com Server: 217.30.180.230 Address: 217.30.180.230#53 Non-authoritative answer: stackoverflow.com origin = ns51.domaincontrol.com # ("primary name server" on Windows) mail addr = dns.jomax.net # ("responsible mail addr" on Windows) serial = 2008041300 refresh = 28800 retry = 7200 expire = 604800 minimum = 86400 Authoritative answers can be found from: stackoverflow.com nameserver = ns52.domaincontrol.com. stackoverflow.com nameserver = ns51.domaincontrol.com.
该产地(或主名称服务器在Windows上)行告诉你,ns51.domaincontrol是主域名服务器stackoverflow.com.
在输出结束时,将列出所有权威服务器,包括给定域的备份服务器.
您在问题中使用了单数,但通常有几个权威名称服务器,RFC 1034建议至少使用两个.
除非您的意思是"主要名称服务器"而不是"权威名称服务器".辅助名称服务器是权威的.
要在Unix上找到域的名称服务器:
% dig +short NS stackoverflow.com ns52.domaincontrol.com. ns51.domaincontrol.com.
要找出列为主要的服务器("主要"的概念现在非常模糊,通常没有好的答案):
% dig +short SOA stackoverflow.com | cut -d' ' -f1 ns51.domaincontrol.com.
为了检查名称服务器之间的差异,我的偏好转到了旧check_soa
工具,在Liu&Albitz"DNS&BIND"一书(O'Reilly编辑)中有描述.源代码可在http://examples.oreilly.com/dns5/上找到
% check_soa stackoverflow.com ns51.domaincontrol.com has serial number 2008041300 ns52.domaincontrol.com has serial number 2008041300
这里,两个权威名称服务器具有相同的序列号.好.
在*nix上:
$ dig -t ns
我有一个DNS传播工具,旨在回答这些问题.
来源根据AGPLv3发布.
(是的,此刻界面相当基本:))
您还可以使用"host"命令找到域的名称服务器:
[davidp@supernova:~]$ host -t ns stackoverflow.com stackoverflow.com name server ns51.domaincontrol.com. stackoverflow.com name server ns52.domaincontrol.com.
我发现它总是添加+ trace选项的最佳方式:
dig SOA +trace stackoverflow.com
它也适用于托管在不同提供程序中的递归CNAME.+ trace trace imply + norecurse,因此结果仅适用于您指定的域.
你应该谷歌搜索的术语是"权威的",而不是"权威的".
在Linux或Mac,你可以使用的命令whois
,dig
,host
,nslookup
或数人.nslookup
也可能适用于Windows.
一个例子:
$ whois stackoverflow.com [...] Domain servers in listed order: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM
至于额外的信用:是的,这是可能的.
aryeh肯定是错的,因为他的建议通常只会给你主机名的IP地址.如果使用dig
,则必须查找NS记录,如下所示:
dig ns stackoverflow.com
请记住,这可能会询问您的本地DNS服务器,因此可能会在其缓存中提供错误或过时的答案.