繁体   English   中英

AWS EC2 实例连接在端口 8085 上被拒绝

[英]AWS EC2 instance connection refused on port 8085

我在 AWS 中有一个新的 EC2 实例,我也在其中托管一个网页。 我将实例关联到一个安全组,并且一些规则起作用(例如连接到 mysql 或 vesta)。 我用 nodeJS 创建了一个简单的服务器,我想监听来自端口 8085 的请求(我可以选择任何......)。 我在安全组中创建了一个入站规则来监听8085端口,它似乎想监听,但是连接被拒绝:因为它被拒绝,我认为不是安全组问题。

在此处输入图像描述

这是入站安全规则:

在此处输入图像描述 在此处输入图像描述

我试过其他帖子提到“netstat -a -n | grep 8085”和“netstat -an | grep 8085”,但我什么也没得到在此处输入图像描述 "

我什至禁用防火墙以防万一在此处输入图像描述

这是我创建服务器的代码

    const express = require('express');

    const app = express();
    
    const PORT = 8085;
    
    app.get('/', (req, res) => {
      res.send("testing");
    });
    
    app.listen(PORT, () => {
      console.log(`Server running at: http://localhost:${PORT}/`);
    });

当我运行它时,我在控制台中得到“服务器在 http://localhost:8085/ 运行”,但是当我在浏览器中键入 IP 地址:8085 时,我得到无法访问站点。 (端口没有监听)

我究竟做错了什么?

我不是一个 telnet 人,所以也许我错过了一些东西。 您确实与机器建立了连接,否则您会收到超时错误,因此您的安全组没问题。 但请注意,您正在侦听 http 请求。 正如我之前所说,我不是 telnet 人,但我不认为您在终端中使用 http 协议,正如@EdsonCSouza 所提到的。 尝试使用 curl 看看你会得到什么。

你的代码似乎没问题。 我在这里进行了测试,您的安全组似乎也不错...当您检查端口是否正在侦听时,您能否检查节点进程是否正在运行? 根据您提供的信息,这并不清楚。

缺少的另一件事是 VESTA 中的防火墙。 我又做了一切,直到我配置它才起作用。

在此处输入图像描述

您还可以检查您的 VPC 的网络访问控制列表 (ACL) 吗? 可能存在可能阻止此网络 ACL的显式拒绝

如果您尝试将实例本地连接到 api 网关或其他任何方式,请尝试将 localhost 更改为您的 ec2 实例的私有 IP。 这对我有用.. PS:可能有点偏离轨道但可以帮助某人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM