日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于安全隧道的設備遠程訪問本地代理

部分物聯網設備基于安全的考慮或因部署于私有網絡內部,是無法在外網直接訪問設備上的服務的。物聯網平臺提供設備安全隧道產品功能,助您建立雙向安全的通信鏈路,您可基于該通信鏈路實現對設備的遠程訪問、遠程診斷和管理等功能。

背景信息

通過物聯網平臺的安全隧道功能,您可基于訪問端代理對設備本地服務進行遠程訪問。例如SSH登錄、RDP遠程桌面控制,或設備已有的其他服務。

安全隧道的使用場景和使用說明的更多介紹,請參見安全隧道概述

本文以Linux系統設備為例,為您介紹基于訪問端代理實現對設備本地服務訪問的方案。

本文示例中的安全隧道通過控制臺頁面手動創建,您可以參考本文示例中訪問端代理方式,自行開發并集成阿里云物聯網平臺的云端API,設計應用程序自動請求創建安全隧道。

原理說明

本文示例中展示了訪問Linux系統設備的SSH服務。具體原理如下圖所示:原理圖

使用說明

原理圖中步驟說明如下:

步驟

說明

1、2、3

請參見下文設備端開發創建安全隧道,配置并啟動設備端,創建安全隧道。創建安全隧道后,設備端會收到隧道建連通知并自動連接至物聯網平臺的服務端。

4

請參見下文訪問端代理服務開發(Java)訪問端代理服務開發(Go),配置并啟動訪問端代理。啟動訪問端代理后,代理會以安全隧道訪問端的身份連接至物聯網平臺的服務端。

5、6、7、8、9、10

請參見下文通過本地代理遠程訪問設備,通過執行SSH命令連接至訪問端代理。此時代理內部會執行會話(Session)創建流程。

Session創建成功后,SSH客戶端的數據和設備端SSHD的數據會在安全隧道的該Session中傳遞,您后續便可進行設備的遠程訪問。

設備端開發

準備工作

  • 獲取設備認證信息

    本示例以一機一密認證方式為例,獲取信息如下:

    {
      "ProductKey": "a1WvA***",
      "DeviceName": "device2",
      "DeviceSecret": "ff01e59d***ba2ca2b17"
    }
  • 獲取C Link SDK

    定制SDK時,在SDK定制頁面的高級能力區域,選中遠程登錄,集成包含安全隧道功能的設備端SDK。

  • 準備開發環境

    本文示例使用Linux系統開發環境,需在端口號22啟動SSH服務進程SSHD。

    重要

    本示例中訪問端遠程訪問設備進行數據通信需依賴SSHD服務,因此必須完成SSHD服務配置并啟動。

啟動設備端例程

  1. 解壓獲取的SDK壓縮包,在C Link SDK中的Demo文件LinkSDK./demos/remote_access_basic_demo.c中完成以下配置并保存。設備端C Link SDK開發更多內容,請參見C Link SDK概述

    • 將設備證書信息替換為已獲取的測試設備的證書信息。

    • 將設備接入的mqtt_host值替換為當前設備所屬企業版實例的MQTT接入地址。

    • 在服務列表中增加CUSTOM_SSH服務的配置,原_SSH服務不可刪除。

    配置信息如下圖所示。

    設備SDK
  2. 登錄Linux虛擬機,將上一步驟中已修改完成的LinkSDK文件,上傳至Linux虛擬機的開發環境。

  3. 在SDK根目錄/LinkSDK下,執行make命令,完成樣例程序的編譯,然后運行樣例文件。

    ./output/remote-access-basic-demo
  4. 查看運行日志,顯示如下信息,表示設備正常在線且安全隧道SDK正常啟動。啟動成功

  5. 登錄物聯網平臺控制臺,進入企業版實例頁面,在左側導航欄選擇設備管理 > 設備,找到目標設備,確認設備狀態為在線設備在線

創建安全隧道

