全部產品
Search
文件中心

Elastic Compute Service:通過會話管理CLI的連接埠轉寄訪問無公網執行個體

更新時間:Jan 14, 2026

會話管理CLI(ali-instance-cli)通過雲助手與WebSocket實現TCP連接埠轉寄,該功能既支援直接存取無公網IP的執行個體中的商務服務,也支援以跳板機方式訪問其他私網服務。

應用情境

情境一:訪問無公網ECS執行個體中的服務。

將無公網ECS執行個體的服務連接埠(如Nginx的80、SSH的22、RDP的3389及MySQL的3306),由會話管理通道映射到本機特定連接埠,通過訪問本機連接埠,訪問無公網執行個體中的服務。

image

情境二:以某台執行個體為跳板,訪問其他私網主機上的服務。

對於RDS MySQL資料庫等其他私網服務,無法直接建立連接埠轉寄通道。因此需要選擇一台與目標服務網路互連的ECS執行個體作為跳板機,通過該執行個體的網路能力訪問其他私網服務。

image
重要

連接埠轉寄會話依賴於啟動並執行命令列視窗。請保持該視窗開啟,一旦關閉,轉寄將立即終止。

情境一:訪問無公網ECS執行個體中的服務

確保已完成準備工作且已安裝&配置會話管理CLI的情況下,執行以下操作。

本地為Windows環境

PowerShell中,進入ali-instance-cli.exe所在目錄,執行以下命令。

#將INSTANCE_ID替換為需要連接埠轉寄的執行個體的ID,將TARGET_PORT替換為目標ECS執行個體的連接埠,將LOCAL_PORT替換為需要映射到原生連接埠。
.\ali-instance-cli.exe portforward -i INSTANCE_ID -r TARGET_PORT -l LOCAL_PORT

輸出Waiting for connections,表示連接埠轉寄已就緒。此時訪問127.0.0.1:<local_port>相當於訪問執行個體中<ecs_port>連接埠的服務。

以將目標ECS執行個體i-bp1******上Nginx預設連接埠80轉寄到原生8080為例,需執行.\ali-instance-cli.exe portforward -i i-bp1****** -r 80 -l 8080

本地為macOS/Linux環境

終端中,進入ali-instance-cli所在目錄,執行以下命令。

#請將INSTANCE_ID替換為需要連接埠轉寄的執行個體的ID,將TARGET_PORT替換為目標ECS執行個體的連接埠,將LOCAL_PORT替換為需要映射到原生連接埠。
./ali-instance-cli portforward -i INSTANCE_ID -r TARGET_PORT -l LOCAL_PORT

輸出Waiting for connections,表示連接埠轉寄已就緒。此時訪問127.0.0.1:<local_port>相當於訪問執行個體中<ecs_port>連接埠的服務。

以將目標ECS執行個體i-bp1******上Nginx預設連接埠80轉寄到原生8080為例,需執行./ali-instance-cli portforward -i i-bp1****** -r 80 -l 8080

情境二:以某台執行個體為跳板,訪問其他私網主機上的服務

確保已完成準備工作且已安裝&配置會話管理CLI的情況下,執行以下操作。

本地為Windows環境

開啟PowerShell,進入ali-instance-cli.exe所在目錄,執行以下命令:

#請將INSTANCE_ID替換為作為跳板機執行個體的ID,將TARGET_IP替換為目標主機的IP,將TARGET_PORT替換為目標主機的連接埠,將LOCAL_PORT替換為需要映射到原生連接埠。
.\ali-instance-cli.exe portforward -i INSTANCE_ID -r TARGET_IP:TARGET_PORT -l LOCAL_PORT

輸出Waiting for connections,表示跳板通道已建立。此時訪問127.0.0.1:<local_port>流量將經跳板機轉寄至<target_ip>:<target_port>

以通過ECS跳板機 i-bp1******,將RDS MySQL的內網地址 rm-******:3306轉寄至本地的 13306 連接埠為例。需執行.\ali-instance-cli.exe portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306

