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