Node.js服务器启动报错:EACCES权限问题(换端口仍未解决)
Node.js服务器EACCES错误解决办法
先看你的报错细节:
node:events:491 throw er; // Unhandled 'error' event ^ Error: listen EACCES: permission denied 3005; Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1767:8) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'EACCES', errno: -4092, syscall: 'listen', address: '3005;', port: -1 }
核心问题是端口号后面多了个分号,从address: '3005;'能明显看出来,这导致Node无法解析出有效端口,进而抛出了误导性的权限错误。
解决步骤:
- 打开你的服务器启动代码或配置文件,找到设置端口的地方,比如
app.listen(3005;)或者配置项里的port: '3005;',把端口值后面的分号删掉,改成纯数字3005或者不带分号的字符串'3005'。 - 重启服务器,验证端口是否正常监听。
- 如果确认端口配置无误后仍出现EACCES错误,再排查系统层面问题:
- 用
lsof -i :[你的端口号]检查端口是否被其他进程占用,若有则杀掉对应进程或者换其他端口。 - Linux/macOS下如果用1024以下端口需要root权限,3000+端口不需要,但若遇到权限问题可以临时用
sudo node [你的服务器文件]测试(不建议长期以root身份运行服务)。
- 用
内容的提问来源于stack exchange,提问作者amol
相关产品推荐
相关产品推荐

