55 Ubuntu搭建mosquitto并使用MQTT.fx测试问题记录
Posted Chasing_Chasing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 - 程序员大本营
以上是关于55 Ubuntu搭建mosquitto并使用MQTT.fx测试问题记录的主要内容,如果未能解决你的问题,请参考以下文章
如何在Ubuntu 16上搭建sock5代理服务器,如何实现用户名和密码的设置以防止被别人使用?