全部產品
Search
文件中心

Elastic Compute Service:通過ali-instance-cli進行連接埠轉寄

更新時間:Jul 23, 2024

會話管理是雲助手提供的功能,用於便捷安全地遠端連線ECS執行個體。本文介紹如何通過會話管理CLI將網路流量從本地連接埠轉寄到ECS執行個體。

前提條件

  • 需要串連的目標執行個體中已安裝雲助手Agent,並且Windows用戶端版本大於等於2.1.3.256、Linux用戶端版本大於等於2.2.3.256。具體操作,請參見安裝雲助手Agent

  • 已開啟會話管理功能,具體操作,請參見通過會話管理串連執行個體

背景資訊

使用會話管理CLI進行連接埠轉寄,不需要執行個體公網IP,只需要執行個體ID和連接埠參數指定目標執行個體的連接埠號碼,即可通過會話管理用戶端將網路流量從本地連接埠轉寄到執行個體連接埠。可以便捷安全地訪問執行個體上的服務。關於會話管理更多資訊,請參見會話管理概述

Linux、macOS作業系統

說明

本文操作以test使用者為例,具體操作以您實際操作的使用者和使用者目錄為準。

  1. 登入工作階段管理用戶端。

  2. 在會話管理用戶端安裝ali-instance-cli。

    不同作業系統的用戶端安裝方式不同,具體說明如下:

    • Linux

      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
      chmod a+x ali-instance-cli
    • macOS:

      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli
      chmod a+x ali-instance-cli
  3. 配置AccessKey、STS Token或CredentialsURI。

    關於如何擷取AccessKey或STS Token,請參見建立AccessKey什麼是STS

    1. 切換到test目錄。

      cd /home/test
    2. 配置鑒權認證方式。

      支援以下三種配置方式:

      • AccessKey配置方式

        執行如下命令,根據介面提示,輸入AccessKey ID、AccessKey Secret、RegionID。

        ./ali-instance-cli configure --mode AK
      • STS Token配置方式

        說明

        regionaksktoken要修改為實際的Region ID、AccessKey ID、AccessKey Secret和STS Token。

        ./ali-instance-cli configure set --mode StsToken --region "region" --access-key-id "ak"  --access-key-secret "sk"   --sts-token "token"
      • CredentialsURI配置方式

        執行如下命令,根據介面提示,輸入CredentialsURI和RegionID。

        說明

        CredentialsURI為您配置的證明伺服器的地址。

        ./ali-instance-cli configure --mode=CredentialsURI

      當回顯出現如圖所示內容時,說明鑒權方式已配置完成。鑒權成功.png

  4. 執行如下命令,將本地連接埠轉寄到ECS執行個體。

    ./ali-instance-cli portforward -i "instance id" -l 8080 -r 80
    說明

    本樣本將本地8080連接埠轉寄到ECS執行個體的80連接埠為例,介紹如何使用會話管理進行連接埠轉寄。您也可以根據需要,使用其他連接埠,instance id請替換成目標執行個體ID。

    當回顯如下圖所示時,說明已經通過會話管理建立起了本地連接埠到執行個體連接埠的轉寄通路。Linux連接埠轉寄

  5. 執行如下命令,將本地連接埠轉寄到ECS執行個體可以訪問的其他主機連接埠。

    此功能需確保ali-instance-cli不低於以下版本:

    • Linux:1.2.0.48

    • macOS:1.3.0.48

    ./ali-instance-cli portforward -i "instance-id" -l 8080 -r <IP>:80
    說明

    本樣本將本地8080連接埠轉寄到ECS執行個體可以訪問的其他主機的80連接埠為例。您也可以根據需要,使用其他連接埠,指定其他目標主機的IP,instance-id請替換成ECS執行個體ID,<IP>請替換成需要訪問的主機IP。

    當回顯如下圖所示時,說明已經通過Session Manager建立起了本地連接埠到目標主機連接埠的轉寄通路。

    image

Windows作業系統

說明