按照以下操作,在物聯網平臺控制臺添加目標設備的安全隧道。您也可調用物聯網平臺云端API CreateDeviceTunnel創建安全隧道,使用說明,請參見云端SDK

  1. 登錄物聯網平臺控制臺

  2. 實例概覽頁面,單擊目標企業版實例,進入實例詳情頁面。

  3. 在左側導航欄選擇監控運維>安全隧道

  4. 安全隧道頁面,單擊創建安全隧道

  5. 在創建隧道對話框,設置以下參數,單擊確認安全隧道

  6. 在彈出的對話框中,單擊一鍵復制,保存安全隧道ID、訪問端Token和URL信息。安全隧道信息

    安全隧道創建成功后,設備端會收到建連通知,安全隧道的SDK會使用該建連通知中的信息與物聯網平臺建立WebSocket連接。消息如下:設備連接安全隧道

    物聯網平臺控制臺的監控運維>安全隧道頁面,顯示安全隧道已打開,設備端已連接設備連接成功

訪問端代理服務開發(Java)

準備工作

  • 下載訪問端代理服務的示例代碼。詳細內容,請參見alibabacloud-iot-java-demo

  • 準備開發環境。本文使用Java開發環境,具體如下:

啟動訪問端代理例程

  1. 解壓已下載的示例代碼包。

  2. 打開IntelliJ IDEA,導入解壓后的示例工程。

  3. 在com.aliyun.iotx.lp.demo.secure.tunnel.source.proxy下SourceProxyStarter.java文件中,配置已保存的安全隧道ID、訪問端Token和URL值。

    在訪問端代理的SourceProxyStarter類中,默認配置的ServiceType為CUSTOM_SSH,對應本地代理默認的端口為6422。本示例使用默認配置,實際業務場景中,您也可根據需要在SourceProxyStarter類中進行修改。代理程序

  4. 運行SourceProxyStarter.java示例代碼,啟動訪問端代理的主程序后,該程序會使用配置的訪問端建連信息與物聯網平臺建立WebSocket連接,并等待服務訪問端的建連請求。運行日志如下圖。代理程序啟動

訪問端代理服務開發(Go)

準備工作

  • 下載訪問端代理服務的示例代碼。詳細內容,請參見alibabacloud-iot-go-demo

  • 安裝Go開發環境。請訪問Go官網獲取。

    說明

    Go語言示例代碼的編譯運行還需要軟件GCC,請在本地系統安裝GCC

啟動訪問端代理例程

  1. 解壓已下載的示例代碼包。

  2. 使用已安裝的語言開發環境編譯運行\src\aliyun.com\iot\securetunnel\main.go文件,啟動代理程序。

  3. 啟動代理程序成功后,在彈出的代理軟件窗口,輸入一鍵復制保存的設備安全隧道信息。

    在代理軟件中,默認配置的ServiceType為CUSTOM_SSH,對應LocalProxyPort默認為6421。本示例使用ServiceType默認配置,LocalProxyPort修改為6422,實際業務場景中,您也可根據需要進行修改。

    ServiceType需要確保在設備端SDK側已經配置,LocalProxyPort需要為本地未被使用的端口。代理軟件

  4. 在代理軟件界面單擊start,啟動訪問端代理的主程序后,該程序會使用配置的訪問端建連信息與物聯網平臺建立WebSocket連接,并等待服務訪問端的建連請求。運行日志如下圖。

    代理端運行連接
說明

您可依賴Go語言的打包能力,生成您所用操作系統的可運行程序,方便后續使用或分發給其他用戶使用。

通過本地代理遠程訪問設備

訪問端代理程序啟動成功后,可通過以下方式,實現設備的遠程訪問。

以Windows 10 64位系統下SSH至Linux系統設備為例:打開本地CMD命令窗口,輸入ssh root@localhost -p 6422命令,按回車鍵,即可登錄設備。截圖如下:

  • CMD窗口登錄:

    登錄
  • 服務端的建連請求日志:

    • Java

      服務端
    • Go

      Go請求連接
  • 設備端響應日志:

    設備端