A CLI do Session Manager (ali-instance-cli) permite encaminhar portas TCP via Cloud Assistant e WebSockets para acessar serviços em instâncias com IP privado ou criar túneis por um servidor de salto.
Casos de uso
Caso de uso 1: Acessar serviços em uma instância com IP privado. Mapeie uma porta de serviço de uma instância sem endereço IP público (como a porta | Caso de uso 2: Usar uma instância como servidor de salto para alcançar outros hosts privados. Para serviços inacessíveis diretamente, como um banco de dados ApsaraDB RDS for MySQL, use uma instância ECS com acesso de rede ao destino como servidor de salto. A sessão de encaminhamento de porta cria um túnel por essa instância até os serviços privados. |
A sessão de encaminhamento de porta permanece ativa apenas enquanto a janela da linha de comando estiver aberta. Fechar a janela encerra a sessão.
Acesse serviços em uma instância com IP privado
Conclua as preparações e instale e configure a CLI do Session Manager. Em seguida, siga estas etapas.
No Windows
No PowerShell, acesse o diretório do ali-instance-cli.exe e execute:
# 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
Quando Waiting for connections aparecer, o túnel estará ativo. Acesse a TARGET_PORT da instância por 127.0.0.1:<local_port>.
Exemplo: encaminhar a porta Nginx80na instânciai-bp1******para a porta local8080:.\ali-instance-cli.exe portforward -i i-bp1****** -r 80 -l 8080.
No macOS ou Linux
No terminal, acesse o diretório do ali-instance-cli e execute:
#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
Quando Waiting for connections aparecer, o túnel estará ativo. Acesse a TARGET_PORT da instância por 127.0.0.1:<local_port>.
Exemplo: encaminhar a porta Nginx80na instânciai-bp1******para a porta local8080:./ali-instance-cli portforward -i i-bp1****** -r 80 -l 8080.
Use uma instância como servidor de salto
Conclua as preparações e instale e configure a CLI do Session Manager. Em seguida, siga estas etapas.
No Windows
No PowerShell, acesse o diretório do ali-instance-cli.exe e execute:
# 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
Quando Waiting for connections aparecer, o túnel do servidor de salto estará estabelecido. O tráfego para 127.0.0.1:<local_port> passa pelo servidor de salto em direção a TARGET_IP:TARGET_PORT.
Exemplo: rotear tráfego para uma instância RDS for MySQL emrm-******.mysql.rds.aliyuncs.com:3306pelo servidor de saltoi-bp1******para a porta local13306:.\ali-instance-cli.exe portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306.
No macOS ou Linux
No terminal, acesse o diretório do ali-instance-cli e execute:
#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
Quando Waiting for connections aparecer, o túnel do servidor de salto estará estabelecido. O tráfego para 127.0.0.1:<local_port> passa pelo servidor de salto em direção a TARGET_IP:TARGET_PORT.
Exemplo: mapear uma instância RDS for MySQL (rm-******.mysql.rds.aliyuncs.com:3306) para a porta local13306pelo servidor de saltoi-bp1******:./ali-instance-cli portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306.
Perguntas frequentes
A linha de comando não responde após a execução de um comando (A instância não está no estado Running)
Se a linha de comando não responder após a execução de um comando ali-instance-cli, a instância pode não estar no estado Running. Para visualizar o status da instância, consulte Verificar se a instância está no estado Running neste tópico.
A linha de comando não responde após a execução de um comando (Problema de configuração do grupo de segurança)
Caso a linha de comando não responda após a execução de um comando ali-instance-cli, as portas de saída necessárias podem não estar abertas no grupo de segurança. Por padrão, os grupos de segurança básicos permitem todo o tráfego de saída. Esse problema pode ocorrer se você modifique as regras de saída ou usar um grupo de segurança avançado.
Ao usar o Session Manager para conectar-se a uma instância ECS, garanta que o Cloud Assistant Agent em execução na instância ECS esteja conectado ao servidor Cloud Assistant. Para isso, adicione as seguintes regras a um grupo de segurança de saída:
Diferentemente de métodos de conexão como SSH e Remote Desktop Protocol (RDP), o Cloud Assistant Agent estabelece ativamente uma conexão WebSocket com o servidor Session Manager. Basta abrir a porta WebSocket de saída do servidor Cloud Assistant em uma regra de segurança. Para obter informações sobre o funcionamento do Session Manager, consulte a seção Como o Session Manager funciona deste tópico.
Se você usar grupos de segurança básicos, incluindo o grupo de segurança padrão, todo o tráfego de saída será permitido. Nenhuma configuração adicional é necessária.
Caso use um grupo de segurança avançado, todo o tráfego de saída será negado. Configure as regras relevantes conforme descrito na tabela a seguir. Para obter informações sobre grupos de segurança, consulte Grupos de segurança básicos e avançados.
Para obter informações sobre como adicionar regras a um grupo de segurança, consulte Adicionar uma regra de grupo de segurança.
|
Action |
Priority |
Protocol type |
Port range |
Authorization object |
Description |
|
Allow |
1 |
Custom TCP |
443 |
|
Esta porta acessa o servidor Cloud Assistant. |
|
Allow |
1 |
Custom TCP |
443 |
|
Esta porta acessa o servidor que armazena o pacote de instalação do Cloud Assistant Agent durante a instalação ou atualização do Cloud Assistant Agent. |
|
Allow |
1 |
Custom UDP |
53 |
|
Esta porta resolve nomes de domínio. |
Para conectar-se a uma instância usando apenas o Session Manager, exclua do grupo de segurança as regras de entrada que permitem a porta SSH (padrão 22) e a porta RDP (padrão 3389). Isso aumenta a segurança da instância ECS.
Erro DeliveryTimeout: Cloud Assistant Agent está offline
Um erro DeliveryTimeout indica que o Cloud Assistant Agent pode estar offline. Para verificar o status do agente, consulte Verificar se o Cloud Assistant Agent está instalado em uma instância.
O erro "session manager is disabled, please enable first" é relatado após a execução de um comando
Se o erro session manager is disabled, please enable first ocorrer após a execução de um comando ali-instance-cli, ative o Session Manager no console.
Como analisar logs do ali-instance-cli
Analise os logs do ali-instance-cli para identificar problemas.
Logs da CLI do Session Manager: Ao usar o ali-instance-cli, uma pasta de log (por exemplo,
~/log/aliyun_ecs_session_log.2022XXXX) é gerada no diretório da ferramenta.-
Logs do Cloud Assistant Agent:
-
Linux
/usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/ -
Windows
C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log
-