在 Safari 或 Chrome 等 Web 浏览器中,有几个常见的 DNS 错误:
This site can't be reachedThis webpage is not availableerr_name_not_resolvedCan't find the serverError 1001 DNS resolution error
以下是 DNS 解析错误的最常见原因及建议解决方案。
验证请求 URL 中的域名或子域名拼写是否正确。
确保您拥有出现错误的域名或子域名所需的 DNS 记录。
Go to Records ↗这包括拥有以下记录:
如果在将域名添加到 Cloudflare 之前未在域名提供商处禁用 DNSSEC,DNS 解析将失败。
如果您通过 Cloudflare 仪表板管理 DNS 记录,且域名停止指向 Cloudflare 的 nameserver,DNS 解析将停止工作。
如果 registrar 将域名的 nameserver 切换为指向其默认 nameserver,可能会发生这种情况。要确认是否存在此问题,检查域名是否使用 Cloudflare 的 nameserver。
在极少数情况下,请求 URL 的客户端 DNS resolver 可能无法将 DNS 记录解析为有效 IP 地址。
短暂等待后重新加载页面,查看问题是否消失。此问题与 Cloudflare 无关,但使用 Cloudflare 的 DNS resolver 可能有帮助。联系托管提供商获取当前 DNS resolver 的进一步帮助。
如果您最近创建了 DNS 记录,而 resolver 仍返回 NXDOMAIN(域名不存在)或无答案,可能是因为否定响应当前存储在 resolver 缓存中。
当 resolver 查询尚无 DNS 记录的主机名时,它会缓存空响应,以免立即再次询问权威 nameserver。这称为否定缓存。
对于新创建的记录:
- Resolver 可能尚未缓存新记录。相反,它使用的是先前的
NXDOMAIN缓存条目,表示「此记录不存在」,如果您在创建记录之前查询过主机名,就会生成此条目。 - 此否定缓存的持续时间由 zone SOA 记录中的
MINIMUM字段决定(根据 RFC 2308 ↗),而不是您刚创建记录的 TTL。不同的 resolver 可能缓存不同的持续时间。
这意味着:
- 如果已存在否定缓存条目,降低新记录的 TTL 不会加速解析;resolver 只有在旧否定条目过期后才会看到新 TTL。
- 刷新本地 DNS 缓存仅影响您的特定设备;上游递归 resolver(例如 ISP 或公共提供商)仍持有否定结果。
- 传播看起来不均匀,因为不同的 resolver 可能在不同时间查询名称、应用不同的否定缓存 TTL,或根本没有否定缓存条目。
每个 resolver 的确切行为不同,但要估计需要等待多长时间,请查询 zone 的 SOA 记录并查看最后一个值(MINIMUM 字段)。您必须等待该间隔自上次 NXDOMAIN 查询过去,新记录才会一致解析。
您可以通过查询不存在(或新创建)的主机名来检查否定缓存条目是否处于活动状态:
dig +noall +answer +authority mynewrecord.example.com如果记录仍被否定缓存,响应将在 authority 部分包含 zone 的 SOA 记录,TTL 指示条目过期前剩余的秒数:
example.com. 256 IN SOA ...在此示例中,否定缓存响应将继续 256 秒。
要验证记录是否正确解析,您可以清除公共 resolver 的缓存并查询记录。如果有效,其他 resolver 最终也会开始解析:
要验证记录是否正确创建,请直接查询 Cloudflare 的权威 nameserver:
# Find the authoritative nameservers for your zone
dig @1.1.1.1 example.com NS +short# Query the authoritative nameserver for your new record
dig @hera.ns.cloudflare.com mynewrecord.example.com A直接查询权威 nameserver 会绕过 resolver 缓存。如果返回记录,resolver 最终也会开始返回它。如果记录未出现,请验证记录是否存在于 Cloudflare 仪表板中,且主机名完全匹配。
如果您被锁定在包含 DNS 配置的 Cloudflare 账户之外,请参阅账户恢复。