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

Node.js启动报listen EACCES 4000端口permission denied权限拒绝错误

Express服务启动报错 listen EACCES: permission denied 4000; 进程崩溃

故障现象

本地运行D:\REACT JS\E-COMMERCE路径下的电商项目Express后端服务时,Node.js进程抛出未处理的error事件直接崩溃,核心错误为端口监听阶段权限不足,完整错误栈信息如下:

node:events:505
throw er; // Unhandled 'error' event
^
Error: listen EACCES: permission denied 4000;
at Server.setupListenHandle [as _listen2] (node:net:1363:21)
at listenInCluster (node:net:1428:12)
at Server.listen (node:net:1527:5)
at Function.listen (D:\REACT JS\E-COMMERCE\node_modules\express\lib\application.js:635:24)
at Object.<anonymous> (D:\REACT JS\E-COMMERCE\backend\server.js:10:5)
at Module._compile (node:internal/modules/cjs/loader:1099:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1407:8)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
errno: -4092,
syscall: 'listen',
address: '4000;',
port: -1
}

故障分类

该错误属于端口监听类启动故障,通常由三类原因导致:

  • 端口配置格式错误
  • 端口被系统保留/被其他进程占用
  • 当前程序运行权限不足

排查解决步骤

  1. 优先修复端口配置格式错误
    从错误栈返回字段可以看到,监听的address值为'4000;'、port值为-1,说明传入listen方法的端口参数携带了多余的分号。直接打开D:\REACT JS\E-COMMERCE\backend\server.js第10行附近的代码,检查app.listen()的入参;如果是从环境变量读取端口,检查.env文件内的PORT配置是否误写了尾部分号,删除多余分号、确保传入的端口值为纯数字4000或无特殊字符的字符串'4000'即可。
  2. 排查端口占用/系统保留问题
    如果修正格式后仍报错,以管理员身份打开终端,执行命令netstat -ano | findstr :4000查看4000端口是否被其他进程占用,若存在占用可通过任务管理器结束对应进程,或直接更换为3001、5000等未被占用的端口启动服务。如果查询不到占用进程,说明4000端口属于Windows系统默认保留端口段,直接更换端口即可。
  3. 提升运行权限
    以上两步排查完仍报错的,关闭当前终端,右键点击终端程序选择「以管理员身份运行」,重新进入项目目录执行启动命令,规避普通权限下系统对端口监听的限制。

内容的提问来源于stack exchange,提问作者Sonu Kumar Mahto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:18:22