我想解决我在使用 NAT 网关从我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例访问互联网时遇到的问题。
解决方法
NAT 网关的互联网连接问题可能是由于子网配置问题或缺少路由造成的。
使用可访问性分析器检查您的连接
要检查路由是否可访问,请使用可达性分析器。
首先,创建和分析路径。对于 Source Type(源类型),选择 Instances(实例),然后选择您的实例。对于 Destination type(目标类型),选择 Internet Gateways(互联网网关),然后选择您希望作为目标通过的网关。然后,查看结果以确定路径是否可访问。如果无法访问,请分析路径并根据需要更新您的配置。
验证您的子网配置
确认您的路由表具有以下配置:
- NAT 网关位于公有子网中,其路由表可将互联网流量路由到互联网网关。
- 您的实例位于私有子网中,其路由表可将互联网流量路由到 NAT 网关。
- 没有其他路由表条目可以将全部或部分互联网流量路由到其他设备而不是 NAT 网关。
确保源实例的关联安全组和网络访问控制列表 (ACL) 允许出站流量。用于启动 NAT 网关的子网必须具有关联的网络 ACL,允许来自实例和互联网主机的入站流量。该网络 ACL 还必须允许流向互联网主机和实例的出站流量。
检查 NAT 网关是否处于 Available(可用)状态。要查看您的 NAT 网关状态,请打开 Amazon Virtual Private Cloud (Amazon VPC) 控制台。导航到 NAT 网关页面,然后在详细信息窗格中查看状态信息。如果 NAT 网关处于故障状态,请在创建 NAT 网关期间可能发生了错误。有关详细信息,请参阅 NAT 网关创建失败。
为了帮助您诊断因网络 ACL 或安全组规则而断开的连接,请打开 VPC 流日志。
如果您使用 ping 命令,请确保 ping 已激活互联网控制消息协议 (ICMP) 的主机。如果主机未激活 ICMP,则您将不会收到回复数据包。要测试主机是否激活了 ICMP,请在计算机上的命令行终端运行相同的 ping 命令。
检查您的实例是否可以 ping 其他资源,例如私有子网中的其他实例。
**注意:**确保您的安全组规则允许您 ping 其他资源。
检查您的连接是否仅使用 TCP、UDP 或 ICMP 协议。
要允许您的实例访问 HTTPS 网站,与 NAT 网关子网关联的网络 ACL 必须具有以下规则。
入站规则:
| 源 | 协议 | 端口范围 | 允许/拒绝 |
|---|
| VPC CIDR | TCP | 443 | 允许 |
| 互联网 IP | TCP | 1024-65535 | 允许 |
出站规则:
| 目标 | 协议 | 端口范围 | 允许/拒绝 |
|---|
| 互联网 IP | TCP | 443 | 允许 |
| VPC CIDR | TCP | 1024-65535 | 允许 |