MQTT(消息队列遥测传输的首字母缩写词)是一种基于发布者/订阅者概念的轻量级通信协议。它代表了广泛用于物联网的经典客户端/服务器架构的替代方案。它通常用于地理跟踪车队、家庭自动化、环境传感器网络和公用事业规模的数据收集。
在 Ubuntu 20.04 LTS Focal Fossa 上安装 Mosquitto MQTT
步骤 1. 首先,通过apt
在终端中运行以下命令确保所有系统包都是最新的。
sudo apt update sudo apt upgrade sudo apt install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
步骤 2. 在 Ubuntu 20.04 上安装 Mosquitto MQTT。
首先,我们创建一个名为Moscow 的用户,用于执行MQTT 应用程序:
sudo adduser mosquitto sudo usermod -aG sudo mosquitto.
现在我们从官方页面下载MQTT安装包:
wget https://mosquitto.org/files/source/mosquitto-2.0.11.tar.gz tar zxvf mosquitto-2.0.11.tar.gz
接下来,进入目录并编译并在您的系统上安装 MQTT 服务器:
make sudo make install
步骤 3. 配置 Mosquitto MQTT。
现在是配置 MQTT 服务器的时候了。我们将创建一个名为 的用户,该用户是用于运行 Mosquitto 服务器的系统,该服务器将用于从客户端建立连接。在这一步中,我们将被提示创建一个新密码:mqtt-idroot
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-idroot
接下来,为 Mosquitto MQTT Server 创建一个配置文件:
nano /etc/mosquitto/mosquitto.conf
添加以下几行:
persistence true persistence_location /var/lib/mosquitto/ persistence_file mosquitto.db log_dest syslog log_dest stdout log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true allow_anonymous true password_file /etc/mosquitto/pwfile
保存并关闭,然后运行sudo ldconfig
命令行:
sudo ldconfig
步骤 4. 为 Mosquitto MQTT 创建 Systemd 服务文件。
现在systemd
通过创建一个新文件来创建一个 Mosquitto单元文件/etc/systemd/system/mosquitto.service:
nano /etc/systemd/system/mosquitto.service
添加以下行:
[Unit] Description=Insite MQTT Broker [Service] ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Restart=always [Install] WantedBy=multi-user.target
保存并关闭文件。然后,systemd
使用以下命令重新加载守护程序:
sudo systemctl start mosquitto.service sudo systemctl enable mosquitto.service
步骤 5. 测试 Mosquitto MQTT。
成功安装后,我们创建了在服务器控制台上运行的简单测试,其中有一个服务器和一个客户端来使用服务器服务:
在服务器上,我们将使用命令行创建一个主题:
mosquitto_sub -v -t 'chedelics/test' -u mqtt-idroot -P (your-password)
发送与服务器主题相同的消息。提交命令行:
mosquitto_pub -t 'chedelics/test' -u mqtt-idroot -P (your-password)
感谢您使用本教程在 Ubuntu 20.04 LTS Focal Fossa 系统上安装 Mosquitto MQTT。如需其他帮助或有用信息,我们建议您查看Mosquitto 官方网站。