我的大脑有点油炸,试图弄清楚这一点,但我似乎无法得到私人子网连接到互联网抓取更新例如。 基本上所有我想要的是这些服务器的Web访问。 我已经尝试过在其他post中find的解决scheme,但可能很容易失去一些东西,因为我已经看了很长时间了。
到目前为止,我已经做了以下设置:
我可以通过SSH跳转到NAT实例,然后转到私有服务器上,所以我知道很多工作。 我已经通过ping内部地址来validation我的规则,但当我离开本地networking时,我开始有问题。
我需要查看哪些内容或需要排查什么来帮助缩小范围? 是否有一些configuration需要在我忽略的NAT实例上完成?
编辑:configuration更新
私有子网路由表:
指向公有子网中的NAT实例。 无法访问互联网,将EIP连接到面向公共互联网的界面。

公有子网路由表:
指向IGW的公共子网,我已经validation了互联网接入。

思考:
我开始认为有些东西需要build立或创build在NAT实例上,这个NAT实例位于公有子网中,用于转发来自私有实例的stream量,但是我不确定需要添加什么。 我发现这个post解释了在iptables中添加伪装规则,这是适用于我的情况?
是的,你必须在NAT主机上设置iptables伪装。
iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE
我们有相同的设置,你已经做了一切正确的(禁用源代码检查,私人子网指向nat实例的接口,公共子网指向igw)。
只是偶然发现了类似的问题。 假设你使用向导来创buildNAT实例,上面提到的伪装规则就已经存在了 – 这只是你需要添加的东西,如果你要“滚动你自己的”NAT实例。 (我通常这样做,所以我可以在这一点上加倍,并使其成为OpenSWAN L2TP / IPSec远程用户VPN服务器)。
自从我上次创build其中一个以来,我忘记添加的内容是允许来自所有将通过NAT实例路由stream量的私有安全组或子网的所有stream量(或者至less允许您允许)的规则。 NAT实例不会接受这样的出站stream量,没有规则允许它 – 不要只是想从互联网到达什么。 不知道这是否是你的问题,因为你曾经提到将22/80/443添加到你的NAT安全组,但是我认为我会为其他可能有类似问题的人提出这个build议。
我与此争斗了一段时间,直到我发现:
然后,从configuration为作为NAT实例运行的AMI启动一个实例到您的公共子网中。 Amazon提供了configuration为作为NAT实例运行的Amazon Linux AMI。 这些AMI在其名称中包含stringamzn-ami-vpc-nat,因此您可以在Amazon EC2控制台中search它们。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance
我将NAT服务器设置为我自己的标准(Ubuntu)实例,一旦我使用Amazon Linux AMI并更新了我的路由表,它就开始工作。