1.Centos默认没有mosquitto,需要额外安装一个软件包,EPEL软件库。该库中有很多Linux发行版软件
sudo yum -y install epel-release
2.安装mostuitto
sudo yum -y install mosquitto
3.执行完以上两步,mosquitto就已经安装成功
4.测试是否安装成功
sudo systemctl start mosquitto
5.设置随Centos系统启动自启mosquitto
sudo systemctl enable mosquitto
6.测试默认配置
发布:mosquitto_sub -h localhost -t test
订阅:mosquitto_pub -h localhost -t test -m "hello world"
-h:MQTT服务器的域名
-t:主题名
-m:指定消息
6.关闭mosquitto服务,进行配置
sudo systemctl stop mosquitto
7.关闭匿名登录
在/etc/mosquitto/mosquitto.conf文件中,找一个空白的位置
allow_anonymous false
8.设置认证,配置MQTT用户名密码
使用mosquitto_passwd -c /etc/mosquitto/passwd.conf user命令,生成用户名和密码
- -c 是创建一个新的文件,只保存一个用户
- -b 在文件中新增一个用户在最后
在allow_anonymous false下一行添加password_file /etc/mosquitto/passwd.conf【注意passwd.conf文件的权限,不然无法启动mosquitto服务】
9.配置port和protocol
必须指定mqtt协议,外网才能进行访问。在mosquitto.conf文件中继续追加以下内容
port 1883
protocol mqtt
10.防火墙开放1883端口
firewall-cmd --zone=public --add-port=1883/tcp --permanent
11.服务器安全组开放1883端口
12.重启mosquitto服务,基本配置完成
systemctl restart mosquitto
13.发布-订阅“test”主题测试
发布:mosquitto_pub -h localhost -t "test" -m "hello world" -u "user" -P "password"
订阅:mosquitto_sub -h localhost -t test -u "user" -P "password"
14.卸载mosquitto,删除mosquitto的配置文件和数据
sudo yum remove mosquitto
sudo rm -rf /etc/mosquitto /var/lib/mosquitto