Session Manager CLI (ali-instance-cli) permet la redirection de port TCP via Cloud Assistant et WebSocket pour accéder aux services d'une instance disposant d'une adresse IP privée ou pour établir un tunnel à travers un serveur de rebond.
Cas d'utilisation
Cas d'utilisation 1 : Accéder aux services d'une instance avec une adresse IP privée. Redirigez un port de service d'une instance sans adresse IP publique (par exemple le port | Cas d'utilisation 2 : Utiliser une instance comme serveur de rebond pour atteindre d'autres hôtes privés. Pour les services auxquels vous ne pouvez pas accéder directement, tels qu'une base de données ApsaraDB RDS for MySQL, utilisez une instance ECS disposant d'un accès réseau à la cible comme serveur de rebond. La session de redirection de port établit un tunnel à travers cette instance vers les services privés. |
Une session de redirection de port reste active uniquement tant que la fenêtre de ligne de commande est ouverte. La fermeture de la fenêtre met fin à la session.
Accéder aux services d'une instance avec une adresse IP privée
Effectuez les préparatifs et installez et configurez Session Manager CLI, puis suivez les étapes ci-dessous.
Sur Windows
Dans PowerShell, accédez au répertoire contenant ali-instance-cli.exe et exécutez la commande suivante :
# 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
Lorsque le message Waiting for connections s'affiche, le tunnel est actif. Accédez au TARGET_PORT de l'instance via 127.0.0.1:<local_port>.
Exemple : rediriger le port Nginx80de l'instancei-bp1******vers le port local8080:.\ali-instance-cli.exe portforward -i i-bp1****** -r 80 -l 8080.
Sur macOS ou Linux
Dans le terminal, accédez au répertoire contenant ali-instance-cli et exécutez la commande suivante :
#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
Lorsque le message Waiting for connections s'affiche, le tunnel est actif. Accédez au TARGET_PORT de l'instance via 127.0.0.1:<local_port>.
Exemple : rediriger le port Nginx80de l'instancei-bp1******vers le port local8080:./ali-instance-cli portforward -i i-bp1****** -r 80 -l 8080.
Utiliser une instance comme serveur de rebond
Effectuez les préparatifs et installez et configurez Session Manager CLI, puis suivez les étapes ci-dessous.
Sur Windows
Dans PowerShell, accédez au répertoire contenant ali-instance-cli.exe et exécutez la commande suivante :
# 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
Lorsque le message Waiting for connections s'affiche, le tunnel via le serveur de rebond est établi. Le trafic destiné à 127.0.0.1:<local_port> est acheminé via le serveur de rebond vers TARGET_IP:TARGET_PORT.
Exemple : acheminer le trafic vers une instance RDS for MySQL située à l'adresserm-******.mysql.rds.aliyuncs.com:3306via le serveur de rebondi-bp1******vers le port local13306:.\ali-instance-cli.exe portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306.
Sur macOS ou Linux
Dans le terminal, accédez au répertoire contenant ali-instance-cli et exécutez la commande suivante :
#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
Lorsque le message Waiting for connections s'affiche, le tunnel via le serveur de rebond est établi. Le trafic destiné à 127.0.0.1:<local_port> est acheminé via le serveur de rebond vers TARGET_IP:TARGET_PORT.
Exemple : mapper une instance RDS for MySQL (rm-******.mysql.rds.aliyuncs.com:3306) sur le port local13306via le serveur de rebondi-bp1******:./ali-instance-cli portforward -i i-bp1****** -r rm-******.mysql.rds.aliyuncs.com:3306 -l 13306.
FAQ
La ligne de commande ne répond pas après l'exécution d'une commande (l'instance n'est pas dans l'état Running)
Si la ligne de commande ne répond pas après l'exécution d'une commande ali-instance-cli, il est possible que l'instance ne soit pas dans l'état Running. Pour vérifier l'état de l'instance, consultez la section Vérifier si l'instance est dans l'état Running de cette rubrique.
La ligne de commande ne répond pas après l'exécution d'une commande (problème de configuration du groupe de sécurité)
Si la ligne de commande ne répond pas après l'exécution d'une commande ali-instance-cli, il est possible que les ports sortants requis ne soient pas ouverts dans le groupe de sécurité. Par défaut, les groupes de sécurité basiques autorisent tout le trafic sortant. Ce problème peut survenir si vous modifiez les règles sortantes ou si vous utilisez un groupe de sécurité avancé.
Lorsque vous utilisez Session Manager pour vous connecter à une instance ECS, assurez-vous que Cloud Assistant Agent exécuté sur l'instance ECS est connecté au serveur Cloud Assistant en ajoutant les règles suivantes à un groupe de sécurité sortant :
Contrairement aux méthodes de connexion telles que SSH et Remote Desktop Protocol (RDP), Cloud Assistant Agent établit activement une connexion WebSocket avec le serveur Session Manager. Vous devez uniquement ouvrir le port sortant WebSocket du serveur Cloud Assistant dans une règle de sécurité. Pour plus d'informations sur le fonctionnement de Session Manager, consultez la section Fonctionnement de Session Manager de cette rubrique.
Si vous utilisez des groupes de sécurité basiques, y compris le groupe de sécurité par défaut, tout le trafic sortant est autorisé. Aucune configuration supplémentaire n'est requise.
Si vous utilisez un groupe de sécurité avancé, tout le trafic sortant est refusé. Vous devez configurer les règles appropriées. Le tableau suivant décrit ces règles. Pour plus d'informations sur les groupes de sécurité, consultez la section Groupes de sécurité basiques et avancés.
Pour savoir comment ajouter des règles à un groupe de sécurité, consultez la section Ajouter une règle de groupe de sécurité.
|
Action |
Priorité |
Type de protocole |
Plage de ports |
Objet d'autorisation |
Description |
|
Allow |
1 |
Custom TCP |
443 |
|
Ce port est utilisé pour accéder au serveur Cloud Assistant. |
|
Allow |
1 |
Custom TCP |
443 |
|
Ce port est utilisé pour accéder au serveur sur lequel le package d'installation de Cloud Assistant Agent est stocké lors de l'installation ou de la mise à jour de Cloud Assistant Agent. |
|
Allow |
1 |
Custom UDP |
53 |
|
Ce port est utilisé pour la résolution des noms de domaine. |
Si vous souhaitez vous connecter à une instance uniquement via Session Manager, supprimez les règles entrantes qui autorisent le port SSH (22 par défaut) et le port RDP (3389 par défaut) d'un groupe de sécurité afin d'améliorer la sécurité de l'instance ECS.
Erreur DeliveryTimeout : Cloud Assistant Agent est hors ligne
Une erreur DeliveryTimeout indique que Cloud Assistant Agent est peut-être hors ligne. Pour vérifier l'état de l'agent, consultez la section Vérifier si Cloud Assistant Agent est installé sur une instance.
L'erreur "session manager is disabled, please enable first" s'affiche après l'exécution d'une commande
Si l'erreur session manager is disabled, please enable first se produit après l'exécution d'une commande ali-instance-cli, activez Session Manager dans la console.
Comment analyser les journaux ali-instance-cli
Analysez les journaux ali-instance-cli pour identifier les problèmes.
Journaux Session Manager CLI : lorsque vous utilisez ali-instance-cli, un dossier de journalisation (par exemple
~/log/aliyun_ecs_session_log.2022XXXX) est généré dans le répertoire de l'outil.-
Journaux Cloud Assistant Agent :
-
Linux
/usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/ -
Windows
C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log
-