You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Paho-MQTT遇ConnectionRefusedError: [WinError 10061]错误求助

解决MQTT连接被拒绝(WinError 10061)的方法

为啥会出这错?

这个错误说白了就是你电脑上的localhost:1883端口压根没跑MQTT broker服务,或者服务没监听这个端口,所以连接请求直接被打回来了。

一步步解决

  • 先装个MQTT broker并启动
    常用的开源broker有EMQX、Mosquitto,得先装上其中一个:

    • 要是用Mosquitto:装完找到安装目录(比如C:\Program Files\mosquitto),开命令行跑mosquitto.exe就能启动,或者去系统服务列表里找到Mosquitto服务手动开启。
    • 要是用EMQX:装完通过启动脚本或者服务管理工具把它开起来就行。
  • 核对broker的监听端口
    MQTT默认端口是1883,但要是改了配置文件,得确保端口和你脚本里的一致。比如Mosquitto的mosquitto.conf里的listener项,得确认是1883而且没被注释掉。

  • 看看1883端口有没有被占
    开命令提示符,敲netstat -ano | findstr :1883,要是没输出,说明这端口没程序监听;要是有其他进程占了,要么停掉那个进程,要么改broker的监听端口,同时把脚本里的端口号也改了。

  • 给脚本加个连接反馈(更方便排查)
    你原来的脚本只调用了connect,加个回调和循环能清楚看到连接状态:

    import paho.mqtt.client as mqtt
    
    def on_connect(client, userdata, flags, rc):
        if rc == 0:
            print("连接成功")
        else:
            print(f"连接失败,错误码: {rc}")
    
    client = mqtt.Client("Clientus")
    client.on_connect = on_connect
    client.connect("localhost", 1883, 60)
    client.loop_forever()
    

    错误码能帮你进一步定位问题,比如rc=3是协议版本不匹配,rc=5是用户名密码错了之类的。

  • 检查防火墙
    Windows防火墙可能把1883端口的连接挡住了,要么给MQTT broker程序加个防火墙允许规则,要么临时关了防火墙试试能不能连上。

内容的提问来源于stack exchange,提问作者Marwans200

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:01:16