我正在运行 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/