【问题标题】:Unable to connect from outside the Mosquitto docker无法从 Mosquitto docker 外部连接
【发布时间】:2021-02-10 19:08:55
【问题描述】:

我正在以 docker 身份运行 Mosquitto 2.0.7。

如果我尝试在 docker 中使用 mosquitto_sub,我可以做到。如果我在另一台机器上尝试它,我会被拒绝连接。

docker 正在运行暴露端口 1883 和 9001。docker 正在主机网络上运行。 docker 日志上没有错误。

谢谢

【问题讨论】:

  • 请附上您的mosquitto.conf;我猜问题是您没有定义listenerMosquitto V2 绑定到环回接口,127.0.0.1 和/或::1,当没有配置侦听器时,这意味着它无法从外部访问在默认配置中)。请参阅this answer 了解更多信息。
  • 还包括您如何启动容器的详细信息
  • 需要容器的启动配置才能回答。例如docker 运行选项或 docker-compose.yml

标签: docker mqtt mosquitto


【解决方案1】:

我有同样的问题。 在 ./services/mosquitto/mosquitto.conf 中尝试以下更改: 在您的配置文件中添加、替换或验证以下行:

allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

然后重启你的容器 mosquitto。

【讨论】:

    【解决方案2】:

    我的 Mosquitto Docker 容器配置了 port 1883,这似乎将其绑定到 0.0.0.0,从而允许从容器外部进行访问。确保您还在启动命令中公开了端口:

    docker run -d --name="mosquitto" -p 1883:1883 prologic/mosquitto
    

    【讨论】:

    • prologic/mosquitto 好像是基于crux linux的;我将它安装在我的机器上并使用 Mosquitto 1.3.1,因此与问题(指定版本)并不真正相关。请注意,1.3.1 于 2014 年发布,因此您可能需要考虑迁移到 eclipse-mosquitto 映像。
    【解决方案3】:

    似乎在某个时候,配置文件的位置发生了变化。

    只要 network_mode 设置为“主机”并且配置文件被复制到容器中的正确文件夹中,那么从 2.0.14 开始,以下 yml/configs 应该可以正常工作:

    docker-compose.yml

    version: "3"
    services:
      mosquitto:
        image: eclipse-mosquitto:latest
        container_name: mosquitto
        network_mode: "host"
        volumes:
          - ./conf:/mosquitto/config
          - ./data:/mosquitto/data
          - ./log:/mosquitto/log
    

    conf/mosquitto.conf

    persistence true
    persistence_location /mosquitto/data/
    log_dest file /mosquitto/log/mosquitto.log
    listener 1883 0.0.0.0
    
    ## Authentication ##
    allow_anonymous true
    #password_file /mosquitto/conf/mosquitto.conf
    

    发出普通的sudo docker-compose up -d 应该可以工作,暴露主机网络上的端口。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 2020-06-12
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      相关资源
      最近更新 更多