为什么我无法访问我的使用 Route 53 DNS 服务的网站?

上次更新时间:2022 年 6 月 8 日

我配置自己的网站使用 Amazon Route 53 作为 DNS 服务,但无法从 Internet 访问我的网站。如何排查此问题?

解决方法

检查网站的公有托管区域资源记录集

确保 Route 53 中您网站域名的公有托管区域填充正确的资源记录集。要更新记录集的值,请参阅编辑记录。对于记录类型特定的值,请参阅创建或编辑 Amazon Route 53 记录时指定的值

重要提示:公有托管区域必须至少包含您的域的一个地址记录(A 记录)。如果您正在查询的域名不存在记录,则会返回 NXDOMAIN 错误代码。

确保资源记录集可公开访问

有关说明,请参阅如何确保可从 Internet 访问 Amazon Route 53 公有托管区域中的资源记录集?

检查域名注册商的 NS 记录

检查域注册商处配置的名称服务器 (NS) 是否是与域的 Route 53 公有托管区域中相同的四个权威 NS 记录。

  1. 获取公有托管区域的名称服务器
  2. 使用您的首选 WHOIS 实用程序(域注册查找工具)搜索您网站的域名。
  3. 确保 WHOIS 输出中域的 NS 与 Route 53 公有托管区域中相同的 NS 记录匹配。
  4. 如果 NS 记录不匹配且您的域注册商是 Route 53,则将在注册商处的域的名称服务器更新为分配给 Route 53 公有托管区域的四个权威 NS 记录。
    注意:对于在第三方注册商处注册的域,请按照注册商的文档更改域的 NS。

注意:之前注册商的 NS 可能要等到 TTL(最多 48 小时)才会从顶级域 (TLD) 过期。在此期间,域的 DNS 查询可能会同时发送到 Route 53 和之前的注册商的 NS。Route 53 会立即响应未缓存先前注册商的 NS 的解析器对该域的 DNS 查询。

检查您的 DNSSEC 配置

如果您的域使用域名系统安全扩展 (DNSSEC),则必须在域注册商和 DNS 服务提供商级别启用 DNSSEC。

如果为域开启了 DNSSEC,但在 DNS 服务提供商处关闭了 DNSSEC,则执行 DNSSEC 验证的 DNS 解析器会向客户端返回 SERVFAIL 错误。在这种情况下,如果客户端使用执行 DNSSEC 验证的 DNS 解析器,则无法访问域。

例如:如果 DNSSEC 在域级别启用,但未在 DNS 服务提供商级别启用,则以下命令将返回 SERVFAIL 错误:

>> dig @8.8.8.8 www.example.com

要绕过 DNSSEC 验证,请使用 +cd 标志运行以下命令:
注意:example.com 替换为您的域名。

>> dig @8.8.8.8 example.com +cd

如果绕过验证后可以按预期解析域,则通常表示 NS 的 DNSSEC 配置错误。

注意:Route 53 支持域注册和 DNS 服务的 DNSSEC。有关更多信息,请参阅为域配置 DNSSEC在 Amazon Route 53 中配置 DNSSEC 签名

检查使用其他 DNS 解析器时是否出现 DNS 解析问题

使用公共解析器(例如 Google Resolver(8.8.8.8)、Cloudflare(1.1.1.1) 或 OpenDNS)测试域的分辨率来解析您的域名。如果在使用特定的解析器时问题仍然存在,则可能是该特定解决器出现问题。或者,解析器可能缓存了较早的 DNS 响应。

运行以下命令对解析器执行 DNS 查询:
注意:example.com 替换为您的域名,将 ResolverIP 替换为您正在使用的解析器的 IP。

>> dig example.com @<ResolverIP><br>>> nslookup example.com <ResolverIP>

如果解析器之前收到了域的负响应,则解析器会缓存此响应。在这种情况下,客户端可能仍会收到 NXDOMAIN/NODATA 响应,因为解析器上的缓存是负的,即使记录已被更正。有关更多信息,请参阅授权起始 (SOA) 记录

验证您的域的 EPP 状态码

在您的首选 WHOIS 实用程序(域注册查找工具)中搜索您网站的域名。然后,确保未为域分配可扩展配置协议 (EPP) 状态代码,该状态代码表示 DNS 中存在非活动域。serverHoldclientHoldinactive 等状态代码表示域未在 DNS 中激活且无法解析。

如果 Route 53 是您域的注册商,请参阅我的域已暂停(状态为 ClientHold)。有关 EPP 状态代码的列表,请参阅 ICANN 网站上的 EPP 状态码