55 Ubuntu搭建mosquitto并使用MQTT.fx测试问题记录

本文记录了在Ubuntu虚拟机中安装和配置MQTT服务器的过程,以及遇到的Windows MQTT.fx客户端无法连接的问题。问题在于mosquitto默认监听回环IP,而非虚拟机IP。解决方案是修改mosquitto配置文件,指定监听虚拟机IP。同时,文章提到了密码文件和ACL文件的配置,用于用户认证和权限控制。最终成功连接MQTT服务器,并分享了配置文件内容和MQTT.fx客户端的参数设置。
摘要由CSDN通过智能技术生成

55.1 引言

今天在搞mqtt服务器,因为电脑装了一台Ubuntu虚拟机,所以就在Ubuntu搭建了,然后通过MQTT.fx 1.7.1客户端进行测试,想法很美好。但作为新人,很多东西不熟悉,所以这遇到一个问题,耽误了几个小时,后面经过各种测试才发现问题。

55.2 问题

我遇到的问题是已经在Ubuntu上搭建好mqtt服务器,但是在windows下的MQTT.fx客户端死活连不上,开始以为是配置问题,防火墙问题,后面经过查找果真是配置问题。

原因是Ubuntu安装mosquitto后,其默认的监听ip为回环ip的1883端口,但我windows跟虚拟机时两台主机共一个网段,windows只能访问到虚拟机的IP,但mosquitto服务器监听的不是虚拟机的IP,所以很荣幸连接不上,然后浪费几小时。

后面经过检验和查找,发现mosquitto默认监听了回环IP的端口,所以需要指定mosquitto监听虚拟机的IP和端口就好了。

最后附上我mosquitto的配置文件内容。

配置文件:mosquitto.conf

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

# 消息持久存储
persistence true
persistence_location /var/lib/mosquitto/

# 日志文件

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

allow_anonymous false

password_file /etc/mosquitto/pwfile

acl_file /etc/mosquitto/aclfile

# 在这里指定监听服务器主机的IP和端口---我就是卡在这里的
listener 1883 192.168.0.103  

认证配置文件:pwfile

sudo touch /etc/mosquitto/pwfile
sudo mosquitto_passwd /etc/mosquitto/pwfile admin 

执行上述指令后,需要输入两次密码,这是MQTT.fx客户端用来登录MQTT服务器用的,用户名和密码。

用户权限配置文件:aclfile

#user1只能发布以test为前缀的主题,订阅以$SYS开头的主题即系统主题
user lilei
topic write test/#
topic read $SYS/#

#user2只能订阅以test为前缀的主题
user hanmeimei
topic read test/#

该文件作用是,用以指定用户能订阅和发布的能力,这个文件是在找问题的时候参考别人的。

成功页面:

另外,在刚开始的时候,对MQTT.fx参数填页面中的ClientID这个选项挺疑惑,不知要填什么,这个的含义应该是,区别不同主体,即每个人的身份证一样,如果服务器没有限定格式,我们随便填只要唯一就行。

 最后,感谢大佬之前的文章,他们写的很详细,细节内容可以查看我参考的文章,链接如下:

文章链接:

在Ubuntu上安装和使用基于MQTT协议的代理服务器Mosquitto - 程序员大本营

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值