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

2 分钟阅读
0

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

简述

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

解决方法

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

如果您使用的是 AWS Network Firewall,请参阅我如何解决规则未按预期运行时 AWS 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 必须允许流量通过所需端口。有关更多信息,请参阅 Control traffic to subnets using network ACLsAdd and delete rules
  • 同时允许入站和出站流量。网络 ACL 是无状态的。对允许的入站流量的响应受出站流量规则的约束。对允许的出站流量的响应受入站流量规则的约束。
  • 确保只对出站网络 ACL 开放临时端口。最佳做法是只允许您需要的端口。

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

检查路由表

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

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格的 Virtual Private Cloud 部分,选择互联网网关
  3. 搜索连接到您的 VPC 的互联网网关。您也可以搜索连接的 VPC ID,例如,vpc-xxxxxxxx
  4. 记下互联网网关的 ID,例如,igw-xxxxxxxx

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

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

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

检查 IP 地址

相关信息

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

Internetwork traffic privacy in Amazon VPC

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