首页 > 解决方案 > Amazon AWS EC2 的实例没有互联网/错误配置?

问题描述

我可以通过 SSH 连接到我的 Amazon AWS EC2 实例(Ubuntu),但是实例本身无法连接到 Internet,这是我在做的时候注意到的

sudo apt-get update

这导致超时。我已经绘制了当前VPC配置的图表,希望有人能告诉我哪里出了问题:

在此处输入图像描述

我已经控制了入站和出站规则,但我看不到一些东西。有人可以帮助我并告诉我有什么问题吗?是不是 VPC CIDR 有后缀掩码 16 而子网 CIDR 有后缀掩码 20 或类似的东西?

顺便说一句 - 我不记得我在这里改变了一些东西。

VPC "vpc-cf8f91a4"
==================
My VPC-ID is vpc-cf8f91a4

The IPv4 CIDR is 172.31.0.0/16

Route table: rtb-f0da499a

Network ACL ID: acl-05e2486f

Internet Gateway "igw-a6b7aace"
===============================
igw-a6b7aace associated with vpc-cf8f91a4

Associated 2 Subnets
====================
subnet-faefd387 172.31.32.0/20 associated with route table rtb-f0da499a

subnet-febe7f94 172.31.16.0/20 associated with route table rtb-f0da499a

Route Table "rtb-f0da499a"

 Destination | Target | Status | Propagated 

 172.31.0.0/16 | local | active | No 

 0.0.0.0/0 | igw-a6b7aace | active | No 

标签: amazon-web-servicesamazon-ec2amazon-vpc

解决方案


正如其中一条评论中所述,ACL 是一项高级功能,除非您熟悉网络堆栈的较低级别并且有理由使用它们,例如在高度安全的环境中工作,或者需要使用它们,否则不建议使用它们角色分离,例如网络和开发团队。

根据您提供的信息,最可能的问题是您正在使用 ACL 阻止临时端口返回流量。ACL 是无状态的,因此您必须允许返回流量。

对于大多数 tcp 连接,这意味着 1024-65535,如果您将其添加为入站 ACL 规则并重新测试。

作为旁注,您不应该允许互联网访问您的数据库,这是非常糟糕的做法。我建议您创建另一个私有子网(无 IGW 路由)并将数据库放在那里,不要给它一个公共 IP 地址。


推荐阅读