AWS EC2实例80端口无法通过公网IP访问问题求助
解决EC2上Node.js应用公网无法访问的问题
修正应用监听地址
你的Fastify代码仅指定了端口,默认会绑定到127.0.0.1(仅本地可访问)。修改listen配置,添加host: '0.0.0.0'让应用监听所有网卡:fastify.listen({ port: PORT, host: '0.0.0.0' }, function (err) { if (err) { console.log("Error: " + JSON.stringify(err)) process.exit(1) } console.log(`App listening on port: ${PORT}`); })修改后重启应用,再尝试公网访问。
验证环境变量PORT配置
确认.env文件里的PORT值是否为你安全组开放的80端口:- 如果是其他端口(比如3000),需要在EC2安全组中添加对应端口的入站规则(允许
0.0.0.0/0访问该端口),访问时需在公网IP后加端口,例如http://35.176.45.73:3000。
- 如果是其他端口(比如3000),需要在EC2安全组中添加对应端口的入站规则(允许
检查实例内部防火墙
Amazon Linux可能启用了防火墙,执行以下命令放行对应端口(以80端口为例):# 放行80端口并永久生效 sudo firewall-cmd --add-port=80/tcp --permanent # 重启防火墙使配置生效 sudo firewall-cmd --reload若使用
iptables,则执行:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo service iptables save确认实例状态与公网IP
检查EC2控制台实例详情页,确认实例处于运行中状态,且公网IP与你使用的35.176.45.73一致。
内容的提问来源于stack exchange,提问作者unkwndev
相关产品推荐
相关产品推荐

