本文使用emqx搭建mqtt:官方地址傳送門(mén)
1.查看openssl版本
openssl version
一般情況,centos7版本為1.0.2,mqtt的框架emqx必須大于1.0.2,所以如果低于該版本請(qǐng)升級(jí):centos升級(jí)openssl教程傳送門(mén)
2.安裝
wget https://www.emqx.com/zh/downloads/broker/4.3.8/emqx-centos7-4.3.8-amd64.rpm
sudo yum install emqx-centos7-4.3.8-amd64.rpm
sudo emqx start
3.查看防火墻
如果當(dāng)前服務(wù)器打開(kāi)了防火墻,需要將防火墻相應(yīng)端口進(jìn)行配置。
firewall-cmd --permanent --zone=public --add-port=1883/tcp
firewall-cmd --permanent --zone=public --add-port=18083/tcp
firewall-cmd --reload
如果是云服務(wù)器,配置了安全組,根據(jù)自己的情況配置安全組。
4.進(jìn)入etc/emqx目錄
cd /etc/emqx
5.修改配置文件emqx.conf
vi emqx.conf
修改配置文件內(nèi)容。
allow_anonymous = false #關(guān)閉匿名用戶登錄
acl_nomatch = deny #啟動(dòng)主題權(quán)限
6.打開(kāi)配置網(wǎng)頁(yè)
登錄網(wǎng)頁(yè)端后臺(tái):http://xx.xx.xx.xx:18083/
請(qǐng)及時(shí)修改默認(rèn)賬號(hào)和密碼
默認(rèn)賬號(hào):admin
默認(rèn)密碼:public
7.配置網(wǎng)頁(yè)打開(kāi)插件emqx_auth_mnesia
網(wǎng)頁(yè)端->插件->emqx_auth_mnesia->啟動(dòng)
8.配置mqtt用戶名和密碼
vi plugins/emqx_auth_mnesia.conf
修改文件內(nèi)容:
auth.user.1.username = bydz-smt
auth.user.1.password = bydzsmt123!@#
9.配置acl主題權(quán)限
vi acl.conf
修改文件內(nèi)容:
{allow, {user, "xxxx"}, pubsub, ["xx/xx"]}.
%%{allow, all}.
字段說(shuō)明
alllow:允許
deny 禁止
all 所有人
{user, "xxxx"} 特定賬號(hào)
{ipaddr, "127.0.0.1"} 特定ip
publish 發(fā)布
subscribe 訂閱
pubsub 發(fā)布訂閱
10.重新加載acl配置文件
emqx_ctl modules reload emqx_mod_acl_internal
11.重新啟動(dòng)emqx
emqx restart