如何在Ubuntu 16.04上设置MoSquitto MQTT服务器
MoSquitto MQTT服务器是一名邮件经纪,它适用于MQTT协议。
MQTT是轻量化消息传递协议,它是用于TCP/IP协议顶部的ISO标准。
它主要用于与设备互联网通信。
我们将在Ubuntu 16.04服务器上安装Mosquitto,我们将从MQTT-SPY软件发送消息。
Mosquitto是一个Eclipse项目,它是在EDL许可证下分发的。
所以让我们开始。
从源代码编译Mosquitto MQTT服务器
要安装MoSquitto,我们需要执行以下步骤。
第一个更新来源lis并获得依赖项
apt update apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
添加Mosquitto用户,因为默认情况下,它运行为非根。
adduser mosquitto
为方便起见,我们将为此用户提供SUDO权限,因为我们将根据此用户执行其余的安装过程
usermod -aG sudo mosquitto
然后我们将作为本用户和CD登录到他的家中
su mosquitto cd
接下来我们将下载Mosquitto源代码,最新版本在写作时为1.4.9,但我建议我们查看下载页面查看是否有新版本。
所以,让我们下载最新版本
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
让我们解开它和CD进入目录
tar xvzf mosquitto-1.4.9.tar.gz cd mosquitto-1.4.9/
然后我们编译并安装软件
make && sudo make install
配置MoSquitto MQTT服务器
安装完成后,我们需要为新用户进行密码。
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
系统将提示我们为新的MQTT-SPY用户进行密码,我们将用于连接客户端。
这与蚊子用户不同,这是用于运行MoSquitto服务器的系统用户。
我们需要将此Mosquitto用户添加到所有相关目录的权限
sudo mkdir /var/lib/mosquitto/ sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
我们接下来需要为Mosquitto MQTT服务器制作配置文件,因此让我们使用nano制作新文件
sudo 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 false password_file /etc/mosquitto/pwfile
Config似乎很长,但我们添加了更详细的日志和密码文件。
保存配置后,我们运行ldconfig
sudo ldconfig
让我们添加系统文件
sudo 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
让我们开始服务
sudo systemctl start mosquitto.service
并检查其状态
systemctl status mosquitto.service
要使启动启动执行此命令
sudo systemctl enable mosquitto.service
设置mqtt-spy和connectiong
MQTT-SPY是基于Java的客户端,我们将用于连接到MQTT服务器。
我们可以从GitHub中获取它,但请注意,我们必须安装Oracle JDK。
它不适用于OpenJDK。
盯着MQTT-SPY后,首先要做的是创造新的连接。
我们添加了服务器IP和默认端口1883.
然后,我们添加了我们之前制作的密码和用户名,在我的情况下,它是mqtt-spy和密码是密码。
然后我们可以在服务器上打开终端窗口并键入以下命令
mosquitto_sub -v -t 'theitroad/topic' -u mqtt-spy -P password
要解释标志,-V是用于详细的,--T是主题后跟主题引号,-U为用户和-p是密码。