Todos los productos
Search
Centro de documentos

Elastic Compute Service:Forward ports to instances without public IP addresses

Última actualización: Sep 02, 2026

La CLI de Session Manager (ali-instance-cli) permite el reenvío de puertos TCP a través de Cloud Assistant y WebSocket para acceder a servicios en instancias con IP privada o establecer un túnel mediante un servidor de salto.

Casos de uso

Caso de uso 1: Acceso a servicios en una instancia con IP privada.

Asigne un puerto de servicio de una instancia sin dirección IP pública (como el puerto 80 para Nginx, 22 para SSH, 3389 para RDP o 3306 para MySQL) a un puerto local y conéctese localmente para acceder al servicio remoto.

image

Caso de uso 2: Uso de una instancia como servidor de salto para alcanzar otros hosts privados.

Para los servicios a los que no puede acceder directamente, como una base de datos ApsaraDB RDS for MySQL, utilice una instancia ECS con acceso de red al destino como servidor de salto. La sesión de reenvío de puertos establece un túnel a través de esta instancia hacia los servicios privados.

image
Importante

Una sesión de reenvío de puertos permanece activa solo mientras la ventana de línea de comandos está abierta. Al cerrar la ventana, la sesión finaliza.

Acceso a servicios en una instancia con IP privada

Complete los pasos de preparations y install and configure the Session Manager CLI, y luego siga estas instrucciones.

En Windows

En PowerShell, vaya al directorio de ali-instance-cli.exe y ejecute:

# Replace INSTANCE_ID with the ID of the instance for which you want to set up port forwarding, TARGET_PORT with the port of the target ECS instance, and LOCAL_PORT with the port to map on your local machine.
.\ali-instance-cli.exe portforward -i INSTANCE_ID -r TARGET_PORT -l LOCAL_PORT

Cuando aparezca Waiting for connections, el túnel está activo. Acceda al TARGET_PORT de la instancia mediante 127.0.0.1:<local_port>.

Ejemplo: reenviar el puerto 80 de Nginx en la instancia i-bp1****** al puerto local 8080 : .\ali-instance-cli.exe portforward -i i-bp1****** -r 80 -l 8080 .

En macOS o Linux

En la terminal, vaya al directorio de ali-instance-cli y ejecute:

#Replace INSTANCE_ID with the ID of the instance for which you want to set up port forwarding, TARGET_PORT with the port of the target ECS instance, and LOCAL_PORT with the port to map on your local machine.
./ali-instance-cli portforward -i INSTANCE_ID -r TARGET_PORT -l LOCAL_PORT

Cuando aparezca Waiting for connections, el túnel está activo. Acceda al TARGET_PORT de la instancia mediante 127.0.0.1:<local_port>.

Ejemplo: reenviar el puerto 80 de Nginx en la instancia i-bp1****** al puerto local 8080 : ./ali-instance-cli portforward -i i-bp1****** -r 80 -l 8080 .

Uso de una instancia como servidor de salto

Complete los pasos de preparations y install and configure the Session Manager CLI, y luego siga estas instrucciones.

En Windows

En PowerShell, vaya al directorio de ali-instance-cli.exe y ejecute:

# Replace INSTANCE_ID with the ID of the jump server instance, TARGET_IP with the IP address of the target host, TARGET_PORT with the port of the target host, and LOCAL_PORT with the port to map on your local machine.
.\ali-instance-cli.exe portforward -i INSTANCE_ID -r TARGET_IP:TARGET_PORT -l LOCAL_PORT

Cuando aparezca Waiting for connections, el túnel del servidor de salto queda establecido. El tráfico hacia 127.0.0.1:<local_port> se enruta a través del servidor de salto hacia TARGET_IP:TARGET_PORT.

Ejemplo: enrutar tráfico a una instancia RDS for MySQL en rm-******.mysql.rds.aliyuncs.com:3306 a través del servidor de salto i-bp1****** hacia el puerto local 13306 : .\ali-instance-cli.exe portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306 .

En macOS o Linux

En la terminal, vaya al directorio de ali-instance-cli y ejecute:

#Replace INSTANCE_ID with the ID of the jump server instance, TARGET_IP with the IP address of the target host, TARGET_PORT with the port of the target host, and LOCAL_PORT with the port to map on your local machine.
./ali-instance-cli portforward -i INSTANCE_ID -r TARGET_IP:TARGET_PORT -l LOCAL_PORT

