amazon-web-services - 无法通过 HTTP/HTTPS 访问 EC2
问题描述
我最近不得不完全重建我的 AWS EC2 环境,因为我不小心删除了 SSH 密钥,以为它是别的东西。不幸的是,我无法访问我已确认在该 EC2 实例上运行的 Tomcat 实例。
我为入站 HTTP 流量添加了以下安全组:
Type. Protocol Port Range Source
HTTP TCP 80 0.0.0.0/0
HTTP TCP 80 ::/0
Custom TCP Rule TCP 8080 0.0.0.0/0
Custom TCP Rule TCP 8080 ::/0
SSH TCP 22 (my IP address)
我有三个安全组,上面的规则被添加到名为的组中default
:
rds-launch-wizard
launch-wizard-1
**default
我通过 AWS 购买了一个域,我使用 Route 53 指向了这个 EC2 实例。以前,DNS 可用,但现在不可用。但是,这里有一个更大的根本问题,因为我什至无法 ping 我的 EC2 实例的公共 IP。
事实上,我可以通过端口 22 上的 SSH 访问我的 EC2 实例,这就是为什么我能够设置 Java 和 Tomcat(我已经确认它们都在运行)。
我怀疑我以前的配置中的某些状态是造成这个问题的原因,但我什至不知道从哪里开始寻找一些东西。
任何帮助,将不胜感激。
解决方案
要对您的 EC2 进行入站/出站 Internet 访问,您需要寻找三件事:
- 您是否能够通过互联网网关 (IGW) 从 AWS 外部或内部进行 SSH?如果您可以从外部进行 SSH,那么您已经正确设置了 IGW。否则,请确保您的子网的路由表通过如下所示的路由指向 IGW:
0.0.0.0/0 igw-efxxxxxxx Active No
- 网络 ACL:转到您的 EC2 的子网并找到其关联的 NACL 创建入站和出站规则以通过添加如下规则来允许上述 NACL 的流量:
100 ALL Traffic ALL ALL 0.0.0.0/0 ALLOW
- 安全组:您的安全组看起来不错。那里不需要更改。 但是,根据您在下面所做的评论,虽然您确实定义了具有正确入站规则的安全组,但无论出于何种原因,您都没有将该安全组与您的 EC2 实例相关联。因此,您定义的入站规则没有被应用。要解决此问题,请从 EC2 实例标签访问以下内容:
Actions -> Networking -> Change Security Groups
然后,通过选中相应的框将您的安全组与您的实例相关联。进行这些更改后,您的入站规则应该会生效,并且您应该能够访问在 EC2 上运行的 Tomcat 实例。
推荐阅读
- c++ - C++:为什么程序可以正常执行而没有任何错误?
- azure - 通过Powershell转换excel中的json值
- javascript - Salesforce 中自定义对象字段的动态收件人与 DocuSign 集成
- python - 使用 range() 和 step 进行字典理解
- python - 如何在多处理中关闭硒浏览器?
- multithreading - Hanging in channel receiver iterator in Rust?
- verilog - 来自多个 if 语句的信号分配
- android - Android 应用内评分提示提交按钮和星在生产应用上被禁用
- xpath - 为具有几乎相同属性的超链接选择正确的 xpath
- javascript - Redux Saga 错误:takeLatest$1 需要模式或通道