VitaBox AD

2024年3月6日 星期三

[MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置

延續[MQTT]Mosquitto的簡介、安裝與連接測試文章,接著將繼續測試在內網的兩台機器是否也可以完成發佈和訂閱作業。

同一網段的兩台電腦測試:

假設兩台電腦的配置如下:

A電腦為發佈端兼broker角色,IP:192.168.0.101
B電腦為訂閱端,IP:192.168.0.102

a.請在A電腦的mosquitto.conf內,新增下列內容

#For remote access
listener 1883
allow_anonymous true

完成修改後,重新啟動mosquitto broker。

b.A電腦作為發佈端來發佈主題,並同時為中介端,接收來自發佈端和訂閱端的消息。

mosquitto_pub -h 192.168.0.101 -t sensor_1 -m “25.3C”

c.B電腦訂閱來自A電腦發佈的主題

mosquitto_sub -h 192.168.0.101 -t sensor_1

另外,mosquitto官網也有提供一個broker供使用者測試訂閱和發佈功能是否正常。


使用者/密碼權限設定

在mosquitto中,可利用建置一個user/password文件來做發佈者和訂閱者的管理,步驟如下:

a.在A電腦建置一個檔名為password_file的文件,並將username和password資訊放入該檔案中。

sudo touch password_file
sudo mosquitto_passwd -b password_file username password

b.在A電腦的mosquitto.conf文件中,請一併新增下列配置內容

#For authentication premission
password_file /etc/mosquitto/password_file

完成設置的password_file內容如下圖一,並重新啟動 mosquitto broker。

圖一 password_file 內容


c.A電腦為發佈端的指令如下

mosquitto_pub -h 192.168.0.101 -t sensor_1 -m“25.3C -u <username> -P <password>

d.B電腦為訂閱端的指令如下

mosquitto_sub -h 192.168.0.101 -t sensor_1 -u <username> -P <password>


關於權限設定,mosquitto提供Password, Acess Control List(ACL)和Pre-Shared Key(PSK)三種方式,對應的範例文件分別為pwfile.example, aclfile.example和pskfile.example,可在/usr/share/doc/mosquitto/examples中開啟檢閱。


 

沒有留言:

張貼留言