私有子网中的AWS EC2实例无法通过NAT网关连接到互联网



我有两个EC2实例,一个在公用子网(10.1.1.0/24(上,另一个在专用子网上(10.1.2.0/24(公用子网中的EC2实例与互联网连接和配置的服务配合良好。

在具有弹性IP的公用子网10.1.1.0/24中配置了一个NAT网关。专用子网上的默认路由是[0.0.0.0/0->公用子网上的NAT网关]。我在私有子网上有一个自定义的网络ACL,我观察到当入站/出站规则的源和目标设置为10.1.1.0/24(公用子网(外部连接中断时,ssh可以工作。只有当源/目标设置为"any"时,才能恢复internet连接。我正在努力了解在私有子网上的网络ACL中应该使用什么确切的源/目的地,以便internet连接正常工作。

要允许来自私有子网的实例使用NAT网关访问互联网,NACL或SG必须允许互联网流量。NAT不会将互联网流量更改为专有网络流量。因此,如果删除0.0.0.0/0,则互联网连接将停止。

这在AWS关于实例无法访问互联网的文档中有解释:

确保与私有子网和公共子网关联的网络ACL没有阻止入站或出站internet流量的规则

因此,对于私有子网中的实例,您必须在NACL和SG中允许0.0.0.0/0(或者某些IP范围,如果您只想要部分互联网流量的话(。

附带说明的是,通常不修改NACL,通常使用默认设置。相反,安全组是控制对实例的访问和从实例访问的首选。

最新更新