Dev-Tunnel pour remplacer NGrok
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):
- Vous devez créer un TunnelID
- Vous devez y ajouter un ou plusieurs port d’écoute
- 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