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


46

我已采取以下步骤:

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

我已经完成了所有这些操作,但仍然无法对实例执行ping或ssh操作。如果我按照相同的步骤减去VPC位,则可以进行设置。我想走哪一步?


2
您是否已将网关和路由分配给VPC子网?
zorlem

如果我转到Internet网关,则有一个分配给VPC的网关。如何检查是否已分配路线?
Ryan Lynch

路由是路由表吗?
瑞安·林奇

2
是的,您需要为公共路由表分配一个“互联网网关”。
zorlem 2013年

1
太好了,谢谢。如果您以回答的形式提出,我会接受的。在您的答案中,您还可以指定要确切地放入路由表中的内容吗?我输入了0.0.0.0/0,将目标作为Internet网关,但这听起来不正确。
瑞安·林奇

Answers:


75

要在VPC外部进行通信,每个非默认子网都需要一个路由表和一个与其关联的Internet网关(默认子网默认情况下会获得一个外部网关和一个路由表)。

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

需要将Internet网关添加到VPC,并在“公共子网”的路由表中分配0.0.0.0/0(默认路由)以转到分配的Internet网关。文档中有确切的网络拓扑图。

此外,有关更多信息,您可以查看VPC Internet Gateway AWS文档。不幸的是,这有点混乱,而且不是显而易见的陷阱。

有关连接问题的更多详细信息,另请参见:对连接实例进行故障排除


2
除了为Internet网关分配默认路由外,我还必须将子网与路由表相关联。但是一旦我完成了这两件事,我就可以启动并运行了。谢谢。
山姆·肯尼

4
VPC管理>路由表> [路由]>添加,0.0.0.0 / 0,下拉列表选择您的Internet网关
Scott R. Frost

我将把它扔出去,以便互联网从我的错误中学习。如果您到Internet网关的路由的目标地址为0.0.0.0/32,则它将不起作用。路由需要更改为0.0.0.0/0,如Zorlem的答案中所指定。
道格拉斯

4

不知道这是否就是这种情况,但是我刚刚创建了具有公共子网和私有子网的VPC,并注意到存在一个默认安全组,该安全组的源地址与相同的安全组名称相同。有效,它无法访问。不得不将此源更改为任何地方,并且它开始工作。


您好,我也在测试方案2。公共和私有子网中的公共和私有实例。关键是我不了解私有实例如何能够访问Internet和更新软件。
一个

谢谢,这是我的问题,我想这意味着VPC内部的所有实例都可以访问
Santthosh

3

我注意到(我认为)您需要注意在其中创建实例的可用区域。子网,网络接口和实例必须位于同一可用区域中,否则无法连接到公共IP对于那个例子。

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

希望这对其他人有帮助。


没错 如答案中所述,方案1是在其中创建/16VPC,然后/24在要使用的每个可用区中创建一个的地方
Machavity 2014年

1

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


我认为,当您想要实例上的其他网络接口时,需要添加ENI,默认情况下,它们带有一个NIC。
zorlem

0

由于SSH是全状态协议,因此您需要确保网络ACL中具有以下OUTBOUND规则:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.