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 基础环境搭建完成,消息发布与订阅已验证可用,可作为后续网关案例的通信底座。