mqtt - 无法将 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:
Ubuntu:
解决方案
首先
在命令行上手动启动 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 机器上的(正确配置的)代理。
推荐阅读
- php - 在 WooCommerce 购物车项目上为特定产品类别添加正文类
- ubuntu - curl 选项 -: 未知
- python - 如何在字典中循环提取值?
- ruby-on-rails - Rails Net:Http json 编码问题
- python - 从列中提取所有时间元素
- asp.net - MSBuild 不能同时使用 /p:Configuration=Release 和 -p:Configuration=Debug 进行编译
- meteor - Aframe + Meteor - 向实体添加条件自定义组件
- r - How can assign an offset term in coxph function in R, which later can be used in the "mstate" package?
- c# - Push notification received, but app closes
- c++ - How can I use a stack to validate if an expression or assignment with BNF in C++?