使用 NAT 设置无法访问 Internet 的 AWS Public/Private 子网

AWS Public/Private subnet not accessible to internet with NAT setup

我已经按照 AWS 网站的指示创建了 NAT 设备。禁用源检查。创建安全组以允许代理(在 public 子网中)通过 0.0.0.0/0 访问互联网。但是还是不能上网。然而 NAT 设备成功访问互联网。

如有任何帮助,我们将不胜感激。

谢谢

需要 NAT 服务器 才能将流量从专用子网路由到 Internet。这是因为私有子网(有意)没有直接连接到 Internet。

Public 子网 中的 Amazon EC2 实例将不使用 NAT。他们将直接通过 Internet 网关。你的NAT可以上网,说明这个配置正确

如果您的私有子网中有无法与 Internet 通信的 EC2 实例,请检查与您的私有子网关联的 路由 Table 条目。您的私有子网的路由 Table 应该不同于与 public 子网关联的路由 Table。

如有必要,向与您的私有子网关联的路由 Table 添加一个条目,以将发往 0.0.0.0/0 的流量路由到 NAT 服务器。生成的目标条目将类似于 eni-abcd1234 / i-1234abcd。这意味着互联网流量正在路由到 NAT 实例上的弹性网络接口 (ENI)。

重要! 确保您正在使用来自 Community AMI 类别的 NAT-Image 创建 NAT 服务器,并查找 'amzn-ami-vpc-nat'.

我接受@john-rotenstein 的回答,因为它提供了关于构建 public/private 网络的清晰信息。

总结一下:

前提条件:您已经相应地设置了 Public/Private 子网并且 NAT 服务器位于 Public 子网中。

  1. 从社区 AMI 中的 NAT 映像构建 NAT 服务器
  2. 创建安全组以允许来自 public/private 的实例访问 to/from NAT 服务器

大功告成!