0%

MQTT代理之Mosquitto-centos环境下搭建

Mosquitto是一个实现了MQTT协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。本文主要介绍如何在centos7上安装Mosquitto,其他解决方案我们再另外讲解

获取&安装

在Linux系统上安装Mosquitto,建议大家使用源码安装,最新的源码可从 http://mosquitto.org/files/source/ 地址中获取。这里我使用的是1.6.9版本,首先我们使用下面的命令下载源码包

1
wget https://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz

使用解压缩命令,解压源码
1
tar -xvzf mosquitto-1.6.9.tar.gz

进入源码目录
1
cd mosquitto-1.6.9

执行编译命令
1
make

编译过程中可能会遇到一些错误,一般是缺少openssl库或者其他库导致的,自行百度安装重新编译即可

执行安装命令

1
make install

安装完成后,我们执行
1
mosquitto

测试一下,一切正常情况下会输出
1
2
3
4
1614180185: mosquitto version 1.6.9 starting
1614180185: Using default config.
1614180185: Opening ipv4 listen socket on port 1883.
1614180185: Opening ipv6 listen socket on port 1883.

设置用户名和密码

找到mosquitto系统目录,默认安装后在/etc/mosquitto

1: 打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为true

修改前:

1
#allow_anonymous

修改后:
1
allow_anonymous false

2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)

修改前:

1
#password_file

修改后:
1
password_file /etc/mosquitto/pwfile.example

3: 创建用户名和密码、打开命令窗口 键入如下命令:
1
mosquitto_passwd -c /etc/mosquitto/pwfile.example admin

提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。

4: 创建mosquitto用户。在命令窗口键入如下命令:

1
mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto

同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。

至此两个用户创建成功,此时如果查看 pwfile.example 文件会发现其中多了两个用户。

1
mosquitto -v -c mosquitto.conf

结语

到此最简单的MQTT Broker就搭建好了,我们可以使用一些测试工具进行连接测试了,也可以使用ESP8266模块进行远程控制测试一下,智能家居的桥梁已经搭建好了,接下来我们会讲解如何将ESP8266或者其他网络设备接入到我们的Broker,使用Homeassistant进行控制