English
Français

Blog of Denis VOITURON

for a better .NET world

Dev-Tunnel pour remplacer NGrok

Posted on 2024-06-02

Introduction

Il arrive régulièrement, par exemple lors d’un développement d’une application pour Microsoft Teams, que nous ayons besoin d’un un outil qui permet de créer des tunnels sécurisés vers des serveurs locaux. Notre développement local est ainsi accessible depuis Internet. En gros, le site web en développement sur la machine locale, est accessible depuis n’importe où via une URL publique temporaire.

Pour cela, le logiciel le plus connu est NGrok qui fait parfaitement le travail.

Mais depuis quelques mois, Microsoft propose une solution équivalente et gratuite: Dev Tunnel.

Installation

Avant de créer un tunnel dev, vous devez d’abord télécharger et installer l’outil CLI (Command Line Interface) devtunnel correspondant à votre système d’exploitation (voir toutes les commandes d’installation ici).

winget install Microsoft.devtunnel

Login

Pour démarrer un tunnel de développement, vous devez d’abord vous connecter avec un compte Microsoft ou GitHub. Les tunnels de développement ne permettent pas d’héberger des tunnels de manière anonyme.

devtunnel user login

Tunnel

Une fois connecté, vous pouvez commencer à héberger un tunnel dev à l’aide de la commande host. Vous devez préalablement démarrer votre serveur web local, par exemple en écoute sur le port http 4444 ou sur le port sécurisé https 5000. Vous pouvez faire cela via l’outil dotnet serve ou tout autre commande d’hébergement.

# Start a HTTP local server
dotnet serve -p 4444 --directory ./

# Start an HTTPS local server
dotnet serve -p 5000 --tls --directory ./

La commande Dev Tunnel est alors…

devtunnel host -p 4444 --allow-anonymous
devtunnel host -p 5000 --allow-anonymous --protocol https

A chaque exécution de cette commande devtunnel host, un nouceau domaine temporaire est créé.

Persistent Tunnel

Si vous souhaitez que le domaine soit persiste sur plusieurs jours (maximum 30 jours):

  1. Vous devez créer un TunnelID
  2. Vous devez y ajouter un ou plusieurs port d’écoute
  3. Vous pouvez démarrer ce tunnel grâce à son ID.
devtunnel create my-tunnel --allow-anonymous --expiration 30d
devtunnel port create my-tunnel -p 5000

Lors du premier démarrage du Tunnel, un domaine sera généré. Il sera identique pendant les 30 prochains jours.

devtunnel host my-tunnel

Exemple:

▶️❯ devtunnel create my-tunnel --allow-anonymous --expiration 30d

        Welcome to dev tunnels!
        CLI version: 1.0.1301+f410beb2af

        By using the software, you agree to
          - the dev tunnels License Terms: https://aka.ms/devtunnels/tos
          - the Microsoft Privacy Statement: https://privacy.microsoft.com/privacystatement

        Report issues on GitHub: https://aka.ms/devtunnels/issues
        Use 'devtunnel --help' to see available commands or visit: https://aka.ms/devtunnels/docs

        Tunnel ID             : my-tunnel.euw
        Description           :
        Labels                :
        Access control        : {+Anonymous [connect]}
        Host connections      : 0
        Client connections    : 0
        Current upload rate   : 0 MB/s (limit: 20 MB/s)
        Current download rate : 0 MB/s (limit: 20 MB/s)
        Tunnel Expiration     : 30 days

        Set default tunnel to my-tunnel.

▶️❯ devtunnel port create my-tunnel -p 5000 --protocol https

        Tunnel ID             : my-tunnel.euw
        Port Number           : 5000
        Protocol              : auto
        Access control        : {Inherited: +Anonymous [connect]}
        Client connections    : 0

▶️❯ devtunnel host my-tunnel

        Hosting port: 5000
        Connect via browser: https://hj8h5tk6.euw.devtunnels.ms:5000, https://hj8h5tk6-5000.euw.devtunnels.ms
        Inspect network activity: https://hj8h5tk6-5000-inspect.euw.devtunnels.ms

        Ready to accept connections for tunnel: my-tunnel

Langues

EnglishEnglish
FrenchFrançais

Suivez-moi

Articles récents