跳至内容

如何排查从互联网连接到我的 VPC 内的 Amazon EC2 实例的连接问题?

2 分钟阅读
0

我无法从互联网连接到 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

简短描述

从互联网连接到 Amazon EC2 实例出现的连接问题通常与以下配置设置有关:

解决方法

开始之前,请先确认您的 Amazon EC2 实例已通过系统状态检查和实例状态检查

如果您使用的是 Network Firewall,请参阅如何排查规则未按预期运行时 Network Firewall 出现的问题?

检查安全组

确认与实例的弹性网络接口关联的安全组允许来自所需端口的连接。由于安全组是有状态的,您无需配置安全组出口规则。

**重要信息:**在生产环境中,应仅允许特定 IP 地址或地址范围访问您的实例。用于测试目的时,指定自定义 IP 地址 0.0.0.0/0,允许所有 IP 地址使用 SSH 或 RDP 访问实例。

例如,如果您使用 SSH 从互联网连接到实例,则在端口 22 上添加规则。确保规则允许源 IP 地址访问实例。要允许任何人连接,请添加规则以允许 IP 地址 0.0.0.0/0 使用端口 80。

检查网络 ACL

检查您的网络 ACL 是否具有以下配置设置:

  • 与 VPC 子网关联的网络 ACL 必须允许流量通过所需端口。有关更多信息,请参阅使用网络 ACL 控制流向子网的流量以及添加和删除规则
  • 同时允许入站和出站流量。网络 ACL 是无状态的。对允许的入站流量的响应受出站流量规则的约束。对允许的出站流量的响应受入站流量规则的约束。
  • 确保只对出站网络 ACL 开放临时端口。最佳做法是只允许您需要的端口。

**重要信息:**如果您仍然无法确定是什么阻止了流量访问您的实例,请打开 VPC 流日志。流日志会捕获流经 VPC 的 IP 地址流量。如果您在流日志中看到被拒绝的流量,请再次检查安全组和网络 ACL 设置。

检查路由表

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

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格的 Virtual Private Cloud(虚拟私有云)部分中,选择 Internet Gateways(互联网网关)。
  3. 搜索连接到您的 VPC 的互联网网关。您也可以搜索 Attached VPC ID(附加的 VPC ID),例如,vpc-xxxxxxxx
  4. 记下互联网网关的 ID,例如,igw-xxxxxxxx

如果互联网网关已连接到您的 VPC,请完成以下步骤:

  1. 查看 VPC 的路由表,找到您的互联网网关的路由。查找 Target(目标)为连接到 VPC 的互联网网关的 ID、Destination(目标地)为 0.0.0.0/0 的路由条目。
  2. 如果该路由不存在,则添加一个将互联网网关作为目标、使用 0.0.0.0/0 作为目标地路由条目
  3. 确保子网路由表中也有指向互联网网关的路由条目。如果此条目不存在,则表明实例在私有子网中,无法从互联网访问。

**注意:**确认操作系统级别的路由表允许来自互联网的流量。根据您的配置,为 Linux 实例使用 route -n 命令,或为 Linux 或 Windows 实例使用 netstat -rn 命令。

检查 IP 地址

  • 确认公有 IP 地址已分配给您的 VPC 实例,或弹性 IP 地址已连接到实例的网络接口。如果未分配公有 IP 地址或弹性 IP 地址,请进行分配。
    **注意:**有关更多信息,请参阅 VPC 和子网的IP 寻址以及使用弹性 IP 地址
  • 确保实例上的操作系统级软件或防火墙允许流量通过所需端口。

相关信息

为什么我的 EC2 实例无法使用 NAT 网关访问互联网?

Amazon VPC 中的互联网络流量隐私

AWS 官方已更新 2 年前