连接MQTT时报错Connection refused: connect及无权连接的解决过程

 更新时间:2026年05月29日 11:04:03   作者:程序员大龙虾  
MQTT连接错误解析,重点排查防火墙配置与mosquitto.conf设置,确保端口开放与远程连接权限配置正确

错误日志

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 

没有找到这个文件,你可以看下是否有一个mosquitto.conf.example文件,拷贝一个新的改成mosquitto.conf即可,如果两个文件都没有那就只能新建一个了,配置的话手动添加。

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

设置允许所有ip连接  

  • 设置允许匿名连接,我本地开发设置的是true,线上的设为false 
  • 配置了allow_anonymous false后就需要使用账户密码进行连接了

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

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]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • RestTemplate的URL请求示例

    RestTemplate的URL请求示例

    这篇文章主要为大家介绍了RestTemplate的URL请求示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Mybatis 入参类型方式全面详解

    Mybatis 入参类型方式全面详解

    这篇文章主要为大家介绍了Mybatis入参的类型方式全面示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 如何在Spring Boot项目中集成MQTT协议

    如何在Spring Boot项目中集成MQTT协议

    本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加Eclipse Paho依赖、配置连接参数、实现消息发布订阅、测试接口及注意事项,如唯一客户端ID、安全措施等,帮助开发者快速实现物联网通信,感兴趣的朋友一起看看吧
    2025-06-06
  • Mybatis Plus批处理操作的实现示例

    Mybatis Plus批处理操作的实现示例

    MyBatis Plus 提供了强大的批处理支持,可以帮助我们高效地处理大规模数据,本文主要介绍了Mybatis Plus批处理操作的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • JavaWeb 中的 Filter组件详解

    JavaWeb 中的 Filter组件详解

    本文详细介绍了JavaWeb中的Filter组件,包括其基本概念、工作原理、核心接口和类、配置方式以及常见应用示例,Filter可以实现请求预处理、响应后处理、链式处理等功能,通过配置文件或注解进行设置,适用于字符编码、身份认证、日志记录等多种场景,感兴趣的朋友一起学习吧
    2025-11-11
  • springmvc mybatis集成配置示例

    springmvc mybatis集成配置示例

    本文主要介绍springmvc+mybatis集成配置,这里提供了实例代码,和简单说明,有需要的小伙伴可以参考下
    2016-09-09
  • SpringBoot 支付渠道实现统一的支付服务示例

    SpringBoot 支付渠道实现统一的支付服务示例

    本文提出了一种基于工厂模式和策略模式的多渠道支付封装方案,该设计采用策略模式实现各支付渠道(微信、支付宝、银联)的统一接口,通过工厂模式动态创建支付策略,感兴趣的可以了解一下
    2026-03-03
  • GSON实现Java对象与JSON格式对象相互转换的完全教程

    GSON实现Java对象与JSON格式对象相互转换的完全教程

    GSON是Google编写并在在GitHub上开源的Java序列化与反序列化JSON的类库,今天我们就来总结一下使用GSON实现Java对象与JSON格式对象相互转换的完全教程
    2016-06-06
  • Netty分布式NioSocketChannel注册到selector方法解析

    Netty分布式NioSocketChannel注册到selector方法解析

    这篇文章主要为大家介绍了Netty分布式源码分析NioSocketChannel注册到selector方法的解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Java设计模式之中介者模式的实现方式

    Java设计模式之中介者模式的实现方式

    Java中介者模式是一种行为型设计模式,它通过一个中介者对象来协调多个对象之间的交互,降低对象之间的耦合度,提高系统的可维护性和可扩展性。本文将介绍该设计模式的原理、使用场景和实现方法
    2023-04-04

最新评论