前言
- EMQX太大了,而且在腾讯云的CentOS装了半天没装上,看Q群里有人提到这个,就去试试。
搭建流程
安装
添加用户
- 用户信息都是保存在一个文件中的。
- 添加有两种方式,一种是直接覆写文件,一种是追加文件;前者添加后原用户信息全部丢失,后者不会。
创建用户密码文件并添加用户(如存在则覆写)
- 格式:sudo mosquitto_passwd -c [文件路径] [用户名]
1 2 3
| sudo mosquitto_passwd -c /etc/mosquitto/pwdfile [用户名] - 输入用户密码 - 再次输入用户密码
|
追加用户(不会覆写)
- 格式:mosquitto_passwd -b [最终生成的password_file文件] [用户名] [密码]
1
| mosquitto_passwd -b /etc/mosquitto/pwdfile [用户名] [密码]
|
- ps.删除用户最简单的方法就是直接用nano或者vim这类编辑的进用户密码文件把待删用户那行删除。
修改配置文件
配置文件路径:/etc/mosquitto/mosquitto.conf
- 用nano或者vim编辑这个文件,去掉如下两行语句注释,并且设置值
1 2 3 4 5
| #设置不允许匿名登录 allow_anonymous false
#设置账户密码文件位置为:/etc/mosquitto/pwdfile password_file /etc/mosquitto/pwdfile
|
一些问题及解决
- 如果禁止了匿名登录但是没有设置
password_file
,就会出现用任意用户名和密码(除了空用户名密码)都可以登录MQTT服务的情况。
启动服务,设置自启
1 2 3 4
| # 自启动 > sudo systemctl enable mosquitto # 运行服务 > sudo systemctl start mosquitto
|
测试部署结果(尝试用mosquitto_sub订阅并监听主题)
SSH终端输入
1
| mosquitto_sub --host [服务器IP] -p [服务端口] -u [用户名] -P [密码] -t [主题]
|
- 这时在别的电脑用MQTT测试工具连上MQTT服务器并给这个主题发布消息,就可以在SSH终端看到发布的消息了。