1. 搭建MQTT Broker基础环境

任务目标

在本机安装并配置 Mosquitto MQTT Broker,通过命令行客户端验证本地消息的发布与订阅功能,为后续 IoT 网关案例提供可用的消息中间件基础环境。

环境与依赖

  • 操作系统:Ubuntu 22.04 / Debian 11+(Windows/macOS 请使用对应安装包或 Docker)
  • 安装包:mosquitto、mosquitto-clients
  • 验证工具:终端两个(或使用 tmux 分屏)

安装与配置

# 安装 Broker 与客户端工具
sudo apt update
sudo apt install -y mosquitto mosquitto-clients

# 启动服务并设置开机自启
sudo systemctl enable --now mosquitto

# 检查运行状态(应显示 active (running))
sudo systemctl status mosquitto --no-pager

默认配置监听本机 1883 端口,仅允许本地连接。若需允许局域网设备访问,编辑 /etc/mosquitto/mosquitto.conf,在文件末尾追加:

listener 1883 0.0.0.0
allow_anonymous true

然后重启服务:sudo systemctl restart mosquitto。本案例验证仅需本地回环连接,默认配置即可满足。

验证发布与订阅

打开两个终端。终端 A 订阅主题,终端 B 发布消息。

终端 A(订阅者):

mosquitto_sub -h localhost -p 1883 -t "test/topic" -v

终端 B(发布者):

mosquitto_pub -h localhost -p 1883 -t "test/topic" -m "hello mqtt"

通过条件:终端 A 收到并显示 test/topic hello mqtt,说明 Broker 消息路由正常,发布/订阅闭环打通。

常见问题

  • 连接被拒绝:确认 Broker 已启动(systemctl status mosquitto),且端口未被防火墙拦截。
  • 订阅无输出:先启动订阅者再执行发布命令;检查主题拼写是否完全一致。
  • 配置文件不生效:修改后必须重启服务,且确保自定义配置未与默认配置冲突。

至此,本地 MQTT Broker 基础环境搭建完成,消息发布与订阅已验证可用,可作为后续网关案例的通信底座。