AWS EC2(Windows系统)部署NextJS遇端口3000无法访问求助
排查AWS Windows EC2上Next.js服务外部无法访问的方案
核心排查步骤
检查Node服务绑定地址
默认npm start启动的Next.js可能仅绑定localhost(127.0.0.1),仅允许本地访问。需修改启动配置让服务监听所有网卡:- 打开项目根目录的
package.json - 将
scripts中的start命令修改为:"start": "next start -H 0.0.0.0" - 重启服务:按
Ctrl+C终止当前进程,重新执行npm start
验证绑定结果:执行netstat -ano | findstr :3000,查看输出的本地地址是否包含0.0.0.0:3000或:::3000
- 打开项目根目录的
检查Windows本地防火墙
AWS安全组放行后,Windows自带防火墙可能仍拦截3000端口:- 打开「Windows Defender防火墙」→「高级设置」
- 新建入站规则:选择「端口」→ 输入
3000(TCP协议)→ 选择「允许连接」→ 应用到所有网络类型 → 命名规则后完成配置
确认安全组与实例关联
检查EC2实例是否正确关联目标安全组sgr-07ad45d8794867fac:- 登录AWS控制台,进入该EC2实例的详情页面
- 查看「安全组」标签,确认列表中包含该安全组ID
测试网络连通性
从本地机器执行以下命令验证端口是否可达:- 命令提示符:
telnet 3.25.154.60 3000 - PowerShell:
Test-NetConnection 3.25.154.60 -Port 3000
若连接失败,说明端口仍被拦截;若连接成功,尝试清除浏览器缓存或更换浏览器测试
- 命令提示符:
额外提示
- 若使用开发服务器(
npm run dev),同样需添加-H 0.0.0.0参数,命令改为"dev": "next dev -H 0.0.0.0" - 确认EC2实例的公有IP未变动,若使用弹性IP需检查是否已正确绑定到实例
内容的提问来源于stack exchange,提问作者user3801466
相关产品推荐
相关产品推荐

