MQTT伺服器連線不上的問題

hywing發表於2024-05-04

問題描述

環境:阿里雲伺服器Ubuntu 22.04.3 LTS,安裝mosquitto後,在虛擬機器端訂閱訊息出現報錯(以前用阿里雲Ubuntu20.04 LTS的伺服器裝上就能用),以下伺服器ip是我亂填的

mosquitto_sub -t /iotstuff -h 129.25.125.124 -p 1883

Error: Connection refused

解決辦法

雲伺服器ECS -> 安全組 -> 安全組詳情,看看有沒有新增1883埠為白名單,出方向入方向都要配置

image

檢視伺服器的埠占用情況

netstat -lnpt

發現moquitto偵聽的ip是127.0.0.1:1883,其中127.0.0.1代表的是本地的區域網ip,如果想要在公網訪問是不行的,開啟mosquitto.conf檔案,設定允許公網訪問

listener 1883

允許客戶端不需要使用者名稱和密碼進行訪問

allow_anonymous true

重啟mosquitto服務後發現虛擬機器訂閱訊息就能連上

service mosquitto restart

如果還是連不上,check一下系統防火牆狀態

ufw status 		# 檢視防火牆狀態
ufw add 1883 	# 新增1883埠到白名單

參考

mosquitto.conf man page | Eclipse Mosquitto

相關文章