如何连接到Azure托管的虚拟机上安装的mosquitto代理?

时间:2019-03-26 06:41:36

标签: azure-virtual-machine mosquitto

我已在端口1883的虚拟机上安装了mosquitto代理。此虚拟机托管在azure云上。要访问此代理,我已通过添加入站规则打开了端口。但仍然无法发布到此mosquitto来自外部网络的经纪人。

我通过允许端口1883允许来自外部网络的访问来添加入站规则

string ClientId = new Guid().ToString();
client = new MqttClient("104.211.219.200", 1883, false, null);
client.Connect(ClientId);
client.Publish("local", Encoding.UTF8.GetBytes("Message from local PC"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);

1 个答案:

答案 0 :(得分:0)

根据您的描述,根据我的经验,我认为您的蚊子现在不起作用是由于未为VM网络接口添加NSG规则以允许来自端口1883的入站请求。

这是我在Azure Windows VM上安装mosquitto服务器的步骤。希望对您有所帮助。

  1. 在Azure门户上,使用Windows 2012 R2数据中心创建Windows VM。
  2. 启用标签Just-in-time access中的Configuration功能,然后下载RDP文件以访问此VM。

    Check this Visualization

  3. 我将mosquitto服务器安装文件(x64发行版,它来自enter image description here)上传到Windows VM,然后尝试安装。

    https://mosquitto.org/download/

  4. 我遇到了一个有关缺少VCRUNTIME140.dll的问题,然后安装了VC ++ 2015发行版安装程序(来自enter image description here)来进行修复。

  5. 然后,我在mosquitto路径上打开一个命令窗口并运行它。

    https://www.microsoft.com/en-us/download/details.aspx?id=48145 enter image description here

  6. 将入站规则添加到Windows Firewall with Advanced Security中。它允许来自Windows上端口1883的请求。 enter image description here

  7. 在NSG网络接口中添加入站规则,以允许来自Azure VNET上端口1883的请求。 enter image description here enter image description here

  8. 我正在使用MQTT桌面客户端MQTT.fx(来自enter image description here)来测试是否连接,发布和订阅测试消息。

    https://www.hivemq.com/blog/seven-best-mqtt-client-tools/ enter image description here