Windows 10下Node-RED无法连接MQTT Broker问题求助
问题分析与解决方案
从你的日志和操作描述来看,核心问题是本地没有运行MQTT Broker服务——Node-RED的MQTT输入/输出节点仅作为客户端存在,本身不提供Broker功能,必须依赖一个独立运行的MQTT Broker才能建立连接。
解决步骤
1. 安装并启动本地MQTT Broker
推荐使用Eclipse Mosquitto(轻量且广泛使用的开源MQTT Broker):
- 下载Windows版本安装包完成安装
- 按下
Win+R输入services.msc打开服务管理器,找到Mosquitto Broker服务,确保它处于正在运行状态(未启动则右键选择启动) - 验证Broker可用性:打开两个命令提示符窗口,第一个输入
mosquitto_sub -t test_topic,第二个输入mosquitto_pub -t test_topic -m "hello",若第一个窗口收到消息,说明Broker运行正常
2. 正确配置Node-RED的MQTT节点
- 本地测试时,服务器地址填写
localhost或127.0.0.1,端口保持默认的1883 - 若要让ESP8266连接PC上的Broker,需额外配置:
- Node-RED的MQTT Broker节点服务器地址填写PC的局域网IP(如你日志中的
192.168.2.60) - 修改Mosquitto配置文件(默认路径
C:\Program Files\Mosquitto\mosquitto.conf):注释掉bind_address 127.0.0.1一行,保存后重启Mosquitto服务,允许外部设备(ESP8266)接入
- Node-RED的MQTT Broker节点服务器地址填写PC的局域网IP(如你日志中的
3. 排除其他常见问题
- 禁止使用
location.host作为服务器地址:这是浏览器端JavaScript变量,Node-RED环境不识别,该配置必然失败 - 检查端口占用:打开命令提示符输入
netstat -ano | findstr :1883,若1883端口被其他进程占用,可结束该进程,或修改Mosquitto配置(在mosquitto.conf中添加port 1884),同时同步修改Node-RED的MQTT节点端口 - 确认防火墙规则:即便关闭防火墙,也可手动检查是否允许Mosquitto通过防火墙(安装时通常会自动添加规则,若缺失,可在Windows防火墙高级设置中添加允许1883端口的入站规则)
内容的提问来源于stack exchange,提问作者johnsmith
相关产品推荐
相关产品推荐

