azure - 在 VM 上配置 Mosquitto 连接到 Azure WebApp

标签 azure mqtt ubuntu-18.04 node-red mosquitto

我正在运行 Ubuntu (v18.04.1) 的 Azure 虚拟机上运行 MQTT mosquitto 代理 (v.1.4.15)。我的目标是将多个微 Controller 连接到代理。为了远程监视和控制微 Controller ,我设置了一个运行 Node-RED 的 Azure WebApp。我正在尝试在网络应用程序和经纪人之间建立连接。为了正确配置 Mosquitto,我使用 this tutorial来自 digital ocean 。但是,因为我对这部分工作不熟悉(通常在嵌入式系统上工作),所以我尝试首先在没有 SSL 的情况下建立连接进行测试,然后添加 SSL。

我有密码保护的 mosquitto,并且能够在本地主机上的测试主题上发布和订阅(在 VM 终端上使用以下命令)

$ mosquitto_pub -h localhost -t "test" -m "message" -u "user" -P "password"
$ mosquitto_sub -h localhost -t "test" -u "user" -P "password"

我还配置了 mosquitto 来监听虚拟机上的端口 8883: /etc/mosquitto/conf.d/default.conf

allow_anonymous false
password_file /etc/mosquitto/passwd

listener 1883 localhost

listener 8883

最后,我更新了虚拟机上的防火墙以允许连接到端口 8883。

$ sudo ufw allow 8883

但是,当我尝试将 Node-RED 上的 WebApp 上的 MQTT 节点连接到代理时,状态仍保持“正在连接”。除了在 WebApp 上(也许通过 cmd 提示符)之​​外,还有其他方法可以测试这个吗?还是我错过了一些东西?

此外,重新启动 mosquitto 时(编辑配置文件和 ufw 后)并运行 mosquitto:

$ sudo systemctl restart mosquitto
$ mosquitto

我从终端收到以下消息,表明 mosquitto 仅监听端口 1883。

1610290040: mosquitto version 1.4.15 (build date Tue, 18 Jun 2019 11:42:22 -0300) starting
1610290040: Using default config.
1610290040: Opening ipv4 listen socket on port 1883.
1610290040: Error: Address already in use

最佳答案

跟进第一条评论。

您需要在 Azure 门户以及 ufw 中打开端口

详细信息可在此处找到:

https://learn.microsoft.com/en-us/azure/virtual-machines/windows/nsg-quickstart-portal

关于azure - 在 VM 上配置 Mosquitto 连接到 Azure WebApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65653434/

相关文章:

azure - 在不使用 Visual Studio 的情况下将计划的 Web 作业部署到 Azure Web 应用程序

azure - 如何访问我的 Azure Functions 日志?

bash - CPU使用率超过N%时如何重启服务?

docker - 从docker启动docker-无法连接到守护进程

c++ - ALSA 的 snd_pcm_get_chmap 在 Ubuntu 18.04 上的默认设备(脉冲)上始终返回 NULL

azure - ARM 模板中有什么方法可以使用类似 Case 的语句吗?

azure - 添加对 Azure Blob 存储的 nlog 支持后,Xamarin 版本构建失败

java - Android - 一旦网络连接发生变化(移动数据禁用并再次启用),Paho Mqtt 客户端不接收消息

python - 每 10 秒发布一次 MQTT 消息...并在需要时重新连接

architecture - 使用 mqtt 协议(protocol)和 kafka 作为消息代理