无法将 moquitto 代理从 VM 连接到主机

时间:2021-07-12 22:12:05

标签: mqtt mosquitto

我想将数据从 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通

Windows 10: Details on windows 10 side

Ubuntu: Details on ubuntu 20.04

1 个答案:

答案 0 :(得分:1)

首先

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

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

在 Ubuntu 上,活动配置文件位于 /etc/mosquitto/mosquitto.conf,仅当您使用 systemd 服务文件时才使用(使用 service mosquitto start 启动服务。

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

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

第二

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