为什么当我尝试在 Lightsail 上访问我的网站时会收到“curl: (6) Could not resolve host”(curl:(6) 无法解析主机)或“ERR_NAME_NOT_RESOLVED”错误?

2 分钟阅读
0

当我尝试在 Amazon Lightsail 上访问我的网站时,收到如下错误:“curl: (6) Could not resolve host”(curl:(6) 无法解析主机)或“ERR_NAME_NOT_RESOLVED”。

简短描述

“curl: (6) Could not resolve host”(curl:(6) 无法解析主机)或“ERR_NAME_NOT_RESOLVED”错误表示您的浏览器或命令行工具无法解析您的网站域名。

解决方法

检查域注册

检查您的域是否已注册。运行以下 whois 命令:

whois your_domain

**注意:**将 your_domain 替换为您的域名。

如果输出显示域详细信息,则您的域已注册。

如果您收到“No match for domain 'example.com', your domain isn't registered,”(域“example.com”无匹配,您的域未注册,)之类的响应,则必须先注册您的域,然后才能继续执行后续步骤。

验证名称服务器

确保您的域配置正确的名称服务器。要检查与您的域相关联的名称服务器,请运行以下 digwhois 命令:

dig your_domain NS

-或-

whois your_domain | grep "Name Server"

**注意:**将 your_domain 替换为您的域名。

如果名称服务器设置不正确或者您收到错误消息,请通过您的域注册商更新名称服务器。

检查问题是本地的还是全球性的

检查本地与全球性解决方法

确定问题是特定于您的本地计算机还是全球性问题。从其他网络或设备访问您的网站。如果网站加载,则问题出在您的本地网络或计算机配置中。

验证解析器配置
如果问题是本地的,请检查本地计算机上的 DNS 解析器配置。DNS 解析器将域名转换为 IP 地址。确保在您的计算机上配置的 DNS 服务器可以解析该 IP 地址。

要检查 Windows 中的 DNS 服务器设置,请在命令提示符下运行以下命令:

ipconfig /all

要检查 macOS 或 Linux 上的解析器配置,请打开 /etc/resolv.conf 文件并验证列出的 DNS 服务器。

如果配置的 DNS 服务器不正确或无响应,请对其进行更新或联系您的网络管理员寻求帮助。

要确定 DNS 解析过程失败的位置,请运行以下 dig +trace 命令:

dig +trace your_domain

**注意:**将 your_domain 替换为您的域名。

使用 dig +trace 命令执行递归 DNS 查询,并找到您为解析域而查询的 DNS 服务器路径。

TLD 故障

如果查询在 TLD 级别停止,则说明域名注册或名称服务器出现问题。运行 whois 命令以验证注册状态和名称服务器信息。

名称服务器故障

如果查询到达名称服务器但无法检索 A 记录(IP 地址),则有几个问题需要调查:

  • 名称服务器上未配置您的域的 A 记录。
  • 注册商处列出的名称服务器不正确或已过时。
  • 名称服务器上没有为您的域配置托管区。

要检查名称服务器是否有 A 记录,请运行以下命令:

dig your_domain @nameserver_ip

**注意:**将 your_domain 替换为您的域名。将 nameserver_ip 替换为您的名称服务器的 IP 地址。

如果输出显示您的域的正确 IP 地址,则说明问题与名称服务器无关。

更新名称服务器或注册域

检查主机文件中是否有名称服务器和注册域

本地计算机上的主机文件是将主机名映射到 IP 地址的静态文件。如果主机文件中您的域存在不正确的条目,则会导致解析错误。

**注意:**在 Windows 上,主机文件位于 C:\Windows\System32\drivers\etc\hosts。在 macOS 或 Linux 上,主机文件位于 /etc/hosts

使用文本编辑器打开主机文件,然后检查您的域是否有条目。如果有条目,请验证其关联的 IP 地址是否正确。如果该条目不正确或不必要,则将其删除或注释掉。

如果域未注册或名称服务器不正确,请在注册商处注册域或更新名称服务器。

对于未注册的域,请完成以下步骤:

  1. 验证域名是否已注册。
  2. 输入您的托管服务提供商或 DNS 服务提供的名称服务器。

对于不正确的名称服务器,请完成以下步骤:

  1. 登录您的域注册商的 AWS 账户。
  2. 导航到域管理部分并找到名称服务器设置。
  3. 使用您的托管服务提供商或 DNS 服务提供的正确信息更新名称服务器。
  4. 保存更改,然后等待 DNS 更新在全球范围内传播(最多 48 小时)。

在名称服务器上配置 A 记录或在注册商处更新名称服务器记录

如果 dig +trace 输出到达名称服务器但无法检索 A 记录(IP 地址),请在名称服务器上配置 A 记录。或者,在注册商处更新名称服务器记录。

要在名称服务器 (Lightsail DNS) 上配置 A 记录,请完成以下步骤:

  1. 在 Lightsail 控制台中,导航到 Networking(网络)部分。
  2. 为您的域选择 DNS 区域。
  3. 选择 Add record(添加记录)。然后,使用您的域名和 IP 地址(例如您的 Lightsail 实例的公共 IP 地址)创建新的 A 记录。
  4. 保存更改,然后等待 DNS 更新在全球范围内传播(最多 48 小时)。

如果您使用自定义名称服务器(不在 Lightsail 上托管的名称服务器),请在您的域注册商处更新名称服务器记录。要在注册商处更新名称服务器记录,请完成以下步骤:

  1. 登录您的域注册商的 AWS 账户。
  2. 导航到域管理部分,然后找到名称服务器设置。
  3. 使用托管您的域的名称服务器的正确 IP 地址更新名称服务器记录。
  4. 保存更改,然后等待 DNS 更新在全球范围内传播(最多 48 小时)。

创建托管区并使用正确的 DNS 记录更新区域文件

dig +trace 输出可能会到达名称服务器,但无法检索 A 记录。检查名称服务器上是否为您的域配置了托管区。有关详细信息,请参阅创建 DNS 区域以管理 Lightsail 实例的域记录

相关信息

如何使用 AWS CLI 命令管理我的 Lightsail 实例?

了解 Lightsail 中的 DNS

AWS 官方
AWS 官方已更新 3 个月前