amazon-web-services - 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
解决方案
正如其中一条评论中所述,ACL 是一项高级功能,除非您熟悉网络堆栈的较低级别并且有理由使用它们,例如在高度安全的环境中工作,或者需要使用它们,否则不建议使用它们角色分离,例如网络和开发团队。
根据您提供的信息,最可能的问题是您正在使用 ACL 阻止临时端口返回流量。ACL 是无状态的,因此您必须允许返回流量。
对于大多数 tcp 连接,这意味着 1024-65535,如果您将其添加为入站 ACL 规则并重新测试。
作为旁注,您不应该允许互联网访问您的数据库,这是非常糟糕的做法。我建议您创建另一个私有子网(无 IGW 路由)并将数据库放在那里,不要给它一个公共 IP 地址。
推荐阅读
- oracle - MAC 中的 SQL 开发人员配置指向本地安装的 oracle
- c# - 使用 LINQ 从数组创建对象的更快方法?
- android - 如何在 Android 中的 opencv 64 位 libnative_camera .so 文件中生成
- python - Pandas 编写的公式未在 Office 365 中评估并触发错误警告
- r - 图形输入另存为矢量
- java - 是否可以将 UUID 作为 URL 的一部分?
- java - 我只想使用 volley android 将数据插入 mysql 数据库 php
- java - 读取spring配置xml时出现异常
- sql - SQL Server 中的嵌套查询以获取 JSON 数组和 JSON 对象
- javascript - 选择某些单选选项时需要文本区域