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

部署在AWS EC2实例的Node.js应用无法通过浏览器访问如何排查?

AWS EC2 Node.js服务无法公网访问排查方案
  • 确认实例网络ACL配置
    安全组是实例级防火墙,而子网关联的网络ACL是子网级防护。请检查对应子网的网络ACL入站、出站规则,确认已放行8080端口的TCP流量,默认配置下网络ACL为全量放行,若您手动修改过规则需补全端口配置。
  • 检查实例本地防火墙规则
    AWS官方Linux AMI、Ubuntu等系统默认可能启用ufw或iptables防护,登录EC2实例执行以下命令验证:
    sudo ufw status
    若状态为active,执行以下命令放行端口:
    sudo ufw allow 8080/tcp && sudo ufw reload
    若使用iptables,执行以下命令查看规则:
    iptables -L -n
    确认没有拦截8080端口的入站规则。
  • 验证服务端口监听状态
    在实例内执行命令确认端口监听范围:
    ss -tulpn | grep 8080
    正常输出应显示监听地址为0.0.0.0:8080或:::8080,若仅显示127.0.0.1:8080说明服务仅绑定了本地回环地址,无法对外提供访问。
  • 核对服务监听协议一致性
    您的代码打印日志写死了https://前缀,但实际运行日志显示服务跑在http协议的8080端口,请确认:
    • 服务是否实际配置了SSL证书,若没有配置HTTPS,访问时需使用http://前缀而非https://
    • 是否有环境变量覆盖了默认端口配置,导致实际监听端口和代码默认的8443不一致
  • 验证实例网络属性
    确认您的EC2实例部署在公有子网,已分配公网IP/弹性IP,且子网关联的路由表已配置指向互联网网关(IGW)的默认路由0.0.0.0/0,私有子网内的实例无公网访问能力。
  • 本地连通性测试
    先在EC2实例内部执行curl命令验证服务可用性:
    curl http://127.0.0.1:8080
    若该请求能正常返回响应,说明服务本身运行正常,问题出在外部网络链路;若请求失败,优先排查Node.js服务自身的配置问题。
  • 复核安全组规则
    确认安全组入站规则中8080端口的TCP协议规则,源地址配置为0.0.0.0/0(或您的本地公网IP),避免规则配置错误导致流量被拦截。

内容的提问来源于stack exchange,提问作者Saurabh Yadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:01