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

Ubuntu22.04下Mosquitto2.0.11配置双协议监听器遇端口占用问题

问题原因及解决方法

问题根源

你的Mosquitto配置里包含了include_dir /etc/mosquitto/conf.d,而Ubuntu系统默认安装Mosquitto后,这个目录下会自带一个默认配置文件(通常名为defaults.conf),里面已经配置了listener 1883。加上你自己在主配置文件里又写了一遍listener 1883,导致程序启动时尝试两次监听1883端口,触发了"Address already in use"错误。

解决步骤

  1. 先确认conf.d目录下的重复配置:

    ls /etc/mosquitto/conf.d
    cat /etc/mosquitto/conf.d/defaults.conf
    

    你会看到里面存在和主配置重复的listener 1883设置。

  2. 任选一种方式解决:

    • 方式一:保留主配置,移除默认重复项
      把conf.d目录下的默认配置文件重命名或删除:
      sudo mv /etc/mosquitto/conf.d/defaults.conf /etc/mosquitto/conf.d/defaults.conf.bak
      
    • 方式二:保留默认配置,修改主配置
      删除主配置文件里自行添加的listener 1883相关配置块,WebSocket的配置可以留在主文件中,或者移到conf.d目录下的新文件里,只要确保1883端口只被配置一次即可。
  3. 验证修复效果
    重新启动Mosquitto:

    mosquitto -c /etc/mosquitto/mosquitto.conf -v
    

    查看日志,此时应该不会再出现端口占用错误,同时1883(MQTT协议)和8080(WebSocket协议)端口都能正常监听。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:08:11