mosquitto安装与配置以及mosquitto-auth-plug安装、配置及要点记录

本文介绍了Mosquitto MQTT服务器的源码安装过程,并详细记录了配置步骤,特别是解决了使用mosquitto-auth-plug插件进行用户认证时遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mosquitto安装与配置以及mosquitto-auth-plug安装、配置及要点记录
 
  • 发表于 3个月前 
  • 阅读 101 
  • 收藏 0 
  • 点赞 0 
  • 评论 0

    这两天研究一下MQTT协议,玩玩物联网的东西,然后发现mosquitto是个比较著名的服务器端,所以下下来,然后配置玩了几下,过程中也遇到一些问题,这里记录一下。

首先进行安装,这里采用源码安装的方式,非常简单

1. 从git复制代码到服务器上

git clone https://github.com/eclipse/mosquitto

2. 修改 config.mk

通过vi找到WITH_SRV 这个然后配置成no,这个目前不晓得干啥子用,但是这个选择YES mosquitto-auth-plug 会有问题,plug编译完成的so配置到配置文件调用会报 undefined symbol ares_library_init 错误,查看了一些资料说是缺少一个库,但是通过yum方式安装,然后依旧报错,所以,这里直接关掉方便一点。

3.然后make & make install 就安装完毕了

接下来要解决一些用户认证的问题

mosquitto提供了一种 username/password的方式管理客户端,但是这个默认是通过文件管理用户名密码,而且文件修改还得重启服务器不是很智能,万幸,mosquitto也考虑到这一点,提供了鉴权的口给外部,只要按照定义实现就可以调用自己想要的鉴权方式,这个git上有个一mosquitto-auth-plug 很成熟就决定用这个。支持非常多的数据库比如 MySQL Redis 还有很多可以去git上查看,https://github.com/jpmens/mosquitto-auth-plug。

mosquitto-auth-plug 的安装比mosquitto麻烦一点首先看官网安装一下依赖

安装完依赖以后就是对config.mk进行修改,默认config.mk是空的,但是目录下提供了一个模板 config.mk.in 可以把内容复制进去,然后编辑

首先看到有如下的一句话,这个是配置所需要支持的存储类型

# Select your backends from this list
BACKEND_CDB ?= no
BACKEND_MYSQL ?= yes
BACKEND_SQLITE ?= no
BACKEND_REDIS ?= no
BACKEND_POSTGRES ?= no
BACKEND_LDAP ?= no
BACKEND_HTTP ?= no
BACKEND_JWT ?= no
BACKEND_MONGO ?= no
BACKEND_FILES ?= no
BACKEND_MEMCACHED ?= no

我这里选择的是经典的MySQL方式,

下来就是指定mosquitto源码位置,配置文件默认给的例子提供的是mac路径

# Specify the path to the Mosquitto sources here
# MOSQUITTO_SRC = /usr/local/Cellar/mosquitto/1.4.12
MOSQUITTO_SRC = /home/mosquitto/mosquitto

下来指定openSSL的可执行文件所在目路

# Specify the path the OpenSSL here
OPENSSLDIR = /usr/bin

下来的部分就是指定一些库和头文件所在的位置,基本上按照注释说明的来就行了,下面是我的例子

# Specify optional/additional linker/compiler flags here
# On macOS, add
#       CFG_LDFLAGS = -undefined dynamic_lookup
# as described in https://github.com/eclipse/mosquitto/issues/244
#
# CFG_LDFLAGS = -undefined dynamic_lookup  -L/usr/local/Cellar/openssl/1.0.2l/lib
# CFG_CFLAGS = -I/usr/local/Cellar/openssl/1.0.2l/include -I/usr/local/Cellar/mosquitto/1.4.12/include
CFG_LDFLAGS = -L/usr/lib64/openssl/engines/
CFG_CFLAGS = -I/usr/include/openssl/ -I/home/mosquitto_makefile/mosquitto/lib

配置完成后执行make指令,然后就会有一个 auth-plug.so的文件在目录下生成了,接下来按照 plug的官网给出的配置说明进行配置就好了,这里特别说明一下,官网底下password给出的示例的加密结果是错的,害我浪费了非常多的时间。。。,数据库存储的密码加密方式是 PBKDF2WithHmacSHA256 这里的SHA可以自己指定。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值