搭建流程
安装
- 直接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,可以到配置文件中改。
代码语言:javascript复制SSH终端输入
mosquitto_sub --host [服务器IP] -p [服务端口] -u [用户名] -P [密码] -t [主题]
- 这时在别的电脑用MQTT测试工具连上MQTT服务器并给这个主题发布消息,就可以在SSH终端看到发布的消息了。