无法连接到VPC(Amazon AWS)中的EC2实例

我采取了以下步骤:

  1. 创build了一个VPC(带有一个公共子网)
  2. 向VPC添加了一个EC2实例
  3. 分配了一个弹性IP
  4. 将弹性IP与实例相关联
  5. 创build一个安全组并将其分配给实例
  6. 修改安全规则以允许端口22上的入站ICMP回显和TCP

我已经完成了这一切,我仍然不能ping或ssh进入实例。 如果我按照相同的步骤减去VPC位,我可以设置这个没有问题。 我错过了什么步骤?

为了在VPC之外进行通信,每个非默认子网需要一个路由表和一个与之关联的网关(默认子网默认获得一个外部网关和一个路由表)。

根据您在VPC中创build公有子网的方式,您可能需要另外明确添加它们。 您的VPC设置听起来像是与场景1相匹配的 – 具有单个公有子网的私有云(VPC),以及允许通过 AWS VPC文档通过Internet进行通信的Internet网关 。

您将需要添加一个互联网网关到您的VPC和公共子网的路由表中分配0.0.0.0/0 (默认路由)去分配的互联网网关。 文档中有精确的networking拓扑图。

此外,有关更多信息,可以查看VPC Internet网关 AWS文档。 不幸的是,它有点混乱,并不明显。

有关连接问题的更多详细信息,另请参阅: 连接到您的实例的疑难解答 。

我注意到(我认为)你需要小心你的实例创build在哪个可用区。SubNet,networking接口和实例需要在同一个可用区域,否则无法连接到公共IP就此而言。

我可能是错的 – 但我不这么认为,这花了我12个小时的工作才弄清楚。

希望这可以帮助别人。

不知道这是否正是这种情况,但是我刚刚创build了一个公用和专用子网的VPC,并注意到有一个默认安全组的源地址是相同的安全组名称。 有效它没有访问权限。 必须改变这个来源到任何地方,它开始工作。

您应该分配一个ENI并将弹性IP分配给此ENI。 另外,您应该将此ENI分配给您的VPC。 路由表也必须正确,才能正确地将外部数据包转发给您的VPC。

由于SSH是有状态的协议,因此您需要确保您的networkingACL中有以下OUTBOUND规则:

 Rule # Type Protocol Port Range Destination Allow / Deny 100 Custom TCP Rule TCP (6) 49152-65535 0.0.0.0/0 ALLOW