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

如何配置Docker中的Node-RED实例监听两个HTTP端口?

Docker部署Node-RED作为API服务的配置方案

一、Docker容器启动配置

通过以下命令启动Node-RED实例,同时映射1880(管理端口)和1881(API端口),并挂载本地目录持久化配置数据:

docker run -d \
  --name node-red-api \
  -p 1880:1880 \
  -p 1881:1881 \
  -v ~/node-red-data:/data \
  nodered/node-red:latest
  • -d:让容器后台运行
  • --name:给容器命名,方便后续管理操作
  • -p:将容器内的1880/1881端口映射到宿主机对应端口
  • -v:挂载本地~/node-red-data目录到容器/data目录,用于保存配置、流数据等内容

二、修改Node-RED核心配置

进入挂载的本地配置目录(~/node-red-data),编辑settings.js文件,完成API端口绑定和UI界面隐藏:

1. 绑定API服务到1881端口

找到httpNodeOptions配置块,设置监听端口为1881:

httpNodeOptions: {
    port: 1881
},

此配置会让所有HTTP-in节点的API服务运行在1881端口。

2. 禁用管理UI界面

找到httpAdminOptions配置块,开启编辑器禁用选项,同时保留1880端口用于临时编辑:

httpAdminOptions: {
    port: 1880,
    disableEditor: true,
    // 可选:如果要完全屏蔽管理端点,可添加 path: false
},

确认已配置管理员密码(你提到已设置,可跳过但建议检查):

adminAuth: {
    type: "credentials",
    users: [{
        username: "your-admin-user",
        password: "$2a$08$xxxxxxxxx", // 用bcrypt生成的密码哈希
        permissions: "*"
    }]
},

修改完成后重启容器使配置生效:

docker restart node-red-api

三、UFW防火墙规则配置

1. 永久关闭1880端口

确保管理端口对外不可访问:

sudo ufw deny 1880/tcp
sudo ufw reload

2. 临时开放1880端口用于编辑

当需要修改Node-RED流时,执行以下命令临时放行:

sudo ufw allow 1880/tcp

编辑完成后,重新关闭端口:

sudo ufw deny 1880/tcp
sudo ufw reload

3. 允许1881端口的API访问

确保API端口对外可用:

sudo ufw allow 1881/tcp
sudo ufw reload

四、验证配置效果

  • 访问http://你的服务器IP:1881:可正常调用API服务
  • 访问http://你的服务器IP:1880:因ufw拦截或编辑器禁用,无法进入管理界面
  • 临时开放1880端口后,输入管理员密码可正常进入编辑器修改流

内容的提问来源于stack exchange,提问作者sosnus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:30:21