安装mosquitto
1 2
| sudo apt update sudo apt install mosquitto mosquitto-clients
|
启动服务
1 2
| sudo systemctl start mosquitto sudo systemctl status mosquitto
|
如果服务正常运行,应该看到类似这样的输出:
1 2 3 4 5 6 7 8 9 10 11 12
| ● mosquitto.service - Mosquitto MQTT Broker Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-03-13 10:05:25 UTC; 1min 30s ago Docs: man:mosquitto.conf(5) man:mosquitto(8) Main PID: 1234 (mosquitto) Tasks: 1 (limit: 4915) CGroup: /system.slice/mosquitto.service └─1234 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Mar 13 10:05:25 ubuntu systemd[1]: Starting Mosquitto MQTT Broker... Mar 13 10:05:25 ubuntu systemd[1]: Started Mosquitto MQTT Broker.
|
创建用户和密码
1
| sudo mosquitto_passwd -c /etc/mosquitto/passwd <username>
|
其中<username>
是您想要创建的用户名。输入命令后会被要求输入和确认密码。这样会在/etc/mosquitto/passwd
文件中创建一个新的用户和密码。
启用密码验证
1
| sudo vim /etc/mosquitto/conf.d/default.conf
|
添加以下内容:
1 2 3 4
| allow_anonymous false password_file /etc/mosquitto/passwd
listener 8883
|
重启服务并测试
1 2
| sudo systemctl restart mosquitto mosquitto_sub -h localhost -t test -u <username> -P <password> -p 8883
|
其中<username>
和<password>
是之前创建的用户和密码。这样就订阅了一个名为test的主题,并等待接收消息。
在另一个终端中用以下命令来发布一条消息到test主题:
1
| mosquitto_pub -h localhost -t test -m "hello world" -u <username> -P <password> -p 8883
|
然后可以在订阅端看到消息“hello world”