MQTT服务器连接不上的问题

问题描述

环境:阿里云服务器Ubuntu 22.04.3 LTS,安装mosquitto后,在虚拟机端订阅消息出现报错(以前用阿里云Ubuntu20.04 LTS的服务器装上就能用),以下服务器ip是我乱填的

mosquitto_sub -t /iotstuff -h 129.25.125.124 -p 1883

Error: Connection refused

解决办法

云服务器ECS -> 安全组 -> 安全组详情,看看有没有添加1883端口为白名单,出方向入方向都要配置

在这里插入图片描述

查看服务器的端口占用情况

netstat -lnpt

发现moquitto侦听的ip是127.0.0.1:1883,其中127.0.0.1代表的是本地的局域网ip,如果想要在公网访问是不行的,打开mosquitto.conf文件,设置允许公网访问

listener 1883

允许客户端不需要用户名和密码进行访问

allow_anonymous true

重启mosquitto服务后发现虚拟机端订阅消息就能连上

service mosquitto restart

如果还是连不上,check一下系统防火墙状态

ufw status 		# 查看防火墙状态
ufw add 1883 	# 添加1883端口到白名单

参考

mosquitto.conf man page | Eclipse Mosquitto

MQTT客户端无法连接MQTT服务器时,可能有多种原因导致。下面是一些常见的解决方法: 1. 检查网络连接:确保客户端与MQTT服务器之间的网络连接正常。可以使用ping命令或其他网络工具测试连接。 2. 检查服务器地址和端口:确认客户端代码中配置的MQTT服务器地址和端口号是否正确。确保它们与实际的服务器配置相匹配。 3. 检查客户端身份验证信息:如果MQTT服务器要求身份验证,确保客户端代码中提供了正确的用户名和密码。 4. 检查TLS/SSL配置:如果MQTT服务器启用了TLS/SSL加密连接,确保客户端代码中的TLS/SSL配置正确,并且证书文件可用。 5. 检查防火墙和网络代理:如果使用了防火墙或网络代理,确保它们允许MQTT流量通过。有时候需要在防火墙或代理服务器上进行配置。 6. 检查MQTT服务器状态:确认MQTT服务器正在运行,并且监听指定的端口。可以查看服务器的日志文件或使用一些监控工具来确认服务状态。 7. 使用其他MQTT客户端工具进行测试:尝试使用其他MQTT客户端工具(如MQTT.fx、mosquitto_sub/mosquitto_pub等)连接到同一台MQTT服务器,以确定是客户端代码还是服务器配置的问题。 如果以上方法都无法解决问题,可以进一步查看MQTT客户端的日志或错误信息,以及MQTT服务器的日志,以获取更多的调试信息。另外,也可以参考MQTT协议的规范文档或向相关技术支持寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下里巴人hywing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值