:::warning
快速搭建个人MQTT服务器(基于EMQX) - 小文の知识窝
如何找回宝塔面板登录地址、账号和密码宝塔面板地址辰风沐阳的博客-CSDN博客
【4分钟快速搭建个人MQTT服务器(基于EMQX)】 https://www.bilibili.com/video/BV1aT4y167cL/?share_source=copy_web&vd_source=6a1aeb7290ab140ab78e422be78d3a12 :::
简述
相信看到这篇教程的人应该对MQTT协议有了一定的了解。其实提供MQTT服务的厂商也有很多,比较知名的有EMQX等。EMQX虽然提供了免费的公共MQTT5服务器。
但是对于多个用户利用公共服务器同时订阅或发布同一主题内容时,可能会接收到其他设备发布但是我们并不想接收的消息或者我们不希望其他用户得到自己设备发布的消息。
下面教大家如何利用已有服务器(教程以阿里云ECS为例,系统为Ubuntu20.04 64位)搭建一个个人的基于EMQX的MQTT服务器(EMQX官方文档)。
服务器配置
EMQX端口配置
端口号 | 服务 |
---|---|
1883 | MQTT TCP 端口 |
8883 | MQTT TCP/ssl 端口 |
8083 | MQTT Websocket/ws 端口 |
8084 | MQTT Websocket/wss 端口 |
8081 | HTTP API端口 |
18083 | DashBoard 控制台端口 |
根据需求,在服务器安全组打开对应端口:
如果服务器安装了宝塔面板也需要在宝塔面板的【安全】页面开启端口:
如何找回宝塔面板登录地址、账号和密码宝塔面板地址辰风沐阳的博客-CSDN博客
安装
2022-07-08安装命令更新为5.0.3版本,帖子中的命令不一定为最新版本的安装命令,版本可能被舍弃,建议大家可以关注emqx官方获取最新版本的安装命令
远程连接服务器,输入命令:
根据自己服务器系统或emqx需求版本的不同,参照emqx官方的emqx版本选择进行版本选择安装(Ubuntu20.04 64位可以直接跟着本文操作)
下载 deb包
wget https://www.emqx.com/zh/downloads/broker/5.0.3/emqx-5.0.3-ubuntu20.04-amd64.deb
安装
sudo apt install ./emqx-5.0.3-ubuntu20.04-amd64.deb
启动emqx
sudo emqx start
此时直接访问ip:18083即可进入Dashboard登录界面(注意上面说的端口都要打开)
初始用户密码为Username:admin
Password:public
尝试使用MQTTX访问服务器:MQTTX下载EMQX: 大规模分布式物联网 MQTT 消息服务器
连接成功:
1883端口连接成功! 发布、订阅同一主题: 可以看到发布与订阅功能均能够使用。
1883端口能够实现TCP通信,至此,一个MQTT服务器已搭建完成。
关于8083、8084端口
但此时我们的8084端口其实是无法连接的,是因为我们没有给emqx配置ssl证书。
因为涉及到域名绑定问题,择日会更新关于连接emqx的ws、wss服务端口(8083、8084)的教程。因为如果使用小程序连接mqtt服务器的话,服务器必须支持wss协议通信。
可以持续关注博客或关注博主b站动态:到底文不文SAMA获取最新消息。
EMQX基本命令
命令 | 含义 |
---|---|
emqx start | 后台启动 EMQX Broker |
emqx stop | 关闭 EMQX Broker |
emqx restart | 重启 EMQX Broker |
emqx console | 使用控制台启动 EMQX Broker |
emqx foreground | 使用控制台启动 EMQX Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令 |
emqx ping | Ping EMQX Broker |
EMQX配置文件
在/etc/emqx目录下
配置文件 | 说明 |
---|---|
emqx.conf | EMQX 配置文件 |
acl.conf | EMQX 默认 ACL 规则配置文件 |
plugins/*.conf | EMQX 各类插件配置文件 |
certs | EMQX SSL 证书文件 |
其他命令
# 卸载emqx
sudo apt-get remove emqx