在云服务器(Ubuntu)下安装MQTT服务器以及设置连接权限

网友投稿 1167 2022-05-29

本文仅供学习参考,通过自己在云服务器搭建Mqtt服务器,更深入的了解MQTT协议。

一、效果

在云服务器上安装EMQ服务器,实现MQTT服务器的搭建

更改EMQ默认密码

更改连接权限,进行数据库认证

二、准备工作

1.购买云服务器

本地服务器也可以。但是为了设备接入以及操作的方便,还是建议在云服务器进行。

买一个低配置的服务器就可以,比如我购买的是轻量应用服务器,CentOS ubuntu18.04、1核、内存2G、系统盘40G。

2.开放相应的端口号、允许远程连接。

使用EMQ,至少需要开放的端口号:1883、18083、8083、8883、8084。可以在控制台里面的防火墙(安全组)设置。

同时,为了在本地通过ssh连接服务器,需要开放端口号22,同时允许远程连接。

3.连接自己的云服务器。

建议直接通过Cmd进行SSH连接(windows用户)。

即ssh root@ip (ip为你云服务器的公网ip)

输入密码时,是不会有字符显示的哦~

三、部署EMQ

以下是通过docker安装,详细内容请参考EMQ官网

1.配置docker CE

Ubuntu操作系统,其他操作系统可以自行百度配置。

连接服务器后,只需要6个命令,通过apt-get安装docker(阿里云镜像),步骤如下:

# step 1:更新 sudo apt-get update # step 2: 安装必要的系统工具 sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 3: 安装GPG证书 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # step 4: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # step 5: 更新 sudo apt-get -y update # step 6:安装Docker-CE sudo apt-get -y install docker-ce

成功安装后,输入docker -v可查看docker版本。

2.获取镜像

在云服务器(Ubuntu)下安装MQTT服务器以及设置连接权限

执行命令:$ docker pull emqx/emqx:v4.0.0

即让docker下载emq镜像,存储在硬盘中。

下载完成后,输入 docker images 可以已经拥有的镜像。

3.启动emq

执行命令:$ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0

启动emq,成功启动后,执行 docker ps 可以看到emq容器正在运行

EMQ自带有一个前端页面,可以通过 ip:18083进入。默认账号:admin;密码:public

大功告成,emq已经完成部署,接入设备试一下吧~

四、更改默认账户密码

进入服务器控制台页面(IP:18083),默认账号:admin,密码:public。

点击ADMIN,可以在Setting中切换语言为中文。

在ADMIN->Users选项中,设置自己的新密码

五、连接数据库

1.数据库新建表

通过mysql新建一个用户表格

CREATE TABLE `mqtt_user` (   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,   `username` varchar(100) DEFAULT NULL,   `password` varchar(100) DEFAULT NULL,   `salt` varchar(35) DEFAULT NULL,   `is_superuser` tinyint(1) DEFAULT 0,   `created` datetime DEFAULT NULL,   PRIMARY KEY (`id`),   UNIQUE KEY `mqtt_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.修改配置文件

a.关闭匿名登录。

修改emq.conf(文件在安装EMQ目录的./etc中)

mqtt.allow_anonymous = false // 修改为false

b.修改默认mysql配置

mysql版本为mysql5,mysql8会有不同!

进入etc/plugins/emqx_auth_mysql.conf,修改emqx_auth_mysql.conf

## 服务器地址 auth.mysql.server = 127.0.0.1:3306 ## 连接池大小 auth.mysql.pool = 8 auth.mysql.username = emqx auth.mysql.password = public auth.mysql.database = mqtt auth.mysql.query_timeout = 5s

只需修改为你的msyql信息即可。(ip:port、username、password)

注意:如果你是通过docker安装,进入emq目录方式为:docker exec -ti emqx /bin/sh

退出:ctrl + P + Q

三、设置连接权限

添加插件,在web控制页面中,选择 MANAGEMENT->Plugins,找到emqx_auth_mysql 让他running

此时,你再连接你的mqtt服务器时,你发现你会连接失败!说明你已经设置成功Mysql认证,在数据库里面添加你需要接入设备的ID、密码即可~

六、容器的开启、停止

查看:docker ps / docker images

停止:docker stop emqx

打开:docker start emqx

好了,此时你就已经拥有了自己的MQTT服务器,同时其他人未经允许也不能够轻易的访问或使用你的MQTT服务器,快去尝试吧~~

设备管理 IoTDM IoT 设备接入 IoTDA

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深耕数字化,华为云晒出优等成绩单
下一篇:鲲鹏服务器上phoronix-test-suite移植和使用
相关文章