无法使用弹性 IP ssh 进入私有子网

Unable to ssh into private subnet using Elastic IP

我设置了一个有 2 个子网的 VPC。其中之一是 public 另一个是私人的。

我能够使用机器的私有 IP 地址从 public 子网中的实例通过 ssh 连接到私有子网中的实例。但是,如果我使用私有实例的弹性IP地址,连接会超时。

例如,我们将 public 子网中的 EC2 实例调用为 "PUB" 并将私有子网中的实例调用为 PRV。

PRV 有弹性 IP "EIP" 和私有地址 PRV_IP。

当我使用私有 IP 地址从 public 实例 ssh 到私有实例时,连接成功,但是如果我使用私有 IP,连接失败。


ssh -i private_key ec2-user@EIP(成功)。

ssh -i private_key ec2-user@PRV_IP(失败,连接超时)。

谁能解释一下为什么弹性 IP 连接失败?

如您所见,将弹性 IP 附加到私有子网中的实例是一项毫无价值的练习。发生这种情况是因为每个子网只能有一个默认路由,并且它将指向 igw 对象(public 子网)或 NAT instance/gateway(私有子网)。

如果您将弹性 IP 绑定到私有子网中的机器,入站流量将到达该实例,但出站回复流量将通过 NAT 实例路由回,这将丢弃它。

这就是为什么当您尝试执行 SSH 时,您的客户端计算机能够向实例发送请求但实例未返回响应,因此超时。