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

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 - 程序员大本营

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MQTT.fx是一个用于调试和测试MQTT协议的工具,可以用来连接和交互Mosquitto搭建MQTT服务。下面是使用MQTT.fx调试Mosquitto的步骤: 1. 下载和安装MQTT.fx:首先,你需要从MQTT.fx官方网站下载并安装MQTT.fx工具。 2. 打开MQTT.fx:安装完成后,打开MQTT.fx应用程序。 3. 配置连接参数:在MQTT.fx的主界面上,点击左上角的"新增连接"按钮,弹出连接配置窗口。 4. 配置连接参数:在连接配置窗口中,填写以下参数: - Connection Name: 连接名称,可以自定义。 - Broker Address: Mosquitto服务器的地址,可以是IP地址或域名。 - Port: Mosquitto服务器的端口,默认为1883。 - Client ID: 客户端ID,可以自定义。 - Username: 如果Mosquitto服务器需要用户名认证,填写对应的用户名。 - Password: 如果Mosquitto服务器需要密码认证,填写对应的密码。 5. 连接Mosquitto服务器:填写完连接参数后,点击"连接"按钮,连接Mosquitto服务器。 6. 订阅主题:在MQTT.fx的主界面上,点击左下角的"新增订阅"按钮,弹出订阅配置窗口。 7. 配置订阅参数:在订阅配置窗口中,填写以下参数: - Topic: 要订阅的主题名称。 - QoS: 消息的服务质量等级,默认为0。 8. 订阅主题:填写完订阅参数后,点击"订阅"按钮,开始订阅指定主题。 9. 发布消息:在MQTT.fx的主界面上,点击右下角的"新增发布"按钮,弹出发布配置窗口。 10. 配置发布参数:在发布配置窗口中,填写以下参数: - Topic: 要发布消息的主题名称。 - QoS: 消息的服务质量等级,默认为0。 - Message: 要发布的消息内容。 11. 发布消息:填写完发布参数后,点击"发布"按钮,将消息发布到指定主题。 12. 查看消息:在MQTT.fx的主界面上,可以看到已经订阅的主题和接收到的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值