我无法从 Internet 连接至 Amazon Virtual Private Cloud (Amazon VPC) 内的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。如何修复此问题?

连接到 Amazon VPC 中 Amazon EC2 实例的问题通常与安全组网络访问控制列表 (ACL)路由表的配置相关。

开始之前,确保 Amazon EC2 实例通过系统状态检查和实例状态检查

检查安全组

确保与实例的弹性网络接口关联的安全组允许从所需端口连接。

重要提示:在生产环境中,只允许特定 IP 地址或地址范围访问您的实例。出于测试目的,您可以指定自定义 IP 地址 0.0.0.0/0,允许所有 IP 地址使用 SSH 或 RDP 来访问实例。

注意:您不需要配置安全组传出规则,因为安全组是有状态的。

检查网络 ACL

在网络 ACL 中检查以下事项:

  • 确保与 VPC 子网关联的网络 ACL 允许流量流经所需端口。
    注意:有关更多信息,请参阅您的 VPC 的推荐网络 ACL 规则添加和删除规则
  • 确保同时允许入站和出站流量。
    注意:网络 ACL 没有任何状态。对允许入站数据流的响应会随着出站数据流规则的变化而改变,但对允许出站数据流的响应会随着入站数据流规则的变化而改变。
  • 确保只打开出站 ACL 中的临时端口。
    注意:最好只允许您需要的端口。

重要提示:如果您仍然不确定是什么阻止流量访问您的实例,请考虑启用 VPC 流日志。流日志会捕获流经您的 VPC 的 IP 地址流量。如果您在流日志中看到被拒绝流量,请确保再次检查安全组和网络 ACL 设置。

检查路由表

要检查 Internet 网关是否已连接到 VPC,请完成以下步骤:

  1. 登录 Amazon VPC 控制台
  2. 在导航窗格的 Virtual Private Cloud 部分中,选择 Internet 网关
  3. 在搜索框中,搜索已连接到您的 VPC 的 Internet 网关。您也可以使用页面上的搜索栏来搜索连接的 VPC ID(例如,vpc-xxxxxxxx)。
  4. 记下 Internet 网关的 ID(例如,igw-xxxxxxxx)。

如果 Internet 网关已连接到 VPC,请完成以下步骤:

  1. 检查 VPC 的路由表是否具有指向 Internet 网关的路由。查找其目标为已连接到 VPC 的 Internet 网关的 ID(例如,igw-xxxxxxxx)的路由条目,以及其目的地为 0.0.0.0/0 的路由条目。
  2. 如果路由不存在,请添加具有 Internet 网关的路由条目作为目标,及添加 0.0.0.0/0 作为目的地
  3. 确保子网路由表也具有指向 Internet 网关的路由条目。如果此条目不存在,则实例在私有子网中,且无法从 Internet 访问。

注意:确保操作系统级 (OS-level) 路由表允许来自 Internet 的流量。使用指令 route -n(Linux 实例)或 netstat -rn(Linux 或 Windows 实例),具体取决于您的配置。

检查 IP 地址

  • 检查是否向 VPC 实例分配了公有 IP 地址,或者已将弹性 IP 地址连接到实例的网络接口。如果未向实例的网络接口分配公有 IP 地址或弹性 IP 地址,则请分配一个地址。
    注意:有关更多信息,请参阅使用 IP 地址使用弹性 IP 地址
  • 确保实例上的操作系统级别的软件或防火墙允许流量通过所需端口。

此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助? 访问 AWS 支持中心

发布时间:2015 年 8 月 5 日

更新时间:2019 年 2 月 11 日