玩客雲搭建MQTT服務器
下載安裝
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
apt-get update
apt-cache search mosquitto
apt-get install -y mosquitto mosquitto-clients
常用命令
sudo service mosquitto status #查看運行狀態
sudo service mosquitto start #啟動服務
sudo service mosquitto stop #停止服務
修改配置文件
MQTT服務器安裝了之后,默認監聽localhost的1883端口,外網不能夠進行訪問。如果有需要可以修改配置文件。用戶的局部配置文件放在: /etc/mosquitto/conf.d/
目錄下,並且這個目錄下的所有以.conf
后綴的文件都將被mosquitto作為配置文件,在啟動時加載。
首先,我們將創建一個Mosquitto將用於驗證連接的密碼文件。使用mosquitto_passwd
來創建這個文件,請確保使用你喜歡的用戶名替換它:
sudo mosquitto_passwd -c /etc/mosquitto/passwd your-username #系統將提示您輸入兩次密碼。
在/etc/mosquitto/conf.d
目錄下,新建myconfig.conf
配置文件:
allow_anonymous false #不允許匿名訪問
password_file /etc/mosquitto/passwd #密碼文件位置
listener 1883 0.0.0.0 #監聽的端口和IP地址
重啟Mosquitto以獲取配置更改:
sudo systemctl restart mosquitto
檢查以確保服務再次運行:
sudo systemctl status mosquitto
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated)
Active: active (running) since Mon 2018-07-16 15:03:42 UTC; 2min 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 6683 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 6699 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 1152)
CGroup: /system.slice/mosquitto.service
└─6705 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
狀態應該是active (running)
。如果不是,請檢查配置文件並重新啟動。Mosquitto的日志文件中可能會提供更多信息:
sudo tail /var/log/mosquitto/mosquitto.log
測試MQTT
測試Mosquitto
我們在步驟1中安裝了一些命令行MQTT客戶端。我們可以在localhost監聽器上訂閱主題測試,如下所示:
mosquitto_sub -h localhost -t test -u "your-user" -P "your-password"
我們可以用mosquitto_pub
發布:
mosquitto_pub -h localhost -t test -m "hello world" -u "your-user" -P "your-password"