1880 是什么
1880 是 Node-RED 的默认 Web 端口,它把流程编排做成浏览器里的拖拽画布:节点连起来就构成数据处理逻辑,保存后的流程在服务端持续运行。它常见于物联网、智能家居与自动化联动场景,也常被当作轻量的胶水层使用。
编辑器默认没有登录校验
能打开页面的人就可以修改流程、注入测试数据甚至部署新逻辑。暴露在公网时,攻击者可以借它执行任意逻辑;若流程中保存了设备凭据或数据库连接信息,损失会进一步扩大,因此认证与来源限制缺一不可。
基本信息
| 服务 | Node-RED |
|---|---|
| 协议 | TCP/HTTP 1880 |
| 用途 | 物联网与自动化流程编排 |
| 认证 | 默认无,需在配置中开启 |
| 安全等级 | 启用编辑器鉴权并限制来源 |
典型使用场景
- 把传感器数据汇总后写入数据库或转发到消息平台
- 实现设备之间的联动逻辑,替代逐条编写脚本
- 作为自动化流程的原型工具快速验证想法
- 排查流程不生效时确认服务状态与流程是否已部署
- 安全核查时确认编辑器是否对外可达
启动与检查
启动与检查
ss -lntp | grep 1880 # 确认监听地址
curl -sI http://127.0.0.1:1880/ | head -3 # 确认页面可达
systemctl status nodered | head -5 # 服务状态认证配置思路
认证配置思路
# settings.js 中启用编辑器鉴权(示例思路)
# adminAuth: { type: "credentials", users: [ ... ] }
# httpNodeAuth: { user: "<用户名>", pass: "<口令哈希>" }
# 编辑器路由与接口路由分别配置认证,避免只保护一侧访问入口对照
| 入口 | 说明 | 建议 |
|---|---|---|
| 编辑器 | 可视化流程管理 | 必须开启登录认证 |
| 接口路由 | 流程对外提供的 HTTP 接口 | 按需鉴权,勿长期匿名 |
| 调试视图 | 运行状态与消息查看 | 限制来源网段 |
编辑器暴露等于交出设备控制权:即使流程本身无害,攻击者也能新增流程去调用内网接口,把它当成进入内网的跳板。
凭据管理建议:设备账号与数据库口令尽量保存在独立的凭据节点中,而不是明文写在流程里;导出或分享流程前,先检查是否夹带敏感信息。