MQTTX Error: connect ECONNREFUSED (MQTT抓包)

1.前言

最近需要抓MQTT的包,就直接去弄mqtt的服务器还有其他相关的东西了。

具体可以看这篇文章:

在Ubuntu上自建MQTT服务器_ubuntu mqtt-CSDN博客

当然,我用的不是虚拟机,系统是Ubuntu22.04。

直接弄得步骤3,顺利安装成功。在这之前,有找过一个mosquitto 的包,之前我在虚拟机可以正常下载的,结果在这台电脑上不行,不知道为什么

当时安装的时候报的错:

collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:39:mosquitto_rr] 错误 1
make[1]: 离开目录“/home/lq/Lian/mqtt/mosquitto-1.6.3/client”
make: *** [Makefile:59:mosquitto] 错误 2

之后找了好久,有说是配置的包不全的,但是安装配置包之后,还是不行,就放弃了。

如果要安装,可以试试链接中的方法,我是顺利安成功了。

2.测试

之后试了步骤四,也是顺利抓到包了,不过想到弄都弄了,就把这些相关的东西都安装上吧,免得以后用的时候还需要再安,所以安装了MQTTX.

它是有Ubuntu适用的版本的,我的系统适用如图:

下载后就可以使用了,在设置中可以改成中文。

3.Error: connect ECONNREFUSED

点击连接后,发现有这个错误

找了好久,都没有解决,最后将地址改成 127.0.0.1 发现竟然可以了,之前的地址也是我的本机地址啊,不知道为什么不行,有人可以解惑吗?

4.代码部分

也是服务器地址修改成 127.0.0.1

还是上面那个问题,192.168.的本机地址会报错

报错如图,遮盖的是我的文件路径,不影响看:

这点东西弄了我一个上午,不过还好顺利解决了,记录一下。

5.MQTT包类型

哦,对了,此处MQTT版本的选择可以决定你抓得是具体是MQTT的哪种包。

当您遇到 `Error: connect ECONNREFUSED` 错误,这意味着您的程序尝试连接到指定的 MQTT 服务器 (10.149.235.142:61613) 时,连接被拒绝。这通常表示以下几个可能的问题: 1. **服务器不可达或网络问题**:服务器可能暂时宕机、网络中断或者IP地址/端口配置错误。 2. **防火墙或安全组设置**:如果该服务器在您的网络中受到防火墙保护,可能会阻止外部连接。检查防火墙规则是否允许来自您客户端的连接。 3. **权限问题**:如果您不是服务器的管理员或者客户端认证设置不正确,也可能导致连接失败。 4. **连接超时**:如果服务器响应时间过长,也可能触发 ECONNREFUSED 错误,确认网络延迟和连接超时设置。 5. **库或客户端配置错误**:确保您使用的 MQTT 客户端库(如 mqttx)配置正确,包括服务器地址、端口号、用户名和密码(如果有)。 为了解决这个问题,您可以采取以下步骤: - **检查网络连接**:确保您的设备能够正常访问目标 IP 地址。 - **核实服务器状态**:登录到服务器或联系运维人员确认服务是否运行正常。 - **调整客户端设置**:确认 mqttx 的连接参数无误,并检查是否有适当的重试机制或错误处理逻辑。 - **检查日志**:查看 mqttx 的日志输出,寻找更多关于连接失败的详细信息。 - **使用ping测试**:尝试使用 ping 命令检查服务器的可达性。 相关问题: 1. 这种错误如何排查是网络问题还是服务器问题? 2. 如何在客户端代码中设置合理的重试和超时机制? 3. 如果服务器需要认证,应该如何配置 mqttx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值