我在AWS上创建了一个带有私有子网和公有子网的VPC . 我从私有子网启动了一个实例,我想通过NAT服务器访问互联网 .
这是我的NAT实例上的iptables .
Chain PREROUTING(策略ACCEPT)num target prot opt source destination
1 DNAT tcp - 0.0.0.0/0 0.0.0.0/0 tcp dpt:10234 to:10.0.1.58:22
Chain INPUT(策略ACCEPT)num target prot opt source destination
Chain OUTPUT(策略ACCEPT)num target prot opt source destination
Chain POSTROUTING(策略ACCEPT)num target prot opt source destination
1 MASQUERADE all - 10.0.0.0/16 0.0.0.0/0
我应该在私有子网中添加到NAT或我的实例中,以便能够从私有子网中的实例访问Internet
非常感谢!!
4 回答
我假设你想实现这个目标:
您可以在公有子网中创建自定义nat实例
将自定义创建的nat实例添加为与私有子网关联的路由表中的默认网关
This分步教程可以帮助您附上目标 . 希望能帮到你
你的
MASQUERADE
规则很好 . 来自NAT instance documentation的其他一些事情:您应该在NAT实例上disable the source/destination check以允许它路由流量
设置inbound and outbound security group rules以根据需要允许流量 .
确保route table for your private subnet points to the NAT instance
从社区AMI中选择以下AMI,然后在公有子网中启动实例 . 启动实例后,将其关联到路由表中的私有路由表
无需对实例执行任何操作,默认情况下应该可以正常工作 .
除了提供的其他答案之外,您还需要做其他两件事 .
您需要和nat实例的入站规则允许来自私有子网的流量
您还需要在nat实例上禁用源/目标检查