:::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 控制台端口


根据需求,在服务器安全组打开对应端口:
快速搭建个人MQTT服务器(基于EMQX) - 图1
如果服务器安装了宝塔面板也需要在宝塔面板的【安全】页面开启端口:
如何找回宝塔面板登录地址、账号和密码宝塔面板地址辰风沐阳的博客-CSDN博客
快速搭建个人MQTT服务器(基于EMQX) - 图2

安装

2022-07-08安装命令更新为5.0.3版本,帖子中的命令不一定为最新版本的安装命令,版本可能被舍弃,建议大家可以关注emqx官方获取最新版本的安装命令

远程连接服务器,输入命令:
根据自己服务器系统或emqx需求版本的不同,参照emqx官方的emqx版本选择进行版本选择安装(Ubuntu20.04 64位可以直接跟着本文操作)

  1. 下载 deb包

    1. wget https://www.emqx.com/zh/downloads/broker/5.0.3/emqx-5.0.3-ubuntu20.04-amd64.deb

    快速搭建个人MQTT服务器(基于EMQX) - 图3

  2. 安装

    1. sudo apt install ./emqx-5.0.3-ubuntu20.04-amd64.deb
  3. 启动emqx

    1. sudo emqx start

    此时直接访问ip:18083即可进入Dashboard登录界面(注意上面说的端口都要打开
    快速搭建个人MQTT服务器(基于EMQX) - 图4
    初始用户密码为

    1. Usernameadmin
    2. Passwordpublic

    快速搭建个人MQTT服务器(基于EMQX) - 图5
    尝试使用MQTTX访问服务器:

    MQTTX下载EMQX: 大规模分布式物联网 MQTT 消息服务器

image.png
连接成功:

1883端口连接成功! 发布、订阅同一主题: 可以看到发布与订阅功能均能够使用。

image.png
1883端口能够实现TCP通信,至此,一个MQTT服务器已搭建完成。

关于8083、8084端口

但此时我们的8084端口其实是无法连接的,是因为我们没有给emqx配置ssl证书。
快速搭建个人MQTT服务器(基于EMQX) - 图8
因为涉及到域名绑定问题,择日会更新关于连接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目录下
快速搭建个人MQTT服务器(基于EMQX) - 图9

配置文件 说明
emqx.conf EMQX 配置文件
acl.conf EMQX 默认 ACL 规则配置文件
plugins/*.conf EMQX 各类插件配置文件
certs EMQX SSL 证书文件

其他命令

  1. # 卸载emqx
  2. sudo apt-get remove emqx