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

Mosquitto MQTT Websocket localhost可连但IP无法连接问题

Mosquitto 2.0.14 Websocket端口局域网无法连接故障修复

根因判断

从启动日志可以直接定位核心问题:

  • 1883端口的MQTT监听器启动时明确打印了绑定IPv4、IPv6套接字的日志,默认监听所有网卡地址
  • 9001端口的Websocket监听器启动日志仅提示打开端口,未指定绑定地址时,Windows平台下的Mosquitto 2.0.14默认只会绑定环回地址127.0.0.1,不会对外网卡暴露端口,这就是localhost能连、局域网IP连不上、telnet 9001端口不通的直接原因。之前手动追加绑定IP不生效,基本是配置语法写错或者系统防火墙拦截导致。

修复步骤

  1. 修正配置文件写法
    Mosquitto的listener配置语法为listener <端口号> [绑定地址],绑定地址必须和端口写在同一行,修改后的mosquitto.conf内容如下:
listener 1883 0.0.0.0
protocol mqtt

listener 9001 0.0.0.0
protocol websockets
allow_anonymous true

配置里的0.0.0.0代表监听本机所有IPv4网卡的对应端口,包含你的局域网IP 192.168.0.107

  1. 清理旧进程与放通防火墙
  • 打开任务管理器,结束所有正在运行的mosquitto.exe进程,避免旧进程加载旧配置占用端口
  • 打开Windows Defender防火墙高级设置,新建入站规则,允许TCP 1883、9001端口的入站连接,作用域勾选「专用网络」(局域网使用场景)即可
  • 以管理员身份打开命令提示符,进入Mosquitto安装目录,重新执行启动命令:mosquitto -v -c mosquitto.conf
  1. 验证修复效果
  • 查看新的启动日志,9001端口会出现和1883端口一致的Opening ipv4 listen socket on port 9001.日志,代表监听器已正确绑定到所有网卡
  • 本机执行telnet 192.168.0.107 9001,如果窗口跳转无报错,代表端口已经对外放通
  • 前端测试时建议开浏览器无痕模式,避免旧JS缓存导致host配置不生效,连接地址为ws://192.168.0.107:9001/mqtt,即可正常连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:54:29