centos、Ubuntu 安装mqtt 和 使用MQTT Mosquitto

MQTT


一、MQTT简介

1. MQTT是一个在机器和机器之间传递消息的协议,为实现物联网设备间轻量级的发布/订阅通信而设计。

2. 广泛应用于汽车地理位置追踪,智能家居自动化,环境传感网络,以及各项公共事业的数据收集。

3. Mosquitto是一个流行的MQTT服务器(在MQTT协议中叫中继器或代理),拥有强大的社区支持,易于安装、配置。

  • MQTT 是一个轻量级即时通信协议,使用基于 TCP/IP 协议的发布/订阅消息转发模式, MQTT 协议的中心是 broker(服务器/代理),客户端通过订阅消息和发布消息进行数据交互。
  • 【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。
  • 【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合。

Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,包括了服务器端和客户端,可以跨平台部署,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。


二、centos安装mqtt

为了安全起见。是推荐使用非root用户登录并使用,创建用户会安全点

1、下载mqtt

sudo yum install -y  mosquitto mosquitto-clients

在这里插入图片描述

2、查看状态并启动

查看状态(目前没有启动)

sudo systemctl status mosquitto.service

启动mqtt

sudo systemctl start mosquitto.service

在这里插入图片描述

3、更新下系统软件(可做可不做)

sudo yum update

在这里插入图片描述

4、配置MQTT密码

Mosquitto包含了一个工具,用来生成一个特殊的密码文件mosquitto_passwd。
这个命令将提示你为指定的用户名输入密码,并把结果保存在/etc/mosquitto/passwd中。

这边小编将用户名和密码都指定成iot

sudo mosquitto_passwd  -c /etc/mosquitto/passwd iot

如图:
在这里插入图片描述

5、 修改Mosquitto的配置文件

编辑配置文件,插入配置

 vi /etc/mosquitto/mosquitto.conf

说明:

  • allow_anonymous false将禁用未认证的链接
  • password_file一行指定了Mosquitto从何处获取用户和密码信息

如图:
在这里插入图片描述
在这里插入图片描述

6、 重启mqtt

sudo systemctl restart mosquitto.service

7、 防火墙端口放行1883端口

记得开防火墙端口。
如果是云服务。在安全组要放开端口。Linux放行

  1. 云服务器的安全组放开端口
    在这里插入图片描述
  2. Linux放行端口
添加指定需要开放的端口:
firewall-cmd --add-port=1883/tcp --permanent

重载入添加的端口:
firewall-cmd --reload

查询指定端口是否开启成功:
firewall-cmd --query-port=1883/tcp

在这里插入图片描述

8、 mqtt客户端测试使用

在这里插入图片描述
在这里插入图片描述


三、Ubuntu 安装mqtt

1、下载mqtt

sudo apt-get install mosquitto mosquitto-clients

在这里插入图片描述

注明:Ubuntu16.04默认软件仓库的mosquitto版本就挺新的,可以省去mosquitto仓库的引入及更新

可做可不做

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

2、查看mqtt状态

# 状态
sudo systemctl status mosquitto.service

# 开启
sudo systemctl start mosquitto.service

# 关闭
sudo systemctl stop mosquitto.service

# 重启
sudo systemctl restart mosquitto.service

如图:
在这里插入图片描述

3、配置MQTT密码

指定用户名和密码都为 iot(自己修改)

sudo mosquitto_passwd  -c /etc/mosquitto/passwd iot

在这里插入图片描述

4、给Mosquitto创建新的配置和指定密码文件

#使用nano或者vi都行

sudo nano /etc/mosquitto/conf.d/default.conf

内容

allow_anonymous false
password_file /etc/mosquitto/passwd

如图:
在这里插入图片描述
说明:

  • allow_anonymous false将禁用未认证的链接
  • assword_file一行指定了Mosquitto从何处获取用户和密码信息

5、重启Mosquitto

sudo systemctl restart mosquitto.service

6、防火墙端口放行

#查看防火墙状态(显示所有放行的端口)
sudo ufw status

#安装防火墙
sudo sudo apt-get install ufw

#开启防火墙
sudo ufw enable
 
#端口放行 例如1883
sudo ufw allow 1883  

#重启ufw防火墙
sudo ufw reload

#查看1883端口监听信息信息
sudo netstat -tunlp | grep 1883

#看是否ping得通
telnet linux的Ip 端口

#关闭防火墙
sudo ufw disable

7、mqtt客户端测试使用

在这里插入图片描述

在这里插入图片描述


四、开机自启动

root用户

自启动mqtt

systemctl enable mosquitto.service

在这里插入图片描述

查看又那些服务是自启动的

ll /etc/systemd/system/multi-user.target.wants/

在这里插入图片描述
或者

systemctl list-dependencies

下一篇:在Java中集成mqtt使用

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suqinyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值