温馨提示×

ubuntu nodejs为何启动失败

小樊
42
2026-09-09 20:29:02
栏目: 编程语言

Ubuntu 上 Node.js 启动失败的原因有很多,下面我按常见原因 → 排查方法 → 解决办法给你梳理一下,你可以对照看是哪一种。


一、最常见原因速查

1️⃣ 命令不存在(node / npm 未安装或软链错误)

现象

command not found: node

排查

which node
which npm
node -v

解决

sudo apt update
sudo apt install nodejs npm

或安装指定版本(推荐):

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

2️⃣ Node 版本不兼容

现象

SyntaxError: Unexpected token ...

ERR_OSSL_EVP_UNSUPPORTED

原因

  • 项目要求 Node 18+,系统只有 12/14
  • OpenSSL 3 与老项目冲突

解决

  • 升级 Node
  • 或临时规避:
export NODE_OPTIONS=--openssl-legacy-provider

3️⃣ 端口被占用(最常见于 Web 服务)

现象

Error: listen EADDRINUSE: address already in use :::3000

排查

sudo lsof -i:3000
# 或
sudo netstat -tulnp | grep 3000

解决

kill -9 PID

或改端口:

PORT=4000 node app.js

4️⃣ 依赖未安装

现象

Cannot find module 'express'

解决

npm install

(生产环境)

npm install --production

5️⃣ 权限问题(尤其用 root 安装过)

现象

EACCES: permission denied

解决(推荐)

sudo chown -R $USER:$USER ~/.npm
sudo chown -R $USER:$USER project_dir

不要用 sudo node


6️⃣ systemd 服务启动失败(生产环境)

现象

systemctl status mynode
journalctl -u mynode

常见错误

  • User 不对
  • WorkingDirectory 错
  • 没有 node 绝对路径

示例 service

[Unit]
Description=Node App

[Service]
ExecStart=/usr/bin/node /var/www/app/index.js
WorkingDirectory=/var/www/app
User=ubuntu
Restart=always

[Install]
WantedBy=multi-user.target

7️⃣ 文件/路径错误

现象

Error: Cannot find module '/app/server.js'

解决

  • 确认路径
  • 用绝对路径启动
node /full/path/index.js

二、快速定位方法(强烈建议)

完整报错贴出来,我可以精准判断:

node app.js 2>&1 | tee error.log

三、你可以直接告诉我

  1. Ubuntu 版本(lsb_release -a
  2. Node 版本(node -v
  3. 启动命令
  4. 完整报错信息

我可以一步一步帮你修 ✅

0