前言

  • EMQX太大了,而且在腾讯云的CentOS装了半天没装上,看Q群里有人提到这个,就去试试。

搭建流程

安装

  • 直接yum
yum install mosquitto

添加用户

  • 用户信息都是保存在一个文件中的。
  • 添加有两种方式,一种是直接覆写文件,一种是追加文件;前者添加后原用户信息全部丢失,后者不会。

创建用户密码文件并添加用户(如存在则覆写)

  • 格式:sudo mosquitto_passwd -c [文件路径] [用户名]
sudo mosquitto_passwd -c /etc/mosquitto/pwdfile [用户名]
- 输入用户密码
- 再次输入用户密码

追加用户(不会覆写)

  • 格式:mosquitto_passwd -b [最终生成的password_file文件] [用户名] [密码]
mosquitto_passwd -b /etc/mosquitto/pwdfile  [用户名]  [密码]
  • ps.删除用户最简单的方法就是直接用nano或者vim这类编辑的进用户密码文件把待删用户那行删除。

修改配置文件

  • 目标是禁止匿名登录,并且设置用户密码文件路径。
配置文件路径:/etc/mosquitto/mosquitto.conf
  • 用nano或者vim编辑这个文件,去掉如下两行语句注释,并且设置值
#设置不允许匿名登录
allow_anonymous false

#设置账户密码文件位置为:/etc/mosquitto/pwdfile
password_file /etc/mosquitto/pwdfile

一些问题及解决

  • 如果禁止了匿名登录但是没有设置password_file,就会出现用任意用户名和密码(除了空用户名密码)都可以登录MQTT服务的情况。

启动服务,设置自启

  • ps. 每次修改完配置都要重启服务才生效
# 自启动
> sudo systemctl enable mosquitto   
# 运行服务
> sudo systemctl start mosquitto

测试部署结果(尝试用mosquitto_sub订阅并监听主题)

  • 注:默认端口是1883,可以到配置文件中改。
SSH终端输入
mosquitto_sub --host [服务器IP] -p [服务端口] -u [用户名] -P [密码] -t [主题]
  • 这时在别的电脑用MQTT测试工具连上MQTT服务器并给这个主题发布消息,就可以在SSH终端看到发布的消息了。
最后修改:2022 年 04 月 05 日
如果觉得我的文章对你有用,请随意赞赏