【问题标题】:AWS EC2 Instance with public IP address cannot be accessed from within private subnet with NAT Gateway无法从具有 NAT 网关的私有子网中访问具有公共 IP 地址的 AWS EC2 实例
【发布时间】:2016-10-02 15:23:06
【问题描述】:

我按照以下说明设置并使用 NAT 网关:

AWS Lambda: How to setup a NAT gateway for a lambda function with VPC access

使用私有子网和 NAT 网关的 Lambda 函数现在似乎能够访问 Internet。所以这很好。

但是,我在私有子网中启动了一个具有公共 IP 地址的 EC2 微实例,但我无法通过 SSH 连接到它。我在上面链接的问题中有一些关于这个问题的参考,即它在技术上是一个错误配置,但我希望有人能详细解释为什么会出现这种情况以及 EC2 实例无法访问的原因。

【问题讨论】:

  • 实例在私有子网中?如果是,则附加公共 IP 无济于事,只能从公共子网中的实例访问它
  • @Shibashis 根据我的问题描述,我已经确认无法通过我自己的测试访问它。我不明白 EC2 实例怎么可能拥有公共 IP 地址但无法从 Internet 访问。
  • 即使实例有一个公共 IP,它也需要互联网连接才能进行 SSH。当您创建 NAT 网关/实例时,与私有子网中 EC2 实例的 Internet 连接会通过 NAT,因此您无法从其他任何地方直接通过 SSH 连接到 EC2 实例。很简单,您的笔记本电脑也有一个公共 IP 地址,但如果它没有连接到互联网,您就无法从远程位置 RDP 进入您的笔记本电脑。
  • @oliakaoil 去阅读整个答案:stackoverflow.com/questions/22188444/…
  • 去服务器故障或网络工程堆栈交换中问这个问题。

标签: amazon-web-services amazon-ec2 aws-lambda nat


【解决方案1】:

即使您为其分配了公共 IP 地址,您也无法通过 SSH 连接到私有子网中的 EC2 实例。按照此过程通过 SSH 连接到私有子网中的 EC2 实例。

https://cloudpages.wordpress.com/2013/08/05/ssh-to-an-instance-in-private-subnet/

或者在公共子网中创建一个堡垒主机,它可以访问您的私有子网 Ec2 实例,然后从堡垒主机通过 SSH 连接到 EC2 实例。

【讨论】:

  • 不知道为什么这个答案会被否决。这是正确的答案。
  • @markb 投了反对票,因为我没有问这是否可能,或者如何去做。我说这似乎不可能,并问为什么。这个答案没有解决这个问题。
猜你喜欢
  • 2018-08-10
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
  • 2023-03-03
  • 2016-04-17
  • 2021-07-10
相关资源
最近更新 更多