轻量MQTT服务器mosquitto搭建笔记

2022-03-11 02:03:58 浏览数 (1)

搭建流程

安装

  • 直接yum
代码语言:javascript复制
yum install mosquitto

添加用户

  • 用户信息都是保存在一个文件中的。
  • 添加有两种方式,一种是直接覆写文件,一种是追加文件;前者添加后原用户信息全部丢失,后者不会。
创建用户密码文件并添加用户(如存在则覆写)
  • 格式:sudo mosquitto_passwd -c [文件路径] [用户名]
代码语言:javascript复制
sudo mosquitto_passwd -c /etc/mosquitto/pwdfile [用户名]
- 输入用户密码
- 再次输入用户密码
追加用户(不会覆写)
  • 格式:mosquitto_passwd -b [最终生成的password_file文件] [用户名] [密码]
代码语言:javascript复制
mosquitto_passwd -b /etc/mosquitto/pwdfile  [用户名]  [密码]
  • ps.删除用户最简单的方法就是直接用nano或者vim这类编辑的进用户密码文件把待删用户那行删除。

修改配置文件

  • 目标是禁止匿名登录,并且设置用户密码文件路径。

配置文件路径:/etc/mosquitto/mosquitto.conf

  • 用nano或者vim编辑这个文件,去掉如下两行语句注释,并且设置值
代码语言:javascript复制
#设置不允许匿名登录
allow_anonymous false
​
#设置账户密码文件位置为:/etc/mosquitto/pwdfile
password_file /etc/mosquitto/pwdfile
一些问题及解决
  • 如果禁止了匿名登录但是没有设置password_file,就会出现用任意用户名和密码(除了空用户名密码)都可以登录MQTT服务的情况。

启动服务,设置自启

  • ps. 每次修改完配置都要重启服务才生效
代码语言:javascript复制
# 自启动
> sudo systemctl enable mosquitto   
# 运行服务
> sudo systemctl start mosquitto

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

  • 注:默认端口是1883,可以到配置文件中改。

SSH终端输入

代码语言:javascript复制
mosquitto_sub --host [服务器IP] -p [服务端口] -u [用户名] -P [密码] -t [主题]
  • 这时在别的电脑用MQTT测试工具连上MQTT服务器并给这个主题发布消息,就可以在SSH终端看到发布的消息了。

0 人点赞