首页 > 解决方案 > 无法将 moquitto 代理从 VM 连接到主机

问题描述

我想将数据从 Ubuntu VM 发布到 Windows 10 主机。

在 Ubuntu VM 端,我在 /usr/share/doc/mosquitto/examples 路径中编辑了 mosquitto.conf 文件,并进行了提到的更改

> allow_anonymous true
>  bind_address 0.0.0.0 / ::

> listener 1883 172.16.1.153 (IP of my host machine)

我在 C:\Program Files\mosquitto 的主机上编辑了 mosquitto.conf,并进行了以下更改

> listener 1883 172.16.1.219

> allow_anonymous true

我仍然无法连接到远程服务器。

PS:我可以从两台机器上 ping

视窗 10: Windows 10 侧面的详细信息

Ubuntu: 关于 ubuntu 20.04 的详细信息

标签: mqttmosquitto

解决方案


首先

在命令行上手动启动 mosquitto 不会读取任何配置文件,除非使用-c参数明确告知。例如

mosquitto -c /usr/share/doc/mosquitto/examples/mosquitto.conf`

在 Ubuntu 上/etc/mosquitto/mosquitto.conf,如果您使用 systemd 服务文件(使用service mosquitto start.

同样在 Windows 上,C:\Program Files\mosquitto\mosquitto.conf只有在将 mosquitto 作为 Windows 服务运行时,才会默认读取其中的配置文件。只在命令行上运行它而不指定配置文件只会加载内置的默认值。

地址已经在使用错误意味着您已经在两台机器上运行 mosquitto 实例作为服务,并且可能需要重新启动这些服务以获取对配置文件的更改(假设您在 Ubuntu 上编辑正确的文件)

第二

如果您只想将消息发布到主机,则无需在 Ubuntu VM 上运行 mosquitto 代理的实例。您可以只使用 MQTT 客户端并直接发布到 Windows 机器上的(正确配置的)代理。


推荐阅读