【问题标题】:Unable to connect moquitto broker from VM to Host machine无法将 mosquitto 代理从 VM 连接到主机
【发布时间】:2021-09-22 00:49:21
【问题描述】:

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

Ubuntu:

【问题讨论】:

  • 请不要发布错误消息的图片 - 请参阅 how to ask。您似乎在 Windows 10 和 ubuntu 上都运行 Mosquitto(带有清晰可见的警告,例如“使用默认配置”、“仅在本地模式下启动”、“错误:地址已在使用中”)。通常,您将运行 Mosquitto 的单个实例(除非使用 bridge,这里似乎不是这种情况) - 从一个实例开始并尝试使用 mosquitto_pub 进行连接。

标签: mqtt mosquitto


【解决方案1】:

首先

在命令行上手动启动 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 机器上的(正确配置的)代理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多