Ubuntu搭建mosquitto服务器(MQTT服务器)

若该文为原创文章,转载请注明原文出处。

在测试MQTT,需要搭建自己MQTT服务器,所以在Ubuntu下直接搭建测试

一、mosquitto简介

一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。

二、安装步骤

1、安装

复制代码
sudo apt-get update 
sudo apt-get install mosquitto

2、安装客户端

复制代码
sudo apt-get install mosquitto-clients

三、添加和修改配置

1.添加配置文件

在/etc/mosquitto/conf.d目录下,添加配置文件myconfig.conf 配置文件:

复制代码
sudo vi /etc/mosquitto/conf.d/myconfig.conf

粘入下面这些配置

复制代码
#添加监听端口(很重要,否则只能本机访问)
listener 1883
#-------------------------------------------
# 关闭匿名访问,客户端必须使用用户名
allow_anonymous false

#指定 用户名-密码 文件
password_file /etc/mosquitto/pwfile.txt

# ========== 连接限制配置 ==========
# 全局最大连接数
max_connections 10000

max_connections_per_client 10
# 每个客户端(按IP地址或用户名)最多10个连接
# 防止单个用户/设备建立过多连接

max_keepalive 300
# 客户端最大心跳间隔 = 300秒(5分钟)
# 如果客户端设置的心跳间隔大于300秒,连接会被拒绝
# MQTT协议要求:客户端实际心跳 = 1.5 × keepalive值

persistent_client_expiration 1h
# 持久会话(clean_session=false)的过期时间 = 1小时
# 客户端断开后,其未消费消息和订阅信息保留1小时

max_inflight_messages 20
# "飞行中"消息的最大数量 = 20条
# 指已发送给客户端但未收到确认(QoS 1/2)的消息
# 超过20条后会暂停发送,直到客户端确认

max_queued_messages 1000
# 每个客户端最大排队消息数 = 1000条
# 客户端断开或处理慢时,最多缓存1000条消息
# 超过后新消息会被丢弃(根据规则)

#--------------------------------------------

2.添加账户及密码

复制代码
sudo mosquitto_passwd -c /etc/mosquitto/pwfile.txt 用户名

回车后连续输入2次用户密码即可,用户名自行修改

四、运行

1.启动mosquitto

复制代码
sudo service mosquitto start

2.查看mosquitto运行状态

复制代码
sudo service mosquitto status

3、 检查当前连接数

复制代码
# 查看当前连接
sudo systemctl status mosquitto

# 或查看日志
sudo tail -f /var/log/mosquitto/mosquitto.log

# 查看当前活跃连接数
mosquitto_sub -h localhost -t '$SYS/broker/clients/connected' -C 1 -u 用户名 -P 密码

# 查看历史最大连接数
mosquitto_sub -h localhost -t '$SYS/broker/clients/maximum' -C 1 -u 用户名 -P 密码

# 查看所有客户端连接信息(JSON格式)
mosquitto_sub -h localhost -t '$SYS/broker/clients' -C 1 -u 用户名 -P 密码

4、重新加载配置

复制代码
# 检查配置文件语法
sudo mosquitto -c /etc/mosquitto/mosquitto.conf --用户名

# 重启服务
sudo systemctl restart mosquitto

# 查看状态
sudo systemctl status mosquitto

五、测试

使用上位机软件,添加I和用户名密码,订阅消息,测试正常

后面部署到阿里云服务器,外网使用。

如有侵权,或需要完整代码,请及时联系博主。

相关推荐
枫子有风几秒前
Docker的安装【下载安装、报错、镜像配置、常用命令】
运维·docker·容器
leo825...1 分钟前
Docker常见命令(总结)
运维·docker·容器
仙仙学姐测评2 分钟前
开题报告PPT自动化生成工具研究
运维·自动化·powerpoint
希赛网4 分钟前
网工备考,华为ENSP基础配置命令
服务器·网络·网络工程师·华为认证·命令行·ensp命令·网工备考
大小鱼鱼鱼与鱼.4 分钟前
linux磁盘扩展
linux·运维·服务器
Solar20257 分钟前
构建高可靠性的机械设备企业数据采集系统:架构设计与实践指南
java·大数据·运维·服务器·架构
地球资源数据云17 分钟前
MODIS(MCD19A2)中国2000-2024年度平均气溶胶光学深度数据集
大数据·服务器·数据库·人工智能·均值算法
坚持学习前端日记23 分钟前
Nginx 搭建文件服务器
运维·服务器·nginx
未来之窗软件服务24 分钟前
服务器运维(二十二) 服务器安全探针封装—东方仙盟练气期
运维·云计算·仙盟创梦ide·东方仙盟·服务器探针
小北方城市网24 分钟前
第 4 课:微服务 API 网关设计与接口全生命周期管理|统一入口与接口治理实战
java·大数据·运维·人工智能·python·深度学习·数据库架构