本文操作以test使用者為例,具體操作以您實際操作的使用者和使用者目錄為準。

  1. 登入工作階段管理用戶端。

    具體操作,請參見串連方式概述

  2. 在會話管理用戶端下載ali-instance-cli。

    下載Windows版ali-instance-cli並儲存到本地檔案夾中,如C:\Users\test

  3. 配置AccessKey或STS Token。

    關於如何擷取AccessKey或STS Token,請參見建立AccessKey什麼是STS

    1. 選擇開始 > 運行,輸入cmd,按Enter鍵,開啟命令提示字元視窗。

    2. 切換到test目錄。

      cd C:\Users\test
    3. 配置鑒權認證方式。

      支援以下兩種配置方式:

      • AccessKey配置方式

        執行如下命令,根據介面提示,輸入AccessKey ID、AccessKey Secret、RegionID。

        ali-instance-cli.exe configure --mode AK
      • STS Token配置方式

        說明

        regionaksktoken要修改為實際的Region ID、AccessKey ID、AccessKey Secret和STS Token。

        ali-instance-cli.exe configure set --mode StsToken --region "region" --access-key-id "ak"  --access-key-secret "sk"   --sts-token "token"

      當回顯出現如圖所示內容時,說明鑒權方式已配置完成。

      image

  4. 執行如下命令,將本地連接埠轉寄到ECS執行個體。

    ali-instance-cli.exe portforward -i "instance id" -l 8080 -r 80
    說明

    本樣本將本地8080連接埠轉寄到ECS執行個體的80連接埠為例,介紹如何使用會話管理進行連接埠轉寄。您也可以根據需要,使用其他連接埠,instance id請替換成目標執行個體ID。

    當回顯如下圖所示時,說明已經通過會話管理建立起了本地連接埠到執行個體連接埠的轉寄通路。Windows連接埠轉寄

  5. 執行如下命令,將本地連接埠轉寄到ECS執行個體可以訪問的其他主機連接埠。

    此功能需確保ali-instance-cli不低於1.1.0.48版本。

    ali-instance-cli.exe portforward -i "instance-id" -l 8080 -r 10.88.0.4:80
    說明

    本樣本將本地8080連接埠轉寄到ECS執行個體可以訪問的其他主機的80連接埠為例。您也可以根據需要,使用其他連接埠,指定其他目標主機的IP,instance-id請替換成ECS執行個體ID,<IP>請替換成需要訪問的主機IP。

    當回顯如下圖所示時,說明已經通過Session Manager建立起了本地連接埠到目標主機連接埠的轉寄通路。

    image

使用樣本:訪問執行個體上的MySQL服務

假設您的ECS執行個體上正在運行著MySQL服務,服務連接埠為3306。本地系統為Linux,連接埠為33306,利用ali-instance-cli可以通過本地連接埠訪問到執行個體上的MySQL服務

  1. 運行以下命令,將本地的33306連接埠轉寄到執行個體的3306連接埠。

    ./ali-instance-cli portforward -i "instance id" -l 33306 -r 3306

    當回顯如下圖所示時,說明已經通過會話管理建立起了本地連接埠到執行個體連接埠的轉寄通路。串連MySQL

  2. 執行如下命令,即可在本地訪問到執行個體上的MySQL服務。

    mysql -uroot -h127.0.0.1 -ppassword --port=33306
    說明

    password請替換成實際的MySQL密碼。

    當回顯如下圖所示時,說明已在本地訪問到執行個體上的MySQL服務。訪問MySQL服務

    同時,ali-instance-cli日誌中顯示接收到了新的串連,也就是上面MySQL用戶端發起的串連。CLI日誌

  3. 執行exit命令,退出MySQL串連。

    exit

    同時,ali-instance-cli日誌中也會顯示串連已關閉。串連已關閉

常見問題

當使用會話管理用戶端出現問題時,您可以通過查看log分析具體問題。

  • 查看會話管理用戶端的日誌:當前log目錄,如/home/test/log/aliyun_ecs_session_log.2022XXXX

  • 查看雲助手Agent日誌:

    • Linux

      /usr/local/share/aliyun-assist/雲助手版本號碼/log/
    • Windows

      C:\ProgramData\aliyun\assist\雲助手版本號碼\log

若會話管理功能未開啟,使用會話管理用戶端串連遠程執行個體,會出現ssh_exchange_identification: Connection closed by remote host的錯誤提示。並且,會話管理用戶端的日誌裡面會出現session manager is disabled, please enable first。請通過控制台開啟會話管理功能,具體操作,請參見通過會話管理串連執行個體