我正在尝试连接我的私有子网 postgres 集群,以便能够访问互联网,但不能公开访问。我的设置如下:
我有一个具有 4 个子网的 VPC 10.1.0.0/16
:
具有安全组的Postgres 子网10.1.2.0/24
允许所有端口目标。然后,我将 NAT 网关连接到我的子网,并为该 NAT 分配并关联了一个 EIP。
然后我创建了一个与我的子网关联的路由表:
10.1.0.0/16
当地的0.0.0.0/0
我的NAT
我已经检查了我的 NAT 网关和 EIP 的状态,一切处于活动状态且公开。
在建立隧道并连接到我的私有 ec2 postgres 实例后,我无法 ping 通我的 NAT 网关 ->10.1.2.124/24
我的 postgres 服务器所在的私有 IP 地址10.1.2.11/24
。
我已经束手无策了。如果您需要该cloudformation
文件来帮助调试,请告诉我,我会提供。
谢谢!
答案1
您的 VPC 上是否有互联网网关?另外,请将 NAT 网关放在单独的子网中。
这是通常的设置:
- 具有 NAT 网关的公共子网。公共子网路由表应将 0.0.0.0/0 重定向到互联网网关。确保您的 NAT 网关具有 EIP。
- 您的 postgres 实例的私有子网。确保私有子网将 0.0.0.0/0 路由到 NAT 网关。
答案2
亚马逊默认限制 icmp 流量,如果您希望能够 ping 通,请确保在安全组上启用了该功能。
如果您想通过 NAT 访问互联网,您还必须禁用 NAT 实例上的 src/destination 检查。