我是否需要为我的笔记本电脑设置路由表以ssh到具有公共IP的实例?

时间:2016-06-07 03:58:03

标签: amazon-ec2 amazon-vpc

首先让我描述一下我的操作步骤:

  1. 我设置了一个带有CIDR 10.20.0.0/16的VPC(我创建并附加了一个IGW,igw-14ed6f75)。

  2. 然后我设置子网subnet_A 10.20.1.0/24。该子网的路由表为10.20.0.0/16 -->local注意:我未在此路由表中设置0.0.0.0/0 --> igw-14ed6f75的路由)

  3. 我在subnet_A中启动了一个实例instance_A,其自动创建的公共IP为52.53.245.253。 (顺便说一句,此实例使用的密钥对是bastion_box)

  4. 我想通过ssh -i ~/.ssh/bastion_box.pem ec2-user@52.53.245.253

    ssh到instance_A
    • 结果/观察:我无法 ssh到instance_A
  5. 现在我将一条路由0.0.0.0/0 --> igw-14ed6f75添加到与subnet_A关联的路由表中,然后再次执行ssh操作ssh -i ~/.ssh/bastion_box.pem ec2-user@52.53.245.253

    • 结果/观察:我可以成功ssh到instance_A
  6. 以下是我的问题:为什么我们需要0.0.0.0/0 --> igw-14ed6f75的路由才能成功进入实例?我认为这个规则适用于连接到Internet的实例,但不适用于在子网中连接的外部计算机。

1 个答案:

答案 0 :(得分:2)

TCP连接是双向连接。服务器需要能够向客户端发送流量(一旦初始握手完成,两者就无法区分)。如果没有出口路由,服务器就无法将任何数据包发送回客户端以建立连接。

来自http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html(加粗):

  

为VPC中的实例启用访问或从访问Internet   子网,您必须执行以下操作:

     
      
  • 将Internet网关连接到您的VPC。
  •   
  • 确保您的子网路由表指向Internet网关。
  •   
  • 确保子网中的实例具有公共IP地址或弹性IP地址。
  •   
  • 确保您的网络访问控制和安全组规则允许   流入和流出您实例的相关流量。
  •