• 解决连接MQTT时报的Connection refused: connect问题以及无权连接的问题


    目录

    ​编辑

    错误日志:

    排查思路: 

    总结


    错误日志:

    org.eclipse.paho.client.mqttv3.MqttException: 无法连接至服务器
        at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:80) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:724) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_333]
    Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_333]
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) ~[na:1.8.0_333]
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) ~[na:1.8.0_333]
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) ~[na:1.8.0_333]
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) ~[na:1.8.0_333]
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) ~[na:1.8.0_333]
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_333]
        at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_333]
        at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:74) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        ... 2 common frames omitted

    排查思路: 

    1. 首先使用ping命令看下能否ping通服务端
    2. 查看服务端防火墙是否开放连接的端口号【重点】
    3. 保证客户端连接服务端的IP地址以及端口号是否正确【请仔细看】 
    4. 其次看下MQTT服务端的配置文件是否开放允许远程连接等【重重点】

    我报这个错的原因是MQTT的配置文件没有设置允许远程连接导致的,如果你也是因为配置文件导致的Connection refused: connect错误,那么请往下看:

    • 修改mosquitto.conf 

    •  修改下面两张图中的位置接 

    设置允许所有ip连接  

    设置允许远程连接 

    假如你没有添加上面这个配置,那么会报下面这个错误:

    org.eclipse.paho.client.mqttv3.MqttSecurityException: 无权连接
        at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:28) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        at org.eclipse.paho.client.mqttv3.internal.ClientState.notifyReceivedAck(ClientState.java:1053) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:151) ~[org.eclipse.paho.client.mqttv3-1.2.5.jar:na]
        at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_333]

    总结

    只配置了listener 1883 0.0.0.0而不配置allow_anonymous true的话会报无权连接的问题!

    👍点赞,你的认可是我创作的动力 !
    🌟收藏,你的青睐是我努力的方向!
    ✏️评论,你的意见是我进步的财富!  

  • 相关阅读:
    离线方式安装高可用RKE2 (版本: v1.22.13+rke2r1)记录
    mysql缓存、log、存储引擎、b+数解答
    异构数据库
    Java实战项目之图书借阅管理系统【源码+课后指导】
    【【萌新的riscV的学习之关于risc指令集的学习使用总五】】
    网页禁止右键 禁止F12 JavaScript禁止F12 禁止右键菜单 包含 js、Jquery、Vue
    JavaScript计算两个时间相差多少个小时的封装函数
    LaaS LLM as a service
    Java中包装类的常用方法
    Android 获取某月所有的日期和星期
  • 原文地址:https://blog.csdn.net/qq_38238956/article/details/125892394