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

Next.js项目指定端口运行异常:配置未生效及访问失败问题

问题分析与解决方案

一、为什么yarn start会提示3000端口被占用?

Next.js 默认的yarn start命令是启动框架内置的生产服务器,不会读取你的自定义server.js文件,所以它会默认使用3000端口。这就是你明明在server.js里指定了3002,但yarn start仍会尝试占用3000的原因。

如果要通过自定义server.js启动项目,需要修改package.json里的start脚本:

"scripts": {
  "start": "node server.js"
}

修改后执行yarn start,才会运行你的自定义服务,使用3002端口。

二、forever start server.js后无法访问http://<ip>:3002的可能原因及解决方法

1. 服务未成功启动

  • 查看forever日志排查错误:执行forever logs server.js,检查是否有依赖缺失、文件路径错误等问题。
  • 先直接用node server.js启动,确认服务能正常输出> Ready on http://localhost:3002,再用forever托管。

2. 端口绑定范围限制

你的server.listen(3002)默认只绑定localhost(127.0.0.1),导致仅本机可访问,外部IP无法连接。修改为绑定所有网卡:

server.listen(3002, '0.0.0.0', (err) => {
  if (err) throw err;
  console.log("> Ready on http://0.0.0.0:3002");
});

3. 防火墙/安全组未开放3002端口

  • 本地环境:关闭防火墙,或在防火墙规则中允许3002端口的入站连接。
  • 服务器环境:检查云服务商的安全组配置,确保3002端口的TCP流量被允许。

4. 端口3002已被其他进程占用

执行命令查看端口占用情况:

# Linux/macOS
lsof -i :3002
# Windows
netstat -ano | findstr :3002

若有其他进程占用,杀掉对应进程后重启服务。

内容的提问来源于stack exchange,提问作者Martin AJ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:00:59