如何找到域名的权威名称服务器?

Bin*_*les 305 dns

如何找到冲突的DNS记录的来源?

Ant*_*emi 402

您将需要给定域名的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.
Run Code Online (Sandbox Code Playgroud)

产地(或主名称服务器在Windows上)行告诉你,ns51.domaincontrol是主域名服务器stackoverflow.com.

在输出结束时,将列出所有权威服务器,包括给定域的备份服务器.

  • nslookup -type = soa stackoverflow.com (152认同)
  • 是否有SOA查询类型的命令行标志? (6认同)
  • 如果没有权威的答案,但非权威的答案是好的,这意味着什么? (6认同)
  • 然而,在Windows下,我无法看到"权威答案"的回复.我并排使用Windows 8和Ubuntu 12,然后同一个域的相同命令在Ubuntu上正常工作但在Windows上不能. (5认同)
  • 确实,它不再起作用了。权威答案一片空白。 (3认同)
  • 请注意,该节目不一定会显示最近对 DNS 配置的更改,但是对我来说似乎使用“dig”(请参阅​​下面的答案) (2认同)
  • 如果您今天(2019-Feb)在Linux上运行`nslookup -type = soa stackoverflow.com`,则权威部分为空。 (2认同)
  • `nslookup -type=soa pool.ntp.org` 不提供权威名称服务器,但 https://www.nslookup.io/domains/pool.ntp.org/dns-records/#authoritative 提供。怎么会? (2认同)

bor*_*yer 168

您在问题中使用了单数,但通常有几个权威名称服务器,RFC 1034建议至少使用两个.

除非您的意思是"主要名称服务器"而不是"权威名称服务器".辅助名称服务器权威的.

要在Unix上找到域的名称服务器:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.
Run Code Online (Sandbox Code Playgroud)

要找出列为主要的服务器("主要"的概念现在非常模糊,通常没有好的答案):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.
Run Code Online (Sandbox Code Playgroud)

为了检查名称服务器之间的差异,我的偏好转到了旧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
Run Code Online (Sandbox Code Playgroud)

这里,两个权威名称服务器具有相同的序列号.好.

  • dig + short并不总能给出我期望的答案.例如,定义为"www.pressero.com"的站点(另一个站点的CNAME) - dig + short SOA只返回CNAME目标. (5认同)
  • @Overmind 你没有使 NS 具有“权威性”。如果名称服务器配置为对某些域具有权威性,则意味着它具有这些域的本地区域文件(通常是纯文本文件,但也可以采用不同的方式),并且它会响应对它们的查询。为了有用,它们需要在父区域中为它们授权的每个域列为 NS 记录,否则默认情况下没有人会查询它们。 (2认同)

ary*_*yeh 39

在*nix上:

$ dig -t ns <domain name>
Run Code Online (Sandbox Code Playgroud)

  • 他要求提供名称服务器,而不是IPv4地址.所以类型(-t)应该是NS,而不是A. (3认同)

Dav*_*ous 18

我有一个DNS传播工具,旨在回答这些问题.

来源根据AGPLv3发布.

(是的,此刻界面相当基本:))

您还可以使用"host"命令找到域的名称服务器:

[davidp@supernova:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.

  • 您的工具不提供SOA信息 (2认同)

Ale*_*lex 8

我发现它总是添加+ trace选项的最佳方式:

dig SOA +trace stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

它也适用于托管在不同提供程序中的递归CNAME.+ trace trace imply + norecurse,因此结果仅适用于您指定的域.

  • 该命令提供 53 行、3652 字节的输出,其中大部分是随机值。人们应该如何解释输出以确定权威名称服务器是什么? (2认同)

小智 6

你应该谷歌搜索的术语是"权威的",而不是"权威的".

在Linux或Mac,你可以使用的命令whois,dig,host,nslookup或数人.nslookup也可能适用于Windows.

一个例子:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM
Run Code Online (Sandbox Code Playgroud)

至于额外的信用:是的,这是可能的.


aryeh肯定是错的,因为他的建议通常只会给你主机名的IP地址.如果使用dig,则必须查找NS记录,如下所示:

dig ns stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

请记住,这可能会询问您的本地DNS服务器,因此可能会在其缓存中提供错误或过时的答案.

  • 这些命令**不等同于**.没有人说whois给出的信息是最新的.通常,这不是因为人们在未通知注册管理机构或注册商的情况下更新区域文件中的NS记录. (6认同)

Nit*_*wal 5

我们构建了一个dns 查找工具,可以在一个请求中为您提供域的权威名称服务器及其常见的 dns 记录。

示例:https : //www.misk.com/tools/#dns/stackoverflow.com

我们的工具通过在根域名服务器上执行实时(未缓存的)dns 查找,然后跟踪域名服务器引用直到我们到达权威域名服务器来找到权威域名服务器。这与 dns 解析器用于获取权威答案的逻辑相同。在每个查询中选择(并识别)随机的权威名称服务器,允许您通过执行多个请求来查找冲突的 dns 记录。

您还可以通过单击上面示例中 dns 查找结果底部的“权威名称服务器”来查看名称服务器委托路径。

示例:https : //www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net


dan*_*nyw 5

我发现对于某些域,上述答案不起作用。我发现最快的方法是首先检查 NS 记录。如果不存在,请检查 SOA 记录。如果不存在,则使用 dig 递归解析名称并获取返回的最后一个 NS 记录。适合这个的例子是analyticsdcs.ccs.mcafee.com.

  1. 检查 NS 记录

host -t NS analyticsdcs.ccs.mcafee.com.

  1. 如果未找到 NS,请检查 SOA 记录

host -t SOA analyticsdcs.ccs.mcafee.com.

  1. 如果既不是 NS 也不是 SOA,则执行完全递归并获取最后返回的 NS

dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1

  1. 测试名称服务器返回的工作是否正常

host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.