如何从亚马逊vpc连接外部世界?

And*_*tov 52 connectivity amazon-ec2 vpc amazon-web-services amazon-vpc

我通过向导将amazon VPC设置为"仅公共网络",因此我的所有实例都在公共子网中.

VPC中分配了弹性IP的实例可以毫无困难地连接到Internet.

但没有弹性IP的实例无法连接到任何地方.

互联网网关存在.aws控制台中的路由表看起来像

Destination Target 
10.0.0.0/16 local
0.0.0.0/0   igw-nnnnn
Run Code Online (Sandbox Code Playgroud)

和实例内部的路线显示

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
default         10.0.0.1        0.0.0.0         UG    100    0        0 eth0
Run Code Online (Sandbox Code Playgroud)

我尝试将所有入站和出站流量打开到实例所属的安全组中的0.0.0.0/0.仍然没有成功.

~$ ping google.com
PING google.com (74.125.224.36) 56(84) bytes of data.
^C
--- google.com ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5017ms
Run Code Online (Sandbox Code Playgroud)

我还可以做些什么?

And*_*tov 55

看来从没有弹性IP的实例进入外部的唯一方法是:

  • 添加NAT(从ami-vpc-nat-beta启动额外的m1.small实例)并为其分配EIP
  • 创建一个额外的子网,它将是"私有的"
  • 将非EIP实例移动到该私有子网
  • 修改路由表:私有子网的0.0.0.0/0应该转到NAT

所以,仅添加NAT是不够的.应停止实例并将其移动到另一个子网中的另一个IP.

  • 不要忘记在NAT实例源/目标检查中禁用. (4认同)
  • 当然你的NAT应该有EIP.暗示.编辑了答案 (3认同)
  • 文档说您还必须为 NAT 实例分配一个 EIP。 (2认同)
  • 事实上,如果不将 EIP 分配给 NAT 实例,它将无法工作。刚刚测试过。 (2认同)

ald*_*eal 11

文档告诉您应该添加NAT实例


Mor*_*rty 9

问:没有EIP的实例如何访问互联网?

没有EIP的实例可以通过以下两种方式之一访问Internet:没有EIP的实例可以通过NAT实例路由其流量以访问Internet.这些实例使用NAT实例的EIP来遍历Internet.NAT实例允许出站通信,但不允许Internet上的计算机使用NAT启动与私有寻址计算机的连接,并且

http://aws.amazon.com/vpc/faqs/

您可以在此处找到有关如何设置nat实例的详细说明:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html 在此输入图像描述