尝试从远程机器连接时MQTT连接被拒绝



我正在尝试跨linux客户端连接到一个蚊到代理。我可以从本地机器获得所有工作,但当尝试从另一台机器连接时,我得到错误ConnectionRefusedError: [Error 111] Connection refused.

过程如下:在本地机器上,我安装了大多数quitto,停止服务并启动一个活动实例:

#Terminal 1
sudo service mosquitto stop
mosquitto

然后我尝试在那台机器上的不同终端上发布和订阅:

#Terminal 2
mosquitto_sub -t 'test'
#Terminal 1 shows new connection
#Terminal 3
mosquitto_pub -t 'test' -m 'Hello, world!'
#Terminal 1 shows new connection, and then disconnect.
#Terminal 2 shows 'Hello, world!'

我现在尝试从远程机器连接。首先,我编辑蚊子配置文件,允许未经授权的连接:

sudo nano /etc/mosquitto/mosquitto.conf
#Add the following:
listener 1883
allow_anonymous true
protocol mqtt

我注意到蚊子日志以前只显示允许的本地连接,在编辑配置文件并重新启动后,日志不再显示该消息。

然后我在另一台机器上安装paho-mqtt。我运行以下python脚本:

import paho.mqtt.client as mqtt
client = mqtt.Client('131')
client.connect('192.168.0.146') #The IP of machine 1, running the broker where the code above ran correctly across the terminals

我得到上面提到的错误:ConnectionRefusedError: [Error 111] Connection refused。机器1上的蚊子实例没有显示任何内容。日志没有显示。

我不知道发生了什么事。我已经阅读了所有我能找到的问题。没有什么比更改配置文件更重要的了。我已经尝试在两台机器(笔记本电脑和pi)上运行代理。我试过从多个不同的来源连接:esp32板,不同的笔记本电脑和pi。没有什么工作。我只能假设有一些网络范围的问题,但是我的网络并没有隔离设备,因为我总是ssh到我的pi上,并且在LAN上运行wifi灯和开关。

如果有人能帮我排除故障,我将非常感激。

mosquito将不会拾取默认配置文件,您必须始终使用-c命令行参数传递配置文件,否则它将回落到内置配置(仅在本地主机上侦听)

服务包含-c /etc/mosquitto/mosquitto.conf强制使用配置文件。

最新更新