Ubuntu部署mqtt服务器

First Post:

Last Update:

安装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”