Domain IP Lookup

四种结果,四种不同的后续处理

NXDOMAIN域名不存在,永远不值得重试
超时未在规定时间内收到应答,通常是暂时的
SERVFAIL服务器无法处理请求,有时是暂时的
REFUSED按策略被拒绝,很少是故障,也很少是暂时的
故障排查

NXDOMAIN 详解:域名为何无法解析

3 分钟阅读

NXDOMAIN,即“non-existent domain”(不存在的域名),是 DNS 能给出的最明确的应答之一。它并不意味着服务器超时,也不意味着上游有什么配置错误。它的意思是:权威域名服务器被询问了某个名称,并明确表示该名称在其区域中并不存在。这是一个明确的否定答案,并不是通常意义上的错误。

最常见的真实原因

  • 域名拼写错误:exmaple.com 与 example.com,在 DNS 看来是不同的名称(而且很可能没有注册)。
  • 域名的注册已过期,且一直没有续费。
  • 所查询的子域名从未创建:根域名解析正常,但 api.example.com 从未配置过自己的记录。
  • 某条记录在迁移过程中被删除或重命名,而且没有补上新的记录。

为什么重试没有用

DNS 超时或 SERVFAIL 可能是暂时的,比如服务器短暂过载,或者某条网络路径出现了瞬时问题,稍后再试往往正是合适的做法。NXDOMAIN 则不同:它是一个直接的、权威的声明,说明该名称没有注册。重复同样的查询只会得到同样的答案,因为底层的注册信息并没有任何变化。这正是为什么设计良好的查询工具会把 NXDOMAIN 视为永久性失败并快速失败,而不是在一个注定不会成功的查询上白白消耗重试次数和时间。

有一个值得了解的细节:NXDOMAIN 针对的是整个名称,而不是某一种记录类型。如果一个域名有 A 记录但没有 AAAA 记录,那么 AAAA 查询返回的不是 NXDOMAIN,而是一个成功的响应,只是应答集合为空(有时被表述为 NODATA)。NXDOMAIN 明确表示的是该名称本身没有任何类型的记录。

当 NXDOMAIN 并不是真正的 NXDOMAIN

有些 ISP 和公共 Wi-Fi 网络会悄悄拦截真实的 NXDOMAIN 响应并替换成自己的内容,把拼写错误或未注册的域名重定向到一个满是广告的搜索页面,而不是老实地返回“它不存在”。这是真实存在的做法,并非传说,而且恰恰是会削弱人们对 DNS 应答信任的那一类事情:这样做的解析器并没有谎报某个确实存在的域名,却把真正的 NXDOMAIN 隐藏在一个人为制造、可用来牟利的结果之后。直接查询一个知名、中立的公共解析器,它没有任何商业动机去重定向死胡同,就能完全绕开这个问题,得到权威服务器的真实应答。

结果含义值得重试吗?
NXDOMAIN该名称根本不存在,对任何记录类型都是如此不值得,属于永久性结果
NODATA该名称存在,但没有您所查询的记录类型不值得,对该记录类型同样是永久性的
被劫持的 NXDOMAIN解析器用自己的页面替换了真实的否定应答改用另一个中立的解析器进行查询

您确信已注册的域名却返回 NXDOMAIN

最让人困惑的情形,是您明明知道某个域名已经注册、而且最近还正常工作,却看到了 NXDOMAIN。除了上述的直接原因之外,还可能是因为:域名在不同注册商之间转移,短暂进入了域名服务器委派不完整的状态;DNSSEC 签名错误,导致验证型解析器把原本有效的区域当作不存在;或者是(虽然少见,但值得了解)域名因违反服务条款或涉嫌滥用而被注册商暂停,从外部看,这与注册过期的表现完全相同。这些都不是重试就能解决的,它们都需要直接检查注册和委派状态,通常要通过注册商自己的控制台或 WHOIS 查询,而不是 DNS 本身所能揭示的任何内容。

需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。