You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Ubuntu实例部署Node.js服务后公网IP无法访问(提示无安全连接)

AWS Ubuntu实例部署Node.js服务后公网IP无法访问(提示无安全连接)

我之前也碰到过几乎一模一样的问题,别慌,咱们一步步来排查解决:

  • 先确认访问协议是否正确
    你提到服务在本地能正常运行,大概率是因为本地用的是HTTP访问,但在公网访问时不小心用了HTTPS(浏览器可能自动跳转)。Node.js默认启动的服务是HTTP协议,没有配置SSL证书的情况下,HTTPS请求肯定会报“无法提供安全连接”的错误。
    试试直接用 http://<你的公网IP>:<服务端口> 访问,比如服务跑在3000端口就访问 http://x.x.x.x:3000,应该就能正常连接了。另外控制台里的crbug/1173575错误是Chrome浏览器的通用报错,本质是HTTPS请求失败导致的,不用太在意这个错误本身。

  • 检查AWS安全组的入站规则
    AWS默认的安全组是封闭大部分端口的,你得确保服务用的端口已经对外开放:

    1. 登录AWS控制台,进入EC2实例列表
    2. 点击你的实例,找到关联的安全组并进入详情页
    3. 切换到「入站规则」标签,点击「编辑入站规则」
    4. 添加一条规则:类型选「自定义TCP」,端口范围填你的Node.js服务端口(比如3000),源选「0.0.0.0/0」(测试阶段用,后续可以改成指定IP提高安全性)
    5. 保存规则后再尝试访问
  • 检查Ubuntu本地防火墙(ufw)
    如果你的Ubuntu实例开启了ufw防火墙,即使AWS安全组开放了端口,本地防火墙也会拦截请求。可以执行以下命令开放端口:

    sudo ufw allow <你的服务端口>/tcp
    sudo ufw reload
    

    执行完后再测试访问是否正常。

  • 确认Node.js服务的绑定地址
    有时候服务代码里监听的是localhost(127.0.0.1),这种情况下服务只能在实例内部访问,公网无法连接。你需要修改代码,让服务监听0.0.0.0地址,比如:

    // Express框架示例
    app.listen(3000, '0.0.0.0', () => {
      console.log('服务已启动,监听0.0.0.0:3000');
    });
    

    修改后重启服务,再用公网IP访问试试。

按照这个顺序排查下来,基本就能解决问题啦!

备注:内容来源于stack exchange,提问作者Ilia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:02:59