mosquitto安装与用户认真配置

简介

MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的平台还需要付费。另一方法是自己使用开源的MQTT组件来搭建。

MQTT服务器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。

这里介绍的是用轻量级的mosquitto开源项目来搭建一个属于自己的MQTT服务器。

mosquittto一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。

安装

windows上安装

mosquitto官网地址:https://mosquitto.org/;进入下载地址:https://mosquitto.org/download/,根据操作选择合适的版本

我这里选择window 64位的,所以选择的是windows 64位的,下载到本地,直接双击安装即可。如果提示缺文件,根据提示去下载相关文件即可。

安装之后的目录结构:

直接双击mosquitto.exe即可运行;也可以在cmd窗口上输入mosquitto.exe -c mosquitto.conf 启动;

linux下安装

在usr/local/创建一个文件夹mosquitto

到mosquitto官网下载对应linux版本的压缩包

也可以使用wget直接下载到linux服务器上。

然后进行解压:

 cd mosquitto-1.6.5 进入解压后的目录,然后执行make 和make install;

如果出现这个错误,则需要安装一下openssl和libssl-devel

安装openssl-dev

ubuntu系统执行以下命令:
sudo apt-get install openssl
sudo apt-get install libssl-dev

centos系统执行以下命令:

sudo yum install openssl

sudo yum install openssl-devel

安装完再执行make:

出现这个错误,表示没有g++,需要安装: yum install gcc-c++

然后再make,然后再make install;安装完毕

mosqiutto的其他二进制文件安装在
/usr/local/bin下面,
mosquitto_passwd mosquitto_pub mosquitto_sub

安装后,我们把mosquitto.conf拷贝到/etc/mosquitto/下面。

修改mosquitto.conf中的user。修改为root 

启动:mosquitto -c /etc/mosquitto/mosquitto.conf,即可启动。

用户和密码配置

1.用户参数说明

Mosquitto服务器的配置文件为/etc/mosquitto/mosquitto.conf,关于用户认证的方式和读取的配置都在这个文件中进行配置。

allow_anonymous允许匿名

password_file密码文件

acl_file访问控制列表

参数组合表
IDallow_anonymouspassword_fileacl_fileresult
1true  允许匿名方式登录
2false

password_file

pwfile.example

 开启用户验证机制
3false

password_file

pwfile.example

acl_file

aclfile.example

开启用户验证机制,但访问控制不起作用
4true

password_file

pwfile.example

acl_file

aclfile.example

用户名即密码不为空,讲自动进行用户验证且受到访问控制的限制;用户名和密码为,将不进行用户验证且受到访问控制的限制
5false  无法启动服务器

不允许匿名:

allow_anonymoous false

配置用户密码文件

password_file /etc/mosquitto/pwfile

配置topic和用户

acl_file /etc/mosquitto/acl

2.添加用户信息

添加用户 admin

#mosquitto_passwd -c /etc/mosquitto/pwfile admin

3.添加topic和用户的关系

找到要的topic ---‘a/b’

#topic a/b

在下面添加

user admin
topic write mtopic/#

找到#This affects all clients

user admin
topic read mtopic/#

4.用户认证测试

重启Mosquitto。

订阅端启动:

#mosquitto_sub -h 192.168.1.112 -t mtopic -u admin -P admin

发布者客户端启动:

#mosquitto_pub -h 192.168.1.100 -t mtopic -u admin -P 123456 -m "test"

 

 

 

 

 


版权声明:本文为lujiangui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。