【第四篇】Node-RED安装
1.安装 Node-RED 官方一键脚本:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
但这条命令需要访问 GitHub,在国内会被墙,所以之前执行没有反应。

pass
只能尝试第二套方案:
执行:curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

也失败了,报错 Failed to run 'apt update',原因还是 security.ubuntu.com 访问有问题。
没关系,直接用备用方案 这个也pass
只能用这个最终备用方案了:执行 sudo apt install -y nodejs npm


执行 sudo apt install -y nodejs npm 安装 Node.js 和 npm,安装完成后验证版本:Node.js v18.19.1,npm 9.2.0,环境就绪。
一.执行安装命令 sudo npm install -g node-red

执行 sudo npm install -g node-red 安装 Node-RED,共安装 278 个依赖包,耗时约 3 分钟。过程中出现 Unsupported engine 警告,原因是 Node-RED 最新版建议 Node.js v20+,当前版本为 v18,不影响正常使用
二.设置开机自启并启动服务:sudo systemctl enable nodered

报错了:Unit file nodered.service does not exist
原因是用 npm 全局安装的 Node-RED 没有自动创建 systemd 服务文件,需要用 PM2 来管理进程。
改用 PM2 方案,执行以下命令:
第一步:安装 PM2
sudo npm install -g pm2
第二步:先启动 Node-RED
pm2 start node-red
第三步:设置开机自启
pm2 startup
第四步:保存配置
pm2 save
🎉 Node-RED 启动成功!
看到关键信息:
status: online✅ Node-RED 正在运行PM2 Successfully daemonized✅ 后台守护进程启动Successfully saved✅ 配置已保存
但注意 pm2 startup 输出了一条需要手动执行的命令,必须执行这条才能真正开机自启:
sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

🎉 开机自启设置成功!
关键信息:
Command successfully executed✅Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service✅
安装 PM2 进程管理工具,用
pm2 start node-red启动 Node-RED,执行pm2 startup生成开机自启命令,复制输出的完整命令执行后,PM2 成功创建 systemd 服务,虚拟机重启后 Node-RED 自动在后台运行。
现在验证 Node-RED 是否正常运行,执行:
pm2 status

看到 status: errored ❌,Node-RED 启动失败了,需要查看错误原因。
执行:
pm2 logs node-red --lines 30

原因很清楚了:
Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1
Node-RED 最新版需要 Node.js v22.9+,我们装的是 v18,版本太低。
解决方案:升级 Node.js 到 v22
node --version # v22.16.0 ✅
npm --version # 10.9.2 ✅
然后重新执行 sudo apt install -y nodejs npm

然后运行 http://192.168.112.130:1880

连接被拒绝,说明 Node-RED 虽然显示 online 但实际没有监听 1880 端口。
检查一下 Node-RED 的日志:
pm2 logs node-red --lines 20

看到问题了:
Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1
PM2 启动 Node-RED 时用的还是旧的 Node.js v18,因为 PM2 是之前就安装的,它记住了旧的 PATH。
按 Ctrl+C 退出日志,然后执行:
pm2 delete node-red
pm2 start $(which node-red)
pm2 save
🎉 成功了!
Starting /usr/local/bin/node-red in fork_mode (1 instance)
status: online ✅
mem: 23.4mb ✅
这次用的是 /usr/local/bin/node-red,走的是 v22 的路径,正确了!
现在打开浏览器访问:
http://192.168.112.130:1880

---------------------------------------------------------------------------------因为版本太低导致一系列的问题--------------------------------------------------------------------------------------------------------------------------------------------
二、尝试 nodesource 安装 Node.js v22(失败)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
结果: Error: Failed to run 'apt update'
原因: nodesource 的脚本会访问 security.ubuntu.com,该地址在当前网络环境下签名验证失败。
三、改用 apt 安装 Node.js v18(成功,但版本不够)
sudo apt install -y nodejs npm
安装成功,版本为:
- Node.js:v18.19.1
- npm:9.2.0
安装 Node-RED:
sudo npm install -g node-red
安装成功,但启动报错:
Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1
原因: Node-RED 最新版本要求 Node.js v22.9+,v18 版本太低。
四、升级 Node.js 到 v22(通过阿里云镜像)
先卸载旧版:
sudo apt remove -y nodejs npm
sudo apt autoremove -y
尝试通过 nvm 安装失败(GitHub 和 Gitee 均无法访问),最终改用阿里云镜像直接下载二进制包:
# 下载 Node.js v22.16.0 二进制包(阿里云镜像)
wget https://mirrors.aliyun.com/nodejs-release/v22.16.0/node-v22.16.0-linux-x64.tar.xz
# 解压
tar -xf node-v22.16.0-linux-x64.tar.xz
# 复制到系统目录
sudo cp -r node-v22.16.0-linux-x64/* /usr/local/
# 更新 PATH 并永久生效
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证版本:
node --version # v22.16.0 ✅
npm --version # 10.9.2 ✅
五、重新安装 Node-RED
sudo npm install -g node-red
这次没有版本警告,安装顺利完成。
六、用 PM2 管理 Node-RED 进程
Node-RED 通过 npm 全局安装后没有 systemd 服务文件,使用 PM2 进行进程管理:
# 安装 PM2
sudo npm install -g pm2
# 启动 Node-RED
pm2 start node-red
# 生成开机自启配置
pm2 startup
# 执行 pm2 startup 输出的命令(复制粘贴执行)
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
# 保存进程列表
pm2 save
验证运行状态:
pm2 status
看到 status: online 说明 Node-RED 正在后台运行。


浙公网安备 33010602011771号