如何排查来自互联网的 Amazon EC2 实例连接超时错误?

2 分钟阅读
0

我无法通过互联网连接到我的 Amazon Virtual Private Cloud(Amazon VPC)中的 Amazon Elastic Compute Cloud(Amazon EC2)实例。当我尝试连接时,连接会挂起,然后会收到类似于“Network error: Connection timed out”的错误。如何解决此问题?

解决方法

**注意:**有关“权限被拒绝”或“连接被拒绝”错误,请参阅在尝试使用 SSH 连接到我的 EC2 实例时,我收到“连接被拒绝”或“连接超时”错误。如何解决此问题?

验证您的安全设置是否允许适当的访问

查看 VPC 中 Amazon EC2 实例的下列安全设置:

  1. 验证您的实例是否具有关联的公有 IP 地址或弹性 IP 地址。连接到实例时,请确保使用此 IP 地址。
    **注意:**有关更多故障排除指南,请参阅如何修复与具有附加弹性 IP 地址的 Amazon EC2 实例或弹性网络接口之间的连接?
  2. 向安全组添加一个规则,以允许使用 SSH 从您的 IP 地址访问实例。
  3. 验证实例是否通过系统和实例状态检查

验证您的网络 ACL 是否允许访问实例

验证网络 ACL 是否允许通过 SSH 从您的 IP 地址访问实例,如下所示。有关配置示例,请参阅 Example: Control access to instances in a subnet

首先,找到实例的子网 ID

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格的实例下,选择实例
  3. 选择您的实例。
  4. 选择详细信息
  5. 记下子网 ID

然后,查看网络 ACL 的入站和出站规则:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中的 Virtual Private Cloud 下,选择子网
  3. 在内容窗格中,选择之前记下的子网 ID
  4. 选择网络 ACL 选项卡。
    **重要事项:**如果您的实例关联了多个子网,请为每个子网完成步骤 5 和 6。
  5. 检查入站规则是否与默认网络 ACL 配置不同。如果规则不同,请添加一条规则,允许进出您的 IP 地址的 SSH 入站流量。有关 SSH 的配置示例,请参阅 Custom network ACL
  6. 检查出站规则是否与默认网络 ACL 配置不同。如果规则不同,则添加一条规则,允许进出您的 IP 地址的 SSH 出站流量。

验证 VPC 路由表是否允许进出互联网的流量

首先,找到实例的子网 ID

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格的实例下,选择实例
  3. 选择您的实例。
  4. 选择详细信息
  5. 记下子网 ID

然后,验证 VPC 路由表是否允许进出互联网的流量:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中的 Virtual Private Cloud 下,选择子网
  3. 在内容窗格中,选择之前记下的子网 ID
  4. 选择路由表选项卡。
  5. 验证是否存在指向您的互联网网关的默认路由(即目的地为 0.0.0.0/0 的路由)。如果不存在指向您的互联网网关的默认路由,请从导航窗格中选择 Virtual Private Cloud 下的互联网网关
  6. 选择 VPC 的互联网网关。
    注意:您可以在实例的详细信息页面上找到 VPC ID
  7. 详细信息视图中,记下互联网网关的 ID 值。
  8. 添加新路由目的地0.0.0.0/0目标为您的互联网网关 ID。请务必保存新的路由表配置。
    **注意:**如果从堡垒主机进行连接,由于是私有子网,VPC 路由表不能有指向互联网网关的默认路由(0.0.0.0/0)。有关更多信息,请参阅如何对通过堡垒主机使用 SSH 连接访问我的 EC2 实例进行故障排查?

检查是否与本地防火墙和路由表存在冲突

如果仍然遇到连接问题,请检查是否与本地防火墙规则或本地路由表存在冲突。


相关信息

为什么我的 Amazon EC2 实例无法使用互联网网关连接到互联网?

如何解决使用 SSH 连接到 Amazon EC2 Linux 实例时出现的问题?

为什么私有子网中的 Amazon EC2 实例无法使用 NAT 网关连接到互联网?

如何解决从互联网到我的 Amazon VPC 内的 Amazon EC2 实例之间存在的连接问题?

Get started with Amazon VPC

AWS 官方
AWS 官方已更新 2 年前