連接MQTT時(shí)報(bào)錯(cuò)Connection refused: connect及無(wú)權(quán)連接的解決過(guò)程
錯(cuò)誤日志
org.eclipse.paho.client.mqttv3.MqttException: 無(wú)法連接至服務(wù)器
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通服務(wù)端
- 查看服務(wù)端防火墻是否開放連接的端口號(hào)【重點(diǎn)】
- 保證客戶端連接服務(wù)端的IP地址以及端口號(hào)是否正確【請(qǐng)仔細(xì)看】
- 其次看下MQTT服務(wù)端的配置文件是否開放允許遠(yuǎn)程連接等【重重點(diǎn)】
我報(bào)這個(gè)錯(cuò)的原因是MQTT的配置文件沒(méi)有設(shè)置允許遠(yuǎn)程連接導(dǎo)致的,如果你也是因?yàn)榕渲梦募?dǎo)致的Connection refused: connect錯(cuò)誤,那么請(qǐng)往下看:
- 修改mosquitto.conf
沒(méi)有找到這個(gè)文件,你可以看下是否有一個(gè)mosquitto.conf.example文件,拷貝一個(gè)新的改成mosquitto.conf即可,如果兩個(gè)文件都沒(méi)有那就只能新建一個(gè)了,配置的話手動(dòng)添加。

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

設(shè)置允許所有ip連接

- 設(shè)置允許匿名連接,我本地開發(fā)設(shè)置的是true,線上的設(shè)為false
- 配置了allow_anonymous false后就需要使用賬戶密碼進(jìn)行連接了
假如你沒(méi)有添加上面這個(gè)配置,那么會(huì)報(bào)下面這個(gè)錯(cuò)誤:
org.eclipse.paho.client.mqttv3.MqttSecurityException: 無(wú)權(quán)連接
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]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java游戲開發(fā)之俄羅斯方塊的實(shí)現(xiàn)
俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類視頻游戲。本文和大家分享了利用Java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典的小游戲的示例代碼,需要的可以參考一下2022-05-05
startJVM錯(cuò)誤Unable to load native library: libjvm.so解決方法
這篇文章主要介紹了startJVM錯(cuò)誤Unable to load native library: libjvm.so解決方法,需要的朋友可以參考下2014-07-07
@EnableWebMvc介紹和使用詳細(xì)demo(最新推薦)
@EnableWebMvc是SpringMVC的一個(gè)注解,用于啟用SpringMVC框架的基本功能,它通常用于需要自定義SpringMVC配置或禁用SpringBoot自動(dòng)配置的場(chǎng)景,本文給大家介紹了@EnableWebMvc介紹和使用詳細(xì)demo,感興趣的朋友一起看看吧2025-01-01
Spring Boot超詳細(xì)講解請(qǐng)求處理流程機(jī)制
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開發(fā)的腳手架,本篇讓我們一起分析請(qǐng)求處理流程機(jī)制2022-07-07
IDEA中g(shù)it使用實(shí)現(xiàn)文件修改后有顏色提示的設(shè)置
本文介紹了IntelliJ IDEA中SVN插件的可視化設(shè)置,說(shuō)明默認(rèn)只有修改文件有顏色提示,需手動(dòng)設(shè)置File->setting->VersionControl圖示以顯示父目錄顏色;可可設(shè)置不同狀態(tài)下的高亮顏色,并可提供其他設(shè)置選項(xiàng)2026-04-04
Java TCP網(wǎng)絡(luò)通信協(xié)議詳細(xì)講解
TCP/IP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它會(huì)保證數(shù)據(jù)不丟包、不亂序。TCP全名是Transmission?Control?Protocol,它是位于網(wǎng)絡(luò)OSI模型中的第四層2022-09-09
解決Kibana報(bào)錯(cuò)[security_exception] current license&nbs
ElasticSearch 5.1.1因安全許可證過(guò)期報(bào)錯(cuò),解決方法:官網(wǎng)申請(qǐng)新許可證,下載JSON文件并上傳至服務(wù)器,執(zhí)行代碼時(shí)切換root權(quán)限,配置host為服務(wù)器IP,端口9200,替換原license文件2025-07-07

