从私有 VPC 子网访问 Internet?

jmr*_*cha 5 nat routing amazon-ec2 amazon-vpc

我的大脑在试图弄清楚这一点时有点受不了,但我似乎无法让私有子网连接到互联网来获取更新。基本上我想要的是这些服务器的网络访问。我已经尝试过在其他帖子中找到的解决方案,但很容易遗漏一些东西,因为我已经研究了很长一段时间。

到目前为止,我已经完成了以下设置:

  • 在我的 NAT 实例上禁用源/目标检查
  • 为公共子网创建路由表并将其源设置为 IGW(已验证有效)
  • 为私有子网创建路由表并将其源设置为 NAT 实例
  • 使用 80/443 和 ssh 的入站和出站规则为 NAT 实例创建安全组
  • 使用入站和出站 80/443 和 ssh 为私有实例创建安全组

我能够通过 SSH 跳转到 NAT 实例,然后转到私有服务器,所以我知道很多都在工作。我已经通过 ping 内部地址验证了我的规则,但是当我离开本地网络时,我开始遇到问题。

我需要在哪里查看或我需要排除哪些故障以帮助缩小范围?是否有一些需要在我忽略的 NAT 实例上完成的配置?

编辑:配置更新

  • 专有网络:172.16.0.0./16
  • 私有子网:172.16.1.0/24
  • 公共子网:172.16.0.0/24

私有子网路由表:

指向公共子网中的 NAT 实例。无法访问互联网,将 EIP 附加到面向互联网的公共接口。

私人 vpc

公共子网路由表:

将公共子网指向 IGW,我已验证 Internet 访问。

在此处输入图片说明

想法:

我开始认为需要在位于公共子网中的 NAT 实例上设置或创建一些东西来转发来自私有实例的流量,但我不确定需要添加什么。我发现这篇文章解释了在 iptables 中添加伪装规则,这适用于我的情况吗?

Sir*_*rex 3

是的,您必须在 nat 主机上设置 iptables 伪装。

iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE

我们有相同的设置,您已经正确完成了其他所有操作(禁用源检查,将私有子网指向 nat 实例的接口,将公共子网指向 igw)。