我正在尝试跨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上的蚊子实例没有显示任何内容。日志没有显示。
如果有人能帮我排除故障,我将非常感激。
mosquito将不会拾取默认配置文件,您必须始终使用-c
命令行参数传递配置文件,否则它将回落到内置配置(仅在本地主机上侦听)
服务包含-c /etc/mosquitto/mosquitto.conf
强制使用配置文件。