Windows 系统部署 Mosquitto MQTT broker 完整指南

news/2025/9/19 8:39:26/文章来源:https://www.cnblogs.com/linux-farmer/p/19100057

一、前言/介绍

  • 简要介绍 Mosquitto 是什么(轻量级、开源 MQTT 消息代理)

  • MQTT 协议的应用场景(IoT、移动应用、消息推送等)

  • 本文目标:在 Windows 系统上快速搭建一个可用的 MQTT 服务器

二、下载与安装

markdown
1.  访问官方网站:[https://mosquitto.org/download/](https://mosquitto.org/download/)
2.  选择 Windows 版本下载(如:`mosquitto-2.0.22-install-windows-x64.exe`)
3.  运行安装程序,**建议使用默认安装路径** (`C:\Program Files\mosquitto`)**注意**:安装过程中可能会提示安装依赖库(如 VC++ Redistributable),请同意安装。

三、配置文件修改(关键步骤)

markdown
1.  进入安装目录:`C:\Program Files\mosquitto`
2.  找到并编辑 `mosquitto.conf` 文件(可用记事本、Notepad++等编辑器)
3.  修改或添加以下配置:```conf
# 允许匿名连接(仅建议测试环境使用)
allow_anonymous true# 监听所有网络接口的 1883 端口
listener 1883 0.0.0.0# (可选)启用日志输出便于调试
log_dest file C:\Program Files\mosquitto\mosquitto.log
log_type all

配置说明:

  • allow_anonymous true: 允许客户端无需用户名密码连接

  • listener 1883 0.0.0.0: 监听所有网卡的 1883 端口

  • log_dest: 设置日志文件路径,方便排查问题

text
#### 四、启动 Mosquitto 服务
```markdown
**方法一:命令行启动(推荐测试使用)**
1.  以**管理员身份**打开命令提示符(CMD)或 PowerShell
2.  切换到安装目录:```cmdcd C:\Program Files\mosquitto```
3.  指定配置文件启动:```cmdmosquitto.exe -c mosquitto.conf -v```- `-c`: 指定配置文件- `-v`: 详细输出模式,可在控制台查看连接日志**方法二:作为 Windows 服务安装**
```cmd
# 以管理员身份运行
mosquitto.exe install -c mosquitto.conf

之后可在"服务"应用中启动/停止 Mosquitto Broker 服务

text
#### 五、常见问题与解决方案
```markdown
**Q1: 端口占用或启动失败**
- **错误信息**: `Error: 以一种访问权限不允许的方式做了一个访问套接字的尝试。`
- **解决方案**: 必须以**管理员身份**运行命令行,因为 1024 以下端口需要权限**Q2: 服务启动冲突**
- **现象**: 端口被占用或启动失败
- **解决方案**: 1. 打开"服务"应用(services.msc)2. 找到 `Mosquitto Broker` 服务3. 停止并禁用该服务(如果存在)**Q3: 防火墙阻止连接**
- **解决方案**: 允许 1883 端口的入站连接1. 高级安全 Windows 防火墙2. 入站规则 → 新建规则 → 端口 → TCP 1883 → 允许连接

六、测试连接

markdown
**使用 MQTTX 客户端测试**:
1.  下载安装 [MQTTX](https://mqttx.app/)
2.  新建连接,配置如下:- Name: 本地测试- Host: `localhost` 或服务器本机 IP- Port: `1883`- 用户名/密码: 空(因允许匿名连接)**使用命令行测试**:
```cmd
# 订阅测试(新开一个命令行窗口)
mosquitto_sub -h localhost -t "test/topic" -v# 发布测试(再开一个命令行窗口)  
mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT!"
text
#### 七、安全建议(进阶)
```markdown
**生产环境请勿使用匿名连接**:
1.  创建用户密码:```cmdmosquitto_passwd -c passwd username```
2.  修改配置:```confallow_anonymous falsepassword_file C:\Program Files\mosquitto\passwd```

八、总结

  • 成功在 Windows 部署 Mosquitto

  • 掌握了基本配置和测试方法

  • 了解了常见问题的解决方案

  • 下一步可以探索 TLS/SSL 加密、ACL 权限控制等高级功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Linux] shell脚本 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践

2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

坚果云 坚果 jianguoyun 怎么收文件?

怎么收文件? 坚果云 坚果 jianguoyun 怎么收文件?注册、登录、免费的空间是 1GB。创建新的收集 https://www.jianguoyun.com/d/home#/ 查看收集结果:https://www.jianguoyun.com/#/

mssql创建字段依赖

CREATE TABLE temp061_t ( ID INT IDENTITY(1,1) PRIMARY KEY, RoleType INT NOT NULL, isSior INT NULL ); ALTER TABLE temp061_t ADD CONSTRAINT chk_is_sior CHECK ( (RoleType = 1 AND isSior IS NULL) OR (RoleT…

一款多功能Linux服务器Web管理面板

为什么使用 Docker 部署 EasyNode? 正如您所说,Docker 部署具有显著优势: 环境隔离与一致性:所有依赖(Node.js, PM2等)都封装在容器内,与宿主机环境隔离,避免冲突。在任何支持 Docker 的 Linux 发行版上,体验…

2025.9.16 测试

2025.9.16 测试1. Problem A: 逆序对(reverse) 根据冒泡,只要逆序对个数够就有方案 经过思考,我们找到第一个操作个数大于的前缀,然后操作前一个前缀,这样前边变有序后,与当前数成逆序对一定是个后缀,然后根据需…

完整教程:C/C++:看简介吧= ̄ω ̄=(2)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:P12558 [UOI 2024] Heroes and Monsters

题面: (这个没交洛谷,给学弟写的。) \(O(n^3)\) 考虑直接求出所有 \(ans_i\),前缀和回答询问。 \(a,b\) 先排序。由于我们只关心英雄的集合,所以怪兽我们贪心选择,如果我们选这个英雄那么选最前面的怪兽,否则选…

qt QHPieModelMapper详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

webRTC golang 构建核心

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数据分析与产品、运营、市场之间如何有效对齐 - 详解

数据分析与产品、运营、市场之间如何有效对齐 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

(附源码)基于Java的学生托管系统的设计与实现 - 实践

(附源码)基于Java的学生托管系统的设计与实现 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

agentgateway 简单试用

agentgateway 简单试用以下是一个简单示例,主要测试多mcp tools 的聚合,集成了基于litserve 的mcp server 以及genai toolbox 安装 目前github 上暂时未系统mac x86 架构的包,可以自己编译命令git clone https://gi…

SVG动画优化全攻略:从设计到性能提升

本文详细介绍了如何通过清洁设计、路径简化、代码分层和元素复用等技术优化SVG动画,涵盖工具选择、结构设计到CSS动画实现的全流程,帮助开发者创建高性能的SVG动画效果。粉碎动画第四部分:优化SVG SVG动画让我回想起…

深入解析:Go 1.25.1 自定义包调用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

MX 练石 2026 NOIP #7

0 + 10 + 10 + 0 = 20, Rank 152/199.好难好难好难好难,为数不多的罚坐了。 4h20min 怒砍 20pts /ohMX 练石 2025 NOIP #6 链接:link 题解:link 时间:4h20min (2025.09.18 13:50~18:10) 题目数:4 难度:A B C D估…

多元积性函数

定义:若函数 \(f(n,m)\) 满足 \(ab \perp xy \Rightarrow f(ax,by)=f(a,b)f(x,y)\),则称 \(f\) 为二元积性函数。 积性分解:将 \(x=\prod p_i^{\alpha _i},y=\prod p_i^{\beta _i}\),则有 \(f(x,y)=\prod f(p_i^{\…

国内AI云市场:挤不进前三,生存将成问题!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087中国AI云市场已形成“一大四强”的格局,阿里云以35.8%的份额独占鳌…

P14053 [SDCPC 2019] Median 题解

P14053 [SDCPC 2019] Median 题解P14053 [SDCPC 2019] Median 题解 一道水题。 观察题意,很快我们可以发现,对于元素 \(i\),其合不合法取决于一定大于 \(i\) 的数的个数与一定小于 \(i\) 的数的个数。 这时,我们只…

lQueryDef查询Evaluate报该几何不包含M值问题。

地理数据库既包括空间,又包括属性,属性类似于SQL表,理论上支持标准SQL查询。lQueryDef接口提供了高效查询方法,适用于对属性表或要素类的属性进行筛选和检索。 问题描述 一个简单的面积求和示例如下:IQueryDefFac…