本地為macOS/Linux環境

開啟終端,進入ali-instance-cli所在目錄,執行以下命令。

#請將INSTANCE_ID替換為作為跳板機執行個體的ID,將TARGET_IP替換為目標主機的IP,將TARGET_PORT替換為目標主機的連接埠,將LOCAL_PORT替換為需要映射到原生連接埠。
./ali-instance-cli portforward -i INSTANCE_ID -r TARGET_IP:TARGET_PORT -l LOCAL_PORT

輸出Waiting for connections,表示跳板通道已建立。此時訪問127.0.0.1:<local_port>流量將經跳板機轉寄至<target_ip>:<target_port>

以將ApsaraDB RDS for MySQL的執行個體(內網地址 rm-******.mysql.rds.aliyuncs.com:3306)通過ECS執行個體跳板機i-bp1******映射至本地 13306 連接埠。需執行./ali-instance-cli portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306

常見問題

執行命令後卡住沒反應(執行個體非運行中狀態)

如果執行ali-instance-cli命令後命令列卡住沒反應,可能是執行個體沒有處於運行中狀態,如何查看執行個體狀態,請參見本文準備工作章節下的檢查執行個體運行狀態是否為運行中

執行命令後卡住沒反應(安全性群組設定問題)

如果執行ali-instance-cli命令後命令列卡住沒反應,可能是沒有在安全性群組出方向放通對應的連接埠。預設情況下普通安全性群組會在出方向放通所有連接埠的訪問,如果更改了出方向規則或者使用了企業安全性群組,則可能會出現該問題。相關安全性群組說明如下:

通過會話管理串連ECS執行個體時,需要確保ECS中啟動並執行雲助手Agent與雲助手服務端的網路連通性,即在安全性群組出方向設定以下規則:

與SSH、RDP等串連方式不同,由於會話管理是由雲助手Agent主動與會話管理服務端建立WebSocket串連,因此僅需允許存取出方向的雲助手服務端的WebSocket連接埠。關於會話管理的原理,請參見會話管理工作原理
重要
  • 如果使用普通安全性群組(包括預設安全性群組),預設情況下會允許存取所有的出方向流量,無需配置

  • 如果使用企業安全性群組,預設情況下會禁用所有出方向的流量,需要配置以下規則。更多關於企業安全性群組的說明,請參見普通安全性群組與企業級安全性群組

添加安全性群組規則的具體操作,請參見添加安全性群組規則

授權策略

優先順序

協議類型

連接埠範圍

授權對象

描述

允許

1

自訂TCP

443

100.100.0.0/16

用於訪問雲助手服務端。

允許

1

自訂TCP

443

100.0.0.0/8

訪問雲助手Agent安裝包所在伺服器,用於安裝或更新雲助手Agent

允許

1

自訂UDP

53

0.0.0.0/0

用於解析網域名稱。

此外,如果計劃僅通過會話管理串連執行個體,為了增加ECS執行個體的安全性,可以取消允許存取安全性群組入方向上的SSH連接埠(預設22)或者RDP連接埠(預設3389)的規則。

執行命令後出現DeliveryTimeout提示(雲助手Agent不線上)

如果執行ali-instance-cli的命令時出現DeliveryTimeout提示,可能是雲助手Agent不線上,檢查雲助手狀態,請參見檢查執行個體雲助手Agent是否已安裝

執行命令報錯session manager is disabled, please enable first

如果執行ali-instance-cli的命令出現session manager is disabled, please enable first報錯,代表會話管理功能未開啟,請通過控制台開啟會話管理功能,具體操作,請參見開啟會話管理服務

如何分析ali-instance-cli的日誌

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

  • 查看會話管理CLI工具的日誌:在使用會話管理CLI(ali-instance-cli)時,會在該工具所在目錄下產生log目錄,如~/log/aliyun_ecs_session_log.2022XXXX,可以進入該目錄查看相關日誌。

  • 查看雲助手Agent日誌:

    • Linux

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

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