1.海豚MQTT-Mosquitto(1)
海豚MQTT-Mosquitto(1)
在决定使用MQTT协议后,海豚搭建MQTT服务器的陪源首要任务是选择MQTT Broker。虽然云平台提供了付费服务,码海但个人项目成本较高,豚脚因此个人用户可能会选择自建服务器,本官如之前双十一购买的海豚桌面精灵源码低配服务器,非常适合实验用途。陪源
在选择后台方案时,码海市场上MQTT Broker选项众多。豚脚早期,本官我曾参考过一些资料,海豚那时Mosquitto因其轻量级和C语言实现的陪源优点,是码海我的首选。然而,豚脚鉴于其更新不频繁且扩展功能有限,本官酷狗官网源码上一次搭建过程中遇到不少困难,这次我决定寻找更为现代化的解决方案,尽管它曾是我的起点。
安装和运行Mosquitto在Centos服务器上相对简单,只需要几个命令即可。为了保证安全性,我关闭了默认的x站下载源码匿名访问,通过创建adam用户并存储在/etc/mosquitto/clipasswd文件中,并设置了用户密码登录。接着,我修改了mosquitto.conf文件,强制客户端使用用户名和密码进行认证,并重启了服务。
接下来,源码 数据库我开始转向SSL加密,需要生成自签名的证书。通过一系列命令,我生成了cacert.pem, server.crt, 和server.key文件。然后,我修改了mosquitto.conf,将非加密端口绑定到本地,淘宝商品上传源码添加了SSL相关配置,并重启了服务。测试连接时,确保使用正确的域名和证书文件。
然而,仅此还不够,我需要对访问权限进行控制。这超出了Mosquitto的基本功能,需要借助第三方插件mosquitto-auth-plug来实现。但该插件已停止维护,且与我使用的mosquitto-1.6.版本存在兼容性问题。我下载了对应版本的源码和openssl,进行了编译,并对auth-plug.c文件进行了必要的修改。接着,我将mosquitto的动态库调整到正确位置,并在Makefile中添加了链接参数。
在配置mosquitto时,我删除了之前用到的密码文件,转而依赖数据库管理。我创建了数据库表,定义了新的权限规则,并利用mosquitto的np工具生成用户密码,将其写入数据库。至此,通过MySQL控制用户登录和权限的Mosquitto配置已完成。
最后,为了测试MQTT服务器的性能,我附带了一个压测工具。通过以上步骤,一个安全且可扩展的MQTT服务器已经搭建完毕,满足了对用户访问权限的控制需求。