科普文:软件架构网络系列之【在线公共 MQTT 服务器梳理】
概叙
科普文:软件架构网络系列之【应用层协议:MQTT(消息队列遥测传输)详解】-CSDN博客
摘要:本文介绍了多个免费公共MQTT代理服务器,包括Eclipse Mosquitto、HiveMQ、EMQX等,详细列出了各服务器的地址、端口和协议支持情况。文章指出这些公共服务器仅适用于测试和学习,不适合商业项目,因其存在稳定性、安全性和性能限制。同时提供了使用注意事项,如避免发送敏感数据、控制消息频率等。对于商业项目,建议选择自建MQTT代理或专业云服务,以确保可靠性、安全性和扩展性。

以下是一些 免费、无需注册 即可使用的公共 MQTT Broker(代理服务器),适合测试和学习 MQTT 协议。
免费公共 MQTT Broker
| Broker 名称 | 地址 | 端口 | 协议支持 | 备注 |
|---|---|---|---|---|
| Eclipse Mosquitto | test.mosquitto.org | 1883 (TCP) 8883 (SSL) 8080 (WebSocket) | MQTT 3.1.1 / 5.0 | 由 Eclipse 基金会维护,适合测试 |
| HiveMQ Public | broker.hivemq.com | 1883 (TCP) 8000 (WebSocket) | MQTT 3.1.1 | 支持 WebSocket,适合 Web 应用 |
| EMQX Public | broker.emqx.io | 1883 (TCP) 8083 (WebSocket) | MQTT 3.1.1 / 5.0 | 支持 MQTT 5.0 |
| MQTTX Broker | broker.mqttx.io | 1883 (TCP) 8084 (WebSocket) | MQTT 3.1.1 | 由 MQTTX 团队提供 |
| Shiftr.io | public.cloud.shiftr.io | 1883 (TCP) 8883 (SSL) | MQTT 3.1.1 | 需注册免费账号 |
| Adafruit IO | io.adafruit.com | 1883 (TCP) 8883 (SSL) | MQTT 3.1.1 | 需 API Key(免费额度) |
1. Eclipse Mosquitto 公共测试服务器
- 服务器地址:
test.mosquitto.org - 端口:
- 非加密端口:1883
- TLS 加密端口:8883
- 说明:这是由 Eclipse Mosquitto 项目提供的公共测试服务器,适合初学者进行简单的 MQTT 功能测试,例如验证客户端的连接、发布和订阅消息等基本操作。不过由于是公共服务器,可能会有很多其他用户同时使用,不适合用于商业或对数据安全性、隐私性要求较高的场景。
2. HiveMQ 公共 MQTT 代理
- 服务器地址:
broker.hivemq.com - 端口:
- 非加密端口:1883
- TLS 加密端口:8883
- 说明:HiveMQ 是知名的 MQTT 代理软件提供商,其提供的公共 MQTT 代理可用于测试和开发目的。它提供了稳定的服务,并且支持 MQTT 3.1.1 和 MQTT 5.0 协议,方便开发者测试不同协议版本的功能。
3. EMQX Cloud 公共 MQTT 服务器(有一定限制)
- 说明:EMQX Cloud 是专业的 MQTT 云服务平台,虽然它主要是提供商业化的 MQTT 服务,但也为用户提供了一定的免费试用和测试资源。你可以通过注册账号,按照其文档指引来使用其提供的公共测试环境,了解 EMQX 相关的 MQTT 服务特性。不过免费资源可能在连接数、消息吞吐量等方面有一定限制。
注意事项
- 测试/学习:用
test.mosquitto.org或broker.hivemq.com。 - Web 开发:选择支持 WebSocket 的 Broker(如
broker.emqx.io:8083)。 - 生产环境:自建 Broker 或使用 阿里云 IoT、AWS IoT Core 等商业服务。
- 安全性:
- 公共 Broker 不加密(1883),生产环境建议使用 TLS(8883) 或私有 Broker。
- 不要发送敏感数据(如密码、个人信息)。
- 稳定性:公共 Broker 可能不稳定或限流,仅适合测试。
- 主题(Topic)命名:避免使用通用主题(如
test),建议加随机后缀(如test/yourname)。
公共MQTT服务器有数据传输量的限制吗?
公共MQTT服务器主要用于学习或简单验证, 务必遵守限制,生产环境推荐私有化部署或专业云服务。
公共MQTT服务器通常 有数据传输量限制,具体限制因服务商而异,主要包括以下方面:
1. 常见限制类型
(1)连接时长与频率
- 短期测试:多数公共服务器(如
test.mosquitto.org)仅允许 临时测试,禁止长期运行或生产环境使用,可能主动断开长时间空闲的连接。 - 请求频率:限制高频发布/订阅(如每秒多次消息),防止服务器资源被滥用。
(2)数据量与消息大小
- 单条消息大小:通常限制在 几KB到几十KB(例如不超过 128KB~256KB),过大的消息会被拒绝。
- 每日/每月总量:部分服务器限制每日或每月的总传输数据量(如几百MB以内),超出后可能封禁IP或账号。
(3) 并发连接与主题数
- 并发连接数:限制单个IP或账号的并发客户端连接数量(如最多5~10个)。
- 主题数量:可能限制订阅/发布的主题数量或层级深度。
2. 典型公共服务器示例
| 服务器 | 限制说明 |
|---|---|
| test.mosquitto.org | 仅限测试,禁止商业用途;无明确数据量说明,但高频使用可能被封禁。 |
| broker.hivemq.com | 禁止长期连接和生产环境使用;未公开具体数据量限制,但建议轻量级测试。 |
| EMQX Cloud 试用 | 免费版有连接数、消息吞吐量限制(如100并发连接、1MB/s吞吐量),付费升级。 |
3. 如何避免问题?
- 阅读服务商条款:使用前查看官方文档(如 HiveMQ 或 EMQX),明确限制规则。
- 轻量级测试:控制消息频率(如每分钟几次)、大小(小于10KB)和连接时间。
- 自建服务器:如需大量数据传输或稳定服务,建议自建 EMQX、Mosquitto 等开源Broker,或购买云服务商(如腾讯云物联网通信)的付费方案。
公共MQTT服务器适合用于商业项目吗?
公共MQTT服务器仅适合 个人学习、原型验证或非敏感数据的临时测试。商业项目必须使用 私有化部署或专业云服务,以确保稳定性、安全性和可扩展性。
公共MQTT服务器 不适合 用于商业项目,主要原因如下:
1. 核心限制
- 稳定性风险:公共服务器可能因高并发、维护或网络问题导致服务中断,无法保障商业场景所需的 7×24小时高可用性。
- 数据安全风险:公共网络传输未加密(如使用1883端口),且多用户共享服务器,存在 数据泄露、篡改或中间人攻击 的隐患,不符合商业项目对隐私和合规的要求(如GDPR、等保)。
- 功能与性能瓶颈:
- 通常不支持 高级功能(如大规模设备管理、消息持久化、复杂规则引擎)。
- 有严格的 数据量、连接数、消息频率限制(如每日传输量上限、并发连接数限制),无法满足商业项目的规模化需求。
2. 商业项目的核心需求
- 高可靠性:需99.9%以上的服务可用性,支持故障自动切换和灾备。
- 数据安全:要求端到端加密(如TLS 1.3)、身份认证(如OAuth2.0、X.509证书)、细粒度权限控制(如主题级读写权限)。
- 弹性扩展:支持百万级设备并发连接、高吞吐量消息处理(如每秒数十万条消息)。
- 合规性:需符合行业监管要求(如金融、医疗领域的审计日志、数据主权)。
3. 替代方案
- 自建MQTT Broker:使用开源软件(如 EMQX、Mosquitto、HiveMQ)部署在私有云或本地服务器,灵活可控,适合中小规模商业项目。
- 专业云服务:选择商业级MQTT平台(如 腾讯云物联网通信、阿里云物联网平台、AWS IoT Core),提供 高可用集群、企业级安全、专业运维支持,并按需付费扩展资源。











