連接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
排查思路
- 首先使用ping命令看下能否ping通服務端
- 查看服務端防火墻是否開放連接的端口號【重點】
- 保證客戶端連接服務端的IP地址以及端口號是否正確【請仔細看】
- 其次看下MQTT服務端的配置文件是否開放允許遠程連接等【重重點】
我報這個錯的原因是MQTT的配置文件沒有設置允許遠程連接導致的,如果你也是因為配置文件導致的Connection refused: connect錯誤,那么請往下看:
- 修改mosquitto.conf
沒有找到這個文件,你可以看下是否有一個mosquitto.conf.example文件,拷貝一個新的改成mosquitto.conf即可,如果兩個文件都沒有那就只能新建一個了,配置的話手動添加。

- 修改下面兩張圖中的位置接

設置允許所有ip連接

- 設置允許匿名連接,我本地開發(fā)設置的是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]
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
startJVM錯誤Unable to load native library: libjvm.so解決方法
這篇文章主要介紹了startJVM錯誤Unable to load native library: libjvm.so解決方法,需要的朋友可以參考下2014-07-07
@EnableWebMvc介紹和使用詳細demo(最新推薦)
@EnableWebMvc是SpringMVC的一個注解,用于啟用SpringMVC框架的基本功能,它通常用于需要自定義SpringMVC配置或禁用SpringBoot自動配置的場景,本文給大家介紹了@EnableWebMvc介紹和使用詳細demo,感興趣的朋友一起看看吧2025-01-01
IDEA中git使用實現(xiàn)文件修改后有顏色提示的設置
本文介紹了IntelliJ IDEA中SVN插件的可視化設置,說明默認只有修改文件有顏色提示,需手動設置File->setting->VersionControl圖示以顯示父目錄顏色;可可設置不同狀態(tài)下的高亮顏色,并可提供其他設置選項2026-04-04
解決Kibana報錯[security_exception] current license&nbs
ElasticSearch 5.1.1因安全許可證過期報錯,解決方法:官網(wǎng)申請新許可證,下載JSON文件并上傳至服務器,執(zhí)行代碼時切換root權限,配置host為服務器IP,端口9200,替換原license文件2025-07-07

