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

ESP8266连接Windows及Ubuntu下Mosquitto broker失败求助

根因定位

MQTT返回rc=-2代表TCP连接建立失败,客户端无法访问指定的broker IP与端口,与MQTT层的认证、权限配置无关。

优先采用Ubuntu虚拟机解决方案(成功率更高)
  • 调整Mosquitto默认监听配置
    Mosquitto 2.0+默认仅绑定127.0.0.1本地回环地址,需手动修改/etc/mosquitto/mosquitto.conf,文末追加两行配置:
    listener 1883 0.0.0.0
    allow_anonymous true
    
    执行sudo systemctl restart mosquitto重启服务生效。
  • 修正VMware网络模式
    将虚拟机网络适配器从默认NAT模式切换为桥接模式,勾选「复制物理网络连接状态」,重启虚拟机后确认虚拟机IP与ESP8266连接的WiFi处于同一网段。
  • 放行Ubuntu端口
    临时关闭防火墙验证:sudo ufw disable,或永久放行1883端口:sudo ufw allow 1883/tcp。
  • 验证监听状态
    执行ss -tulnp | grep 1883,确认输出存在0.0.0.0:1883监听记录,而非仅127.0.0.1:1883。
  • 跨设备连通性测试
    用同一WiFi下的其他设备执行telnet <虚拟机IP> 1883,无报错则说明端口可正常访问,再更新ESP8266代码中的broker IP为桥接后的虚拟机IP即可。
Windows环境备选方案
  • 编辑Mosquitto安装目录下的mosquitto.conf,同样追加listener 1883 0.0.0.0与allow_anonymous true配置。
  • 直接双击mosquitto.exe前台启动broker(避免后台服务权限异常),临时关闭Windows Defender防火墙后测试,确认Windows主机IP与ESP8266同属一个WiFi网段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 07:06:02