Cuando aparezca Waiting for connections, el túnel del servidor de salto queda establecido. El tráfico hacia 127.0.0.1:<local_port> se enruta a través del servidor de salto hacia TARGET_IP:TARGET_PORT.

Ejemplo: asignar una instancia RDS for MySQL ( rm-******.mysql.rds.aliyuncs.com:3306 ) al puerto local 13306 a través del servidor de salto i-bp1****** : ./ali-instance-cli portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306 .

Preguntas frecuentes

La línea de comandos no responde tras ejecutar un comando (la instancia no está en estado Running)

Si la línea de comandos no responde después de ejecutar un comando de ali-instance-cli, es posible que la instancia no esté en estado Running. Para consultar el estado de la instancia, véase Check whether the instance is in the Running state en este tema.

La línea de comandos no responde tras ejecutar un comando (problema de configuración del security group)

Si la línea de comandos no responde después de ejecutar un comando de ali-instance-cli, es posible que los puertos de salida (outbound) obligatorios no estén abiertos en el security group. De forma predeterminada, los basic security groups permiten todo el tráfico de salida. Este problema puede presentarse si modifica las reglas de salida o si utiliza un advanced security group.

Cuando utiliza Session Manager para conectarse a una instancia ECS, asegúrese de que Cloud Assistant Agent en ejecución dentro de la instancia ECS esté conectado al servidor de Cloud Assistant. Para ello, agregue las siguientes reglas a un security group de salida (outbound):

A diferencia de métodos de conexión como SSH y Remote Desktop Protocol (RDP), Cloud Assistant Agent establece activamente una conexión WebSocket con el servidor de Session Manager. Solo necesita abrir el puerto WebSocket de salida (outbound) del servidor de Cloud Assistant en una regla de seguridad. Para obtener información sobre el funcionamiento de Session Manager, consulte la sección How Session Manager works de este tema.
Importante
  • Si utiliza basic security groups, incluido el default security group, se permite todo el tráfico de salida (outbound). No se requiere configuración adicional.

  • Si utiliza un advanced security group, se deniega todo el tráfico de salida. Debe configurar las reglas correspondientes. La siguiente tabla describe dichas reglas. Para obtener más información sobre los security groups, consulte Basic and advanced security groups.

Para obtener información sobre cómo agregar reglas a un security group, consulte Add a security group rule.

Acción

Prioridad

Tipo de protocolo

Rango de puertos

Objeto de autorización

Descripción

Allow

1

Custom TCP

443

100.100.0.0/16

Este puerto se utiliza para acceder al servidor de Cloud Assistant.

Allow

1

Custom TCP

443

100.0.0.0/8

Este puerto se utiliza para acceder al servidor donde se almacena el paquete de instalación de Cloud Assistant Agent cuando desea instalar o actualizar Cloud Assistant Agent.

Allow

1

Custom UDP

53

0.0.0.0/0

Este puerto se utiliza para resolver nombres de dominio.

Si desea conectarse a una instancia exclusivamente mediante Session Manager, elimine del security group las reglas de entrada que permiten el puerto SSH (22 por defecto) y el puerto RDP (3389 por defecto) para mejorar la seguridad de la instancia ECS.

Error DeliveryTimeout: Cloud Assistant Agent está desconectado

Un error DeliveryTimeout indica que Cloud Assistant Agent podría estar desconectado. Para comprobar el estado del agente, consulte Check whether the Cloud Assistant Agent is installed on an instance.

Se reporta el error "session manager is disabled, please enable first" tras ejecutar un comando

Si ocurre el error session manager is disabled, please enable first después de ejecutar un comando de ali-instance-cli, enable Session Manager en la consola.

Cómo analizar los registros de ali-instance-cli

Analice los registros de ali-instance-cli para identificar problemas.

  • Registros de la CLI de Session Manager: Cuando utiliza ali-instance-cli, se genera una carpeta de registros (por ejemplo, ~/log/aliyun_ecs_session_log.2022XXXX) en el directorio de la herramienta.

  • Registros de Cloud Assistant Agent:

    • Linux

      /usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log