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

遠程登錄

您可使用遠程登錄功能,通過SSH協議的網絡服務遠程訪問設備,在設備遠程控制臺輸入設備的指令,進行調試和定位問題。本文介紹如何使用遠程登錄功能。

前提條件

使用流程

如下功能時序圖,以設備的應用程序demos/tunnel_remote_access_demo.c為例,介紹設備實現遠程登錄的使用流程。

aiot

步驟1:初始化設備

  1. 創建設備句柄,并將設備連接上云。

     /* 初始化設備,并將設備連接上云 */
        device = demo_device_init(product_key, device_name, device_secret, host, port);
        if(device == NULL) {
            printf("demo device connect failed\r\n");
        }
  2. 設置監聽隧道開關的回調函數。

    /* 設置隧道開關消息回調 */
        aiot_device_ts_set_callback(device, demo_tunnel_switch_callback, NULL);

步驟2:獲取隧道登錄信息

  • 方式一:在控制臺開啟遠程登錄。具體操作,請參見手動開啟遠程登錄

  • 方式二:設備主動請求遠程登錄。

        /* 主動請求隧道信息 */
        aiot_device_tunnel_request(device);
說明

大部分場景下,使用方式一按需開啟遠程登錄進行設備運維。但設備在業務故障導致無法在控制臺開啟遠程登錄進行設備運維,設備可以定時主動請求最新的隧道登錄信息,將隧道功能運行在獨立進程中,保證當業務故障時隧道仍在運行,可以遠程登錄運維。

步驟3:處理隧道信息

處理隧道信息回調函數,創建隧道句柄并更新建連信息。

/* 設備的安全隧道開關模塊回調,處理云端信令 */
static void demo_tunnel_switch_callback(void *device, const aiot_ts_msg_t *ts_msg, void *userdata)
{
    aiot_tunnel_connect_param_t params;
    ....
    if(AIOT_TUNNEL_OPERATOPN_OPEN == ts_msg->operation ||
            AIOT_TUNNEL_OPERATOPN_UPDATE == ts_msg->operation) {
        memset(&params, 0, sizeof(params));
        params.host = ts_msg->host;
        params.port = ts_msg->port;
        params.path = ts_msg->path;
        params.token = ts_msg->token;

        /* 創建并初始化新的隧道 */
        tunnel_handle = aiot_tunnel_init(ts_msg->tunnel_id);
        /* 配置隧道支持的服務 */
        aiot_tunnel_add_proxy_service(tunnel_handle, "_SSH", &ssh_service);
        /* 配置隧道狀態的回調函數 */
        aiot_tunnel_set_event_callback(tunnel_handle, demo_tunnel_event_cb, NULL);
        /* 設置隧道的連接參數 */
        aiot_tunnel_set_connect_params(tunnel_handle, &params);

        /* 回調函數中不能長時間阻塞,在主函數中完成建連 */
    }
}

參數說明如下表所示。

參數

說明

operation

操作類型:

  • AIOT_TUNNEL_OPERATOPN_UPDATE:主動請求隧道的回復 。

  • AIOT_TUNNEL_OPERATOPN_OPEN:控制臺主動打開隧道。

  • AIOT_TUNNEL_OPERATOPN_CLOSE:控制臺主動關閉隧道。

tunnel_id

隧道的唯一身份ID。

host

隧道連接地址。

port

隧道連接端口。

path

隧道連接路徑。

token

隧道鑒權的信息。

步驟4:隧道建連

/* 隧道未建連,異步完成隧道建連,在事件回調函數中重置tunnel_status狀態 */
    aiot_tunnel_connect(tunnel_handle);

步驟5:建立SSH會話

  1. 遠程登錄頁簽,單擊登錄

  2. 在對話框中,輸入設備遠程訪問的用戶名和密碼,單擊確定

    重要

    設備遠程訪問的用戶名和密碼,由您在設備端自行設置。

步驟6: 消息收發

登錄成功后,您將看到如下遠程控制臺頁面。您可根據設備本身功能對設備進行管理。

重要

登錄成功后,若您5分鐘內未進行任何操作,則登錄連接會被關閉。

終端窗

步驟7: 關閉遠程登錄

  • 在控制臺關閉遠程登錄。具體操作,請參見關閉遠程登錄

  • 使用如下命令關閉隧道。

        /* 該示例只有一個隧道,如果為關閉隧道命令則關閉隧道,如果為打開新隧道,也需要先關閉舊的隧道*/
        if(tunnel_handle != NULL) {
            aiot_tunnel_deinit(&tunnel_handle);
            tunnel_status = -1;
        }

步驟8:反初始化設備

/* 斷開設備連接,并回收設備資源 */
    demo_device_deinit(device);