windows系统安装mqtt

📅 发布时间:2026/7/8 6:39:40 👁️ 浏览次数:
windows系统安装mqtt
前言最近在关注物联网相关的信息了解到MQTT协议。记录一下windows安装MQTT。在 Windows 10 系统下安装 MQTT一般需要先安装 MQTT 代理服务器以 Mosquitto 为例再安装 MQTT 客户端工具。以下是具体的安装步骤安装 Mosquitto MQTT 代理服务器下载Mosquitto访问 Mosquitto 的官方下载页面Download | Eclipse Mosquitto选择适用于 Windows 的安装包.exe 文件建议下载最新的稳定版本。运行安装程序双击下载的安装包按照向导提示进行安装。安装过程中可勾选 Add mosquitto to PATH 选项将 Mosquitto 添加到系统环境变量中。最新版本应该是没有这个选项直接下一步安装即可自动添加系统path。配置 Mosquitto打开安装目录默认路径C:\Program Files\mosquitto。记住这个路径后面有用。编辑mosquitto.conf文件添加或修改以下配置listener 1883 # MQTT默认端口 allow_anonymous true # 允许匿名访问测试环境可用启动 Mosquitto 服务以管理员身份打开命令提示符。执行以下命令启动 Mosquitto 服务net start mosquitto或者sc start mosquitto停止Mosquitto 服务net stop mosquitto #关闭mosquitto服务设置 Mosquitto 服务为自动启动sc config mosquitto start auto其他设置startenable 手动启动startdisable 禁用服务验证 Mosquitto 是否运行sc query mosquittoSERVICE_NAME: mosquitto的信息说明服务已存在检查STATE是否为RUNNING。如果返回[SC] EnumQueryServicesStatus:OpenService FAILED 1060说明服务未注册需要手动注册。​手动注册 Mosquitto 为 Windows 服务如果未自动注册​​mosquitto.exe -v -c C:\Program Files\mosquitto\mosquitto.conf --install-v显示详细日志可选。-c指定 Mosquitto 配置文件路径默认可能是C:\Program Files\mosquitto\mosquitto.conf。--install将 Mosquitto 注册为 Windows 服务。​注意​确保mosquitto.exe在PATH环境变量中或者使用完整路径如C:\Program Files\mosquitto\mosquitto.exe。注意正常安装的话服务都是已经注册的只需要启动mosquitto服务即可。如何卸载 Mosquitto 服务​​mosquitto.exe --remove或sc delete mosquittoMosquitto 设置账号密码Mosquitto 设置密码不是在配置文件中设置而是使用自带了一个工具mosquitto_passwd用于管理用户认证文件默认是password_file创建一个单独的txt文件存储用户名和密码命令mosquitto_passwd -c C:\Program Files\mosquitto\passwords.txt admin1.此命令是在mosquitto根目录中运行,若是任意目录的话需指定完整的mosquitto_passwd路径,如C:\Program Files\mosquitto\mosquitto_passwd.exe -c C:\Program Files\mosquitto\mosquitto_passwd.exe -c C:\mosquitto\passwd username username2.-c 代表创建新文件若是文件重名将覆盖。第二次使用此命令要去到-c.3.C:\Program Files\mosquitto\passwords.txt是密码文件的存放路径可自定义。4.username是你要创建的用户名如admin、mqttuser等。回车就让你输入两次username的密码。添加更多用户可选此方法不需要输入两次密码确认# 使用 -b 参数直接添加用户名和密码无需交互 mosquitto_passwd -b C:\Program Files\mosquitto\passwords.txt user1 your_password_here如何让账号密码生效打开配置文件编辑C:\Program Files\mosquitto\mosquitto.conf添加或修改以下内容# 禁用匿名访问 allow_anonymous false # 指定密码文件路径 password_file C:\Program Files\mosquitto\passwords.txt # 可选启用基于用户和主题的访问控制ACL acl_file C:\Program Files\mosquitto\aclfile.txt配置访问控制列表ACL可选若启用了acl_file需创建aclfile.txt并定义权限# 允许用户 admin 读写所有主题 user admin topic readwrite # # 允许用户 user1 只读某些主题 user user1 topic read sensors/# topic write commands/#重启 Mosquitto 服务net stop mosquitto net start mosquitto常见问题问题问题设置完密码路径之后启动时显示启动成功但是sc query mosquitto查看状态时显示STOPPED。原因Mosquitto 服务运行时使用的账户有权限不足解决办法打开“服务”管理器按下Win R输入services.msc回车。找到MosquittoBroker服务右键选择“属性”。若是没有找到尝试重启电脑试试切换到“登录”选项卡默认情况下服务可能以LocalSystem账户运行。你可以选择“此账户”然后输入一个有足够权限的 Windows 用户账户如你的管理员账户和密码。点击“确定”保存设置并尝试重新启动服务MQTT客户端方法一使用 MQTT.fx图形化客户端下载 MQTT.fx访问 MQTT.fx 官方网站Softblade GmbH - Home of MQTT.fx®下载适用于 Windows 的安装包并安装。配置 MQTT.fx打开 MQTT.fx点击 New Connection 创建新连接。配置连接参数Broker Address:localhost本地 Mosquitto 服务器Broker Port:1883Client ID: 自定义如mqttfx_client点击 Connect 连接到 MQTT 代理服务器。方法二使用命令行客户端可选安装 Eclipse Paho MQTT 客户端通过 pip 安装 Python MQTT 客户端powershellpip install paho-mqtt测试 MQTT 连接发布消息powershellpython -c import paho.mqtt.client as mqtt; client mqtt.Client(); client.connect(localhost, 1883); client.publish(test/topic, Hello, MQTT!)订阅消息powershellpython -c import paho.mqtt.client as mqtt; def on_message(client, userdata, msg): print(msg.topic str(msg.payload)); client mqtt.Client(); client.on_message on_message; client.connect(localhost, 1883); client.subscribe(test/topic); client.loop_forever()验证安装检查 Mosquitto 服务状态在命令提示符中执行powershellnet status mosquitto若显示 已启动则服务正常运行。测试 MQTT 通信使用 MQTT.fx 或命令行客户端发布 / 订阅消息确认能正常通信。通过以上步骤你可以在 Windows 10 上成功安装 MQTT 代理服务器和客户端工具开始进行 MQTT 通信开发或测试。下面是创建的.bat文件放入Mosquitto根目录右键管理员身份运行即可1. 启动 Mosquitto 服务StartMosquitto.batecho off :: 检查是否以管理员身份运行 fltmc nul 21 || (echo 请以管理员身份运行此脚本 pause exit /b 1) :: 切换到Mosquitto安装目录 cd /d C:\Program Files\mosquitto || (echo 目录不存在 pause exit /b 1) :: 启动服务 echo 正在启动Mosquitto服务... net start mosquitto :: 提示结果 if %errorlevel% equ 0 ( echo Mosquitto服务启动成功 ) else ( echo Mosquitto服务启动失败请检查服务是否存在。 ) pause2. 关闭 Mosquitto 服务StopMosquitto.batecho off :: 检查是否以管理员身份运行 fltmc nul 21 || (echo 请以管理员身份运行此脚本 pause exit /b 1) :: 切换到Mosquitto安装目录 cd /d C:\Program Files\mosquitto || (echo 目录不存在 pause exit /b 1) :: 停止服务 echo 正在停止Mosquitto服务... net stop mosquitto :: 提示结果 if %errorlevel% equ 0 ( echo Mosquitto服务停止成功 ) else ( echo Mosquitto服务停止失败请检查服务是否正在运行。 ) pause3. 设置 Mosquitto 开机自启SetAutoStartMosquitto.batecho off :: 检查是否以管理员身份运行 fltmc nul 21 || (echo 请以管理员身份运行此脚本 pause exit /b 1) :: 切换到Mosquitto安装目录 cd /d C:\Program Files\mosquitto || (echo 目录不存在 pause exit /b 1) :: 设置服务开机自启 echo 正在设置Mosquitto服务开机自启... sc config mosquitto start auto :: 提示结果 if %errorlevel% equ 0 ( echo Mosquitto服务已设置为开机自启 ) else ( echo 设置失败请检查服务名称是否正确。 ) pause4. 查询 Mosquitto 运行状态CheckMosquittoStatus.batecho off :: 检查是否以管理员身份运行 fltmc nul 21 || (echo 请以管理员身份运行此脚本 pause exit /b 1) :: 切换到Mosquitto安装目录 cd /d C:\Program Files\mosquitto || (echo 目录不存在 pause exit /b 1) :: 查询服务状态 echo 正在查询Mosquitto服务状态... sc query mosquitto :: 简化状态提示可选 if %errorlevel% equ 0 ( echo 服务状态查询成功 ) else ( echo 服务未安装或无法查询。 ) pause使用说明将上述代码分别保存为 4 个.bat文件如StartMosquitto.bat、StopMosquitto.bat等。必须右键文件选择 “以管理员身份运行”否则会因权限不足执行失败。执行后会显示操作结果按任意键关闭窗口。如果运行时提示 “目录不存在”请检查C:\Program Files\mosquitto是否为你的 Mosquitto 实际安装路径若不同需修改cd /d后的路径。