基于 Erlang 的分布式 MQTT 消息代理,面向物联网与工业消息场景,支持 MQTT 3.1、3.1.1 和 5.0。
eclipse-mosquitto/mosquitto
开源的 MQTT 消息代理服务器,支持 MQTT 5.0、3.1.1 和 3.1 协议,并附带 C/C++ 客户端库与命令行工具。
- Star
- 11,291
- Fork
- 2,652
- 未关闭 Issue
- 905
- 最近提交
- 10天前
这是什么?
Eclipse Mosquitto 是一个轻量级消息代理,实现了 MQTT 发布/订阅协议,常用于连接物联网设备、传感器等需要通过网络交换小型消息的客户端。它支持 MQTT 5.0、3.1.1 和 3.1 版本。
除服务端外,项目还提供 C 和 C++ 客户端库及命令行工具:mosquitto_pub 与 mosquitto_sub 用于发布和订阅,mosquitto_rr 用于请求/响应,mosquitto_ctrl、mosquitto_signal 和 mosquitto_passwd 用于管理代理。访问控制可通过认证方式和动态安全插件实现,监听端口等通过配置文件定义。
项目可在 Windows、macOS 及其他类 Unix 系统上通过 make 或 CMake 构建,并可选启用基于 OpenSSL 的 TLS、基于 SQLite 的持久化、SRV 查询和 HTTP API 等功能。
核心功能
- 01实现 MQTT 5.0、3.1.1 和 3.1 协议的代理功能。
- 02提供 C 和 C++ 客户端库。
- 03提供 mosquitto_pub 和 mosquitto_sub 命令行客户端。
- 04提供 mosquitto_passwd、mosquitto_ctrl 等管理工具。
- 05支持基于 OpenSSL 的 TLS 加密以及认证插件,包括动态安全插件。
适用场景
- 通过统一的 MQTT 代理连接物联网设备与传感器。
- 为家庭自动化或工业遥测搭建自托管消息代理。
- 使用随附的发布与订阅工具在本地测试 MQTT 客户端。
快速上手
- 1
从 Mosquitto 下载页面安装二进制包
- 2
使用基本配置启动代理
mosquitto - 3
订阅测试主题
mosquitto_sub -t 'test/topic' -v - 4
发布测试消息
mosquitto_pub -t 'test/topic' -m 'hello world'
使用前须知
- 不带配置运行代理时允许匿名访问,但仅限本机。
- 远程客户端需要配置文件来设置监听器和身份验证。
标签
常见问题
- mosquitto 是什么?
- 开源的 MQTT 消息代理服务器,支持 MQTT 5.0、3.1.1 和 3.1 协议,并附带 C/C++ 客户端库与命令行工具。 Eclipse Mosquitto 是一个轻量级消息代理,实现了 MQTT 发布/订阅协议,常用于连接物联网设备、传感器等需要通过网络交换小型消息的客户端。它支持 MQTT 5.0、3.1.1 和 3.1 版本。
- mosquitto 可以免费使用吗?用的什么许可证?
- mosquitto 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- mosquitto 还在维护吗?
- 活跃维护中。mosquitto 最近一次提交是在 2026年10月15日。
- mosquitto 适合用来做什么?
- 通过统一的 MQTT 代理连接物联网设备与传感器。 为家庭自动化或工业遥测搭建自托管消息代理。 使用随附的发布与订阅工具在本地测试 MQTT 客户端。
- mosquitto 怎么安装和运行?
- 从 Mosquitto 下载页面安装二进制包 使用基本配置启动代理: mosquitto 订阅测试主题: mosquitto_sub -t 'test/topic' -v 发布测试消息: mosquitto_pub -t 'test/topic' -m 'hello world'
- 在哪里获取 mosquitto?
- 源代码和安装说明在 GitHub 上:https://github.com/eclipse-mosquitto/mosquitto
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Go 语言库,用统一的发布/订阅接口构建事件驱动应用,支持 Kafka、RabbitMQ、NATS、SQL 等多种消息后端。
一个用 C 编写的嵌入式网络库,仅两个文件,提供 TCP/IP 协议栈、TLS 1.3、HTTP、WebSocket、MQTT 与固件 OTA 升级。
注重本地控制与隐私的开源智能家居自动化平台,可运行在树莓派或本地服务器上。
将 Zigbee 智能设备接入 MQTT 的桥接工具,无需厂商网关即可使用设备。
用 YAML 配置文件控制 ESP32、ESP8266 等微控制器,并接入 Home Assistant 等智能家居系统。