Partager via


Informations de référence sur la ligne de commande des tunnels de développement

Les tunnels de développement offrent un outil d’interface de ligne de commande (CLI) pour créer et gérer des tunnels de développement. Cet article explique la syntaxe et les paramètres des différentes devtunnel commandes CLI.

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.

Remarque

devtunnel Les commandes CLI sont en préversion. Les noms de commandes et les options peuvent changer dans les versions ultérieures.

Options globales

  • -v, --verbose: activez la sortie détaillée.
  • -?, -h, --help: affichez les informations d’aide et d’utilisation.

Gérer les informations d’identification de l’utilisateur

Le service de tunnel de développement nécessite une connexion pour autoriser la gestion et l’accès aux tunnels de développement. Par défaut, un tunnel de développement n’est accessible qu’à l’utilisateur qui a créé le tunnel de développement, bien que cet utilisateur puisse accorder l’accès à d’autres utilisateurs.

Une fois connecté, le jeton de connexion est mis en cache dans la chaîne de clés sécurisée du système et est valide pendant plusieurs jours avant l’expiration. La déconnexion de l’interface CLI efface ce jeton mis en cache, mais n’efface aucun cookie de navigateur. Ce qui peut inclure des jetons d’accès de tunnel de développement si un navigateur a été utilisé pour s’authentifier auprès d’un tunnel de développement.

Commande Description
devtunnel user login Connectez-vous avec un compte Microsoft ou GitHub.
devtunnel user logout Effacer le jeton mis en cache
devtunnel user show Afficher l’état de connexion actuel

Conseil

devtunnel login et devtunnel logout sont des commandes abrégées pour la connexion et la sortie.

Voici quelques exemples sur l’utilisation de ces commandes :

Exemples Description
devtunnel user login Connectez-vous avec une organisation Microsoft (Microsoft Entra ID) ou compte personnel
devtunnel user login -g Se connecter avec un compte GitHub
devtunnel user login -d Connexion avec un compte GitHub avec connexion de code d’appareil, si la connexion de navigateur interactive locale n’est pas possible
devtunnel user login -g -d Connexion avec un compte GitHub avec connexion de code d’appareil, si la connexion de navigateur interactive locale n’est pas possible

Héberger un tunnel de développement

devtunnel host est la commande principale utilisée pour héberger votre tunnel de développement. La commande doit être exécutée sur le système hôte exécutant le serveur accessible via le tunnel de développement.

Commande Description
devtunnel host Héberger un tunnel de développement. Si aucun ID de tunnel de développement n’est spécifié, un nouveau tunnel de développement temporaire est créé une fois la connexion fermée.

Voici quelques exemples sur l’utilisation de cette commande :

Exemples Description
devtunnel host -p 3000 Héberger un tunnel de développement temporaire pour un port d’écoute serveur 3000 sur le système hôte.
devtunnel host -p 3000 --allow-anonymous Hébergez un tunnel de développement temporaire et activez l’accès au client anonyme.
devtunnel host -p 3000 5000 Hébergez un tunnel de développement temporaire pour les serveurs locaux à l’écoute sur les ports 3000 et 5000.
devtunnel host -p 8443 --protocol https Hébergez un tunnel de développement temporaire pour un serveur à l’écoute sur le port 8443 qui utilise le protocole HTTPS.
devtunnel host -p 8000 --expiration 2d Héberger un tunnel de développement temporaire avec un délai d’expiration personnalisé. Le minimum est de 1 heure (1h) et le maximum est de 30 jours (30d).
devtunnel host TUNNELID Héberger un tunnel de développement existant qui a déjà été configuré.

Avertissement

Autoriser l’accès anonyme à un tunnel de développement signifie que toute personne sur Internet est en mesure de se connecter à votre serveur local, s’il peut deviner l’ID du tunnel de développement.

Appuyez sur Control-C pour arrêter le processus hôte du tunnel de développement et mettre fin à toutes les connexions clientes via le tunnel de développement. Si aucun tunnel de développement existant n’a été fourni, le tunnel de développement créé automatiquement par le processus est supprimé lors de la sortie du processus.

Connecter à un tunnel de développement

Utilisation de l’interface utilisateur de transfert web :

La devtunnel host commande affiche une sortie similaire à ce qui suit :

Hosting port 3000 at https://l3rs99qw-3000.usw2.devtunnels.ms/

L’URI affiché https: est unique au port du tunnel de développement : le premier composant est un sous-domaine contenant l’ID de tunnel de développement et le numéro de port donnés.

Si le port hébergé se connecte à un serveur web, cet URI peut être ouvert directement dans un navigateur, n’importe où. Si l’accès au tunnel de développement nécessite une autorisation, la demande initiale adressée à l’URI redirige vers une page de connexion et retourne au site une fois l’utilisateur autorisé.

Si le port hébergé se connecte à un service web, cet URI peut être utilisé comme URI de base par une application cliente de service web. Toutefois, si le tunnel de développement n’autorise pas l’accès anonyme, le client du service web ne sait normalement pas comment s’authentifier. Si le service web est sûr d’exposer publiquement, envisagez d’autoriser l’accès anonyme. Sinon, un client de service web peut ajouter un en-tête de requête avec un jeton d’accès de tunnel de développement pour autoriser la connexion.

Utilisation de l’interface CLI :

Au lieu d’avoir un navigateur client ou une application se connectent directement à un URI de relais de tunnel de développement, l’interface CLI peut être utilisée pour transférer des connexions à partir d’un port sur le client vers un port de tunnel de développement. Le client peut également avoir besoin de se connecter, si le tunnel de développement n’autorise pas l’accès anonyme.

devtunnel connect TUNNELID
  • Remplacez TUNNELID par le même ID de tunnel de développement que celui utilisé sur l’hôte.

La sortie du client réussie est similaire à ce qui suit :

Connected to tunnel: l3rs99qw
SSH: Forwarding from 127.0.0.1:3000 to host port 3000.
SSH: Forwarding from [::1]:3000 to host port 3000.

À présent, le serveur qui a été partagé sur le port 3000 de l’hôte est disponible sur localhost:3000 le client, à l’aide d’IPv4 ou IPv6. (Le préfixe « SSH » est dû au fait que le service de tunnel de développement s’appuie sur le protocole SSH standard pour le transfert de port.) Si le port hébergé se connecte à un serveur web, vous http://localhost:3000/ pouvez l’ouvrir dans un navigateur. Dans ce cas, aucune autorisation supplémentaire n’est requise, car le jeton de connexion CLI du client a été utilisé pour autoriser la connexion si nécessaire.

Avancé : Gérer les tunnels de développement

Il est possible de créer un tunnel de développement sans l’héberger. Cela est utile pour la configuration et la gestion avancées du tunnel de développement, telles que :

  • Liste de tous les tunnels de développement détenus
  • Ajout et suppression de ports d’un tunnel de développement
  • Gestion des contrôles d’accès au tunnel de développement
  • Ajout de métadonnées à un tunnel de développement comme la description et les balises
Commande Description
devtunnel create Créer un tunnel de développement persistant
devtunnel list Répertorier les tunnels de développement
devtunnel show Afficher les détails du tunnel de développement
devtunnel update Mettre à jour les propriétés du tunnel de développement
devtunnel delete Supprimer un tunnel de développement
devtunnel delete-all Supprimer tous les tunnels de développement

Voici quelques exemples sur l’utilisation de ces commandes :

Exemples Description
devtunnel create -a Créez un tunnel de développement persistant qui autorise l’accès anonyme.
devtunnel create -d 'my tunnel description' Créez un tunnel de développement persistant avec une description non searchable.
devtunnel create --expiration 4h Créez un tunnel de développement persistant avec un délai d’expiration personnalisé. Le minimum est de 1 heure (1h) et le maximum est de 30 jours (30d).
devtunnel create myTunnelID Créez un tunnel de développement persistant avec un ID de tunnel personnalisé.
devtunnel create --tags my-web-app v1 Créez un tunnel de développement persistant et appliquez des balises pouvant faire l’objet d’une recherche.
devtunnel list --tags my-web-app Répertorie les tunnels de développement qui ont l’une des balises spécifiées.
devtunnel list --all-tags my-web-app v1 Répertorier les tunnels de développement qui ont toutes les balises spécifiées.
devtunnel show Affichez les détails du dernier tunnel de développement utilisé.
devtunnel show TUNNELID Afficher les détails d’un tunnel de développement.
devtunnel update TUNNELID -d 'my new tunnel description' Mettez à jour la description d’un tunnel de développement.
devtunnel update TUNNELID --remove-tags Supprimez toutes les balises d’un tunnel de développement.
devtunnel update TUNNELID --expiration 10d Mettez à jour un tunnel de développement avec une nouvelle heure d’expiration personnalisée. Le minimum est de 1 heure (1h) et le maximum est de 30 jours (30d).
devtunnel delete TUNNELID Supprimez un tunnel de développement.
devtunnel delete-all Supprimez tous vos tunnels de développement.

Conseil

La plupart des commandes CLI fonctionnent implicitement sur le tunnel de développement dernier utilisé, bien qu’il existe une option permettant de spécifier un ID de tunnel de développement si nécessaire.

Avancé : Gérer les ports de tunnel de développement

Un tunnel de développement créé à l’aide de la devtunnel create commande n’a pas de ports. Utilisez devtunnel port des commandes pour ajouter des ports avant l’hébergement :

Commande Description
devtunnel port create Créer un port de tunnel de développement
devtunnel port list Répertorier les ports de tunnel de développement
devtunnel port show Afficher les détails du port du tunnel de développement
devtunnel port update Mettre à jour les propriétés du port du tunnel de développement
devtunnel port delete Supprimer un port de tunnel de développement
Exemples Description
devtunnel port create -p 3000 --protocol http Ajouter un port avec le protocole spécifié
devtunnel port list TUNNELID Répertorier les ports actuels
devtunnel port show TUNNELID -p 3000 Afficher les détails du port 3000
devtunnel port update -p 3000 --description 'frontend port' Mettre à jour une description du port du tunnel de développement
devtunnel port delete -p 3000 Supprimer un port

Lors de la création d’un port, le protocole peut éventuellement être spécifié, si la détection automatique ne fonctionne pas correctement. Les options actuelles sont « http », « https » ou « auto » (par défaut). Si le port hébergé est HTTPS, il est recommandé de définir le protocole de port sur « https » ; sinon, « auto » est probablement bien.

Après avoir configuré un tunnel de développement à l’aide des commandes ci-dessus, commencez à l’héberger :

devtunnel host

Avancé : Gérer l’accès au tunnel de développement

Avec les commandes suivantes, les jetons d’accès au tunnel de développement peuvent être émis pour fournir à d’autres clients l’accès à votre tunnel de développement sans autoriser l’accès anonyme. Les commandes d’entrée de contrôle d’accès vous permettent de configurer le contrôle d’accès sur les tunnels de développement et les ports de tunnel de développement.

Commande Description
devtunnel token Émettre un jeton d’accès de tunnel de développement
devtunnel access create Créer une entrée de contrôle d’accès
devtunnel access list Répertorier les entrées de contrôle d’accès
devtunnel access delete Supprimer une entrée de contrôle d’accès
devtunnel access reset Réinitialiser les entrées de contrôle d’accès par défaut

Voici quelques exemples sur l’utilisation de ces commandes :

Exemples Description
devtunnel token TUNNELID --scopes connect Obtenez un jeton d’accès « connect » pour un tunnel de développement qui peut être partagé pour fournir un accès temporaire au tunnel de développement.
devtunnel access create TUNNELID --anonymous Activez l’accès anonyme du client sur le tunnel de développement.
devtunnel access create TUNNELID --anonymous --expiration 4h Activez l’accès du client anonyme sur le tunnel de développement avec un délai d’expiration de contrôle d’accès personnalisé. Le minimum est de 1 heure (1h) et le maximum est de 30 jours (30d).
devtunnel access create TUNNELID --port 3000 --anonymous Activez l’accès anonyme au client sur le port 3000.
devtunnel access create TUNNELID --tenant Activez l’accès actuel au locataire Microsoft Entra sur le tunnel de développement.
devtunnel access create TUNNELID --org ORG Activez un accès d’organisation GitHub par nom sur le tunnel de développement.

Conseil

L’accès de l’organisation GitHub nécessite l’installation de l’application GitHub Dev Tunnels dans l’organisation.

Commandes supplémentaires

Ces commandes peuvent être utilisées si vous devez définir ou annuler explicitement ce cache local du tunnel de développement dernier utilisé.

Commande Description
devtunnel set Définir le tunnel de développement par défaut
devtunnel unset Effacer le tunnel de développement par défaut

Commandes de diagnostic

Commande Description
devtunnel clusters Répertorier les clusters de service disponibles par emplacement
devtunnel echo Exécuter un serveur d’écho de diagnostic sur un port local
devtunnel ping Envoyer des messages de diagnostic à un serveur d’écho distant
Exemples Description
devtunnel clusters --ping Répertoriez les clusters de service disponibles triés par latence mesurée.
devtunnel echo http --port 8080 --interface 127.0.0.1 Démarrez un serveur de diagnostic http local sur le port 8080.

Résolution des problèmes

Pour résoudre les problèmes liés à l’interface devtunnel CLI, les conseils suivants peuvent être utiles :

  • Vérifiez que vous êtes sur la dernière version de l’interface devtunnel CLI. Vérifiez la version actuellement installée avec devtunnel --version.
  • L’option --verbose imprime les messages de débogage, qui peuvent fournir des informations de diagnostic supplémentaires.