Azure IoT Hub Device Streams-如何優雅的對物聯網設備進行遠程維護

IoT 中心設備流 Device Streams

 

本文介紹:

Azure IoT Hub  設備流(device streams) 基本概念;

案例1使用設備流“穿透”防火牆進行遠程桌面連接(RDP3389或SSH22);

案例2使用設備流“穿透”防火牆配置設備側web

 

視頻介紹:

 

您可以在B站觀看視頻介紹:https://www.bilibili.com/video/BV1QC4y1H7uG/

或在本站觀看:

device stream-如何優雅的遠程維護物聯網設備

 

 

圖文介紹:

Azure IoT 中心設備流(device streams) 爲IoT device 和 Service 之間建立一個安全的雙向TCP通道,原理是設備和服務均利用IOT 中心的 流式處理終結點作爲代理,在無需配置防火牆的情況下(即官網所謂的防火牆友好方式),實現雙向通訊。

 

此功能在設備處於企業內網或者局域網的時候,非常有用,基本上基於TCP的通訊都可以使用,本文演示Windows 系統的RDP遠程桌面登錄,對於linux 的ssh 也是可以進行測試的。

 

設備側需打開443端口,以實現設備到IOT Hub的流式處理終結點的TCP 連接。 建立設備流後,服務端和設備端應用程序將通過 WebSocket進行通信。

 

優點:

IoT 中心設備流具有以下優點:

  • 防火牆友好的安全連接:設備側只需要打開443出站端口即可(僅需要端口 443 上到 IoT 中心的出站連接)。

  • 身份驗證: 設備和服務端均通過 IoT 中心進行身份驗證。

  • 加密: 默認情況下,IoT 中心設備流使用啓用了 TLS 的連接。 

  • 與 TCP/IP 兼容性: IoT 中心設備流可以接納 TCP/IP 應用程序流量。

  • 專用網絡設置下的易用性: 服務可以通過引用設備 ID(而不是設備的 IP 地址)與設備通信。 

 

示例:

 

本例子參考文檔:https://docs.microsoft.com/zh-cn/azure/iot-hub/iot-hub-device-streams-overview

本例中設備側和服務側均採用C#語言(注意,設備側C語言SDK也是支持的),參考示例代碼如下:https://github.com/Azure-Samples/azure-iot-samples-csharp/archive/master.zip

本例子的windows device 和 Servcie 側需要安裝.NET SDK, 下載連接:https://dotnet.microsoft.com/download/dotnet-core/2.1

 

本文示例與下圖類似,但我們把Device 換成了windows device,這樣對應的22端口和SSH要變更爲 3389 和RDP遠程桌面連接。

 

本示例種支持的區域有:(截止到2020.05.18,只在global如下區域支持:)

目前僅以下區域中創建的 IoT 中心支持設備流預覽:

  • 美國中部
  • 美國中部 EUAP
  • 東南亞
  • 北歐

 

重點步驟:

創建在上述區域中創建IoT Hub和一臺windows 10的 虛擬機作爲Device 使用,本例中選擇離我們較近的東南亞區域:

 

注意IoT Hub中的流式處理終結點,此處無需做配置,只需知道這個參數即可:

 

在IoT Hub中創建一個設備:

 

登錄虛擬機中,安裝.NET CORE SDK:

 

 

案例1,使用設備流“穿透防火牆”打開遠程桌面:

 

在設備側下載並運行示例代碼,代碼路徑如下:

 

設備側依次運行 :

dotnet build
dotnet run {DeviceConnectionString} localhost 3389

 

設備側如下圖所示:

 

服務側下載同樣的代碼並在服務側使用如下代碼:

在服務側依次運行如下代碼:

dotnet build
dotnet run {ServiceConnectionString} {your-Device-id} 2222

 

服務側示例如下:

 

在本地打開RDP 進行遠程登錄:

如下圖,使用localhost:2222連接成功:

 

案例2,使用設備流“穿透防火牆”打開設備配置頁面:

 

通過Device Streams 打開設備/系統配置頁面:

在虛擬機中部署了一個靜態網站並使用8090端口訪問,如下圖所示:

在服務側(本地)運行服務側代理程序後,通過localhost:2222的形式即可訪問設備中的配置頁面:

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章