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

eclipse-mosquitto v2.0.12启动报Address in use无法发送MQTT消息问题

问题原因分析

该问题与配置文件权限无关,你已经确认配置文件权限为644、属主属组为mosquitto:mosquitto,权限侧无异常。
核心原因是eclipse-mosquitto 2.x版本加载配置的逻辑与1.6.x存在差异,当前你的服务加载了内置默认配置,自定义配置完全未生效,对应日志中的Using default config提示。
默认配置会引发两个直接异常:

  • 2.x版本默认开启本地仅监听模式,仅绑定容器内部127.0.0.1的1883端口,不允许外部客户端连接
  • 内置默认配置已经占用容器内的1883端口,自定义配置中的全局监听规则无法绑定,对应日志中的Address in use报错
解决步骤
  1. 停止并删除现有异常容器
docker stop mosquitto && docker rm mosquitto
  1. 检查宿主机1883端口是否被其他进程占用,如有则先终止对应进程
ss -tulpn | grep 1883
  1. 修改容器启动命令,显式指定加载自定义配置文件,同时建议将日志存储和数据存储分开挂载,避免文件混杂:
docker run -itd \
--name="mosquitto" \
--restart always \
-p 1883:1883 \
-v /home/pi/.docker/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v mosquitto_data:/mosquitto/data \
-v mosquitto_log:/mosquitto/log \
eclipse-mosquitto \
mosquitto -c /mosquitto/config/mosquitto.conf
验证

容器启动后查看服务日志,将不再出现Using default config和Starting in local only mode提示。如果仍有加载默认配置的提示,可检查自定义配置文件是否存在语法错误、不可见字符或编码异常。调整完成后执行mosquitto_pub发布消息测试即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:39:03