我无法从互联网连接到 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 流日志。流日志会捕获流经 VPC 的 IP 地址流量。如果您在流日志中看到被拒绝的流量,再次检查安全组和网络 ACL 设置。
检查路由表
要检查您的 VPC 是否已连接互联网网关,完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格的 Virtual Private Cloud 部分,选择互联网网关。
- 搜索连接到您的 VPC 的互联网网关。您也可以搜索连接的 VPC ID,例如,vpc-xxxxxxxx。
- 记下互联网网关的 ID,例如,igw-xxxxxxxx。
如果有互联网网关已连接到您的 VPC,完成以下步骤:
- 查看您的 VPC 的路由表,找到您的互联网网关的路由。查找目标为连接到 VPC 的互联网网关的 ID、目标地直为 0.0.0.0/0 的路由条目。
- 如果该路由不存在,添加一个将互联网网关作为目标、使用 0.0.0.0/0 作为目标地址的路由条目。
- 确保子网路由表中也有互联网网关的路由条目。如果此条目不存在,表明实例在私有子网中,无法从互联网访问。
**注意:**确认操作系统级别的路由表允许来自互联网的流量。根据您的配置,为 Linux 实例使用 route -n 命令,或为 Linux 或 Windows 实例使用 netstat -rn 命令。
检查 IP 地址
相关信息
为什么我的 EC2 实例无法使用 NAT 网关访问互联网?
Internetwork traffic privacy in Amazon VPC