AWS EC2部署Node.js API后本地curl正常公网访问超时如何解决
问题核心原因
你当前在公网浏览器访问的是EC2实例的私网IP(172.31.17.178),该IP仅能在AWS同VPC的内部网络中被访问,公网环境下无法路由到该地址,这是导致超时的最直接原因。你需要替换为实例的公网IPv4地址访问:http://18.221.231.202:3002。
如果更换公网IP后仍无法访问,可以按以下步骤逐一排查:
- 检查Node.js服务监听地址
不要让服务仅监听本地回环地址127.0.0.1,需配置为监听所有网卡地址0.0.0.0,修改app.js中监听代码为类似格式:
可在实例中执行命令app.listen(3002, '0.0.0.0', () => { console.log('服务运行在3002端口') })sudo netstat -tunlp | grep 3002验证监听地址,如果返回结果中地址为127.0.0.1:3002则说明监听配置错误。 - 核对AWS安全组入站规则
确认安全组入站规则中已添加允许TCP 3002端口的规则,源地址配置为0.0.0.0/0(允许所有公网IP访问)或者你当前本地设备的公网IP,避免仅配置了出站规则漏了入站规则。
- 验证Ubuntu防火墙配置
执行命令sudo ufw status确认3002端口的入站规则为ALLOW,没有限制访问源IP。
- 排查本地网络限制
部分公司内网、VPN会限制非常规端口的出站访问,可尝试切换手机热点访问测试,或在本地执行命令telnet 18.221.231.202 3002验证端口连通性。
验证通过后你就可以在公网正常调用API,效果和本地测试一致:
内容的提问来源于stack exchange,提问作者Adriel Kirch
相关产品推荐
相关产品推荐

