跳至内容

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

1 分钟阅读
0

我创建了一个 NAT 网关,用于从我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例访问互联网。我的实例在私有子网中使用 HTTP 或 HTTPS 端口,但无法访问互联网。

解决方法

验证目标可访问性和 NAT 网关状态

检查是否可以通过公共 IP 地址从其他源访问目标。确认 NAT 网关处于 Available(可用)状态。如果 NAT 网关处于 Failed(失败)状态,请参阅 NAT 网关创建失败

**注意:**处于 Failed(失败)状态的 NAT 网关会在大约一小时后被自动删除。

确认您的子网和路由表配置

验证您是否在公共子网中创建了 NAT 网关。确认公共路由表具有将流量定向到互联网网关的默认路由。此外,确认私有子网的路由表具有将流量定向到 NAT 网关的默认路由。

**重要事项:**确保未对私有子网和公共子网使用相同的路由表。当使用相同的路由表时,流量将无法路由到互联网。

为防止 DNS 解析失败,请在您的虚拟私有云 (VPC) 中将 enableDnsSupport 属性设置为 true。有关详细信息,请参阅查看和更新 VPC 的 DNS 属性

检查防火墙和端口设置

验证防火墙是否允许源主机和目标主机上通过端口 80 的流量(HTTP 流量)和通过端口 443 的流量(HTTPS 流量)。要检查连接,请运行以下命令:

telnet PUBLIC_IP TCP_PORT

查看安全组设置

确保附加到实例弹性网络接口的安全组允许流向端口 80 和 443 的出站流量。有关详细信息,请参阅 EC2 实例的 Amazon EC2 安全组

检查与 NAT 网关子网关联的网络访问控制列表 (ACL)。要允许您的 EC2 实例访问 HTTPS 网站,与 NAT 网关子网关联的网络 ACL 必须具有以下规则:

入站规则

协议端口范围允许/拒绝
VPC CIDRTCP443允许
PUBLIC_IPTCP1024-65535允许

出站规则

目标协议端口范围允许/拒绝
PUBLIC_IPTCP443允许
VPC CIDRTCP1024-65535允许

有关如何配置网络 ACL 的详细信息,请参阅使用网络访问控制列表控制子网流量

相关信息

NAT gateways

Configure route tables

AWS 官方已更新 7 个月前