問題描述
環境:阿里雲伺服器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埠為白名單,出方向
和入方向
都要配置
檢視伺服器的埠占用情況
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