Un tunnel Ngrok pour rendre votre Localhost publique!

Un tunnel Ngrok pour rendre votre Localhost publique!

Un cas d’utilisation très répondu de NGROK est quand vous voulez utiliser une application ou service qui demande l’ouverture d’un port, et que vous n’avez pas très envie d’accéder à la config du pare-feu de votre routeur et l’ouvrir, par manque de temps, pour les risques de sécurité que ça représente ou tout simplement parce que comme moi, vous êtes un grand fainéant !

Par exemple : vous voulez montrer rapidement les mises à jour de votre dernier projet à votre client, vous travaillez sur un Mac et vous voulez tester la compatibilité de votre conception avec Internet Explorer sur un ordinateur Windows, ou tester sa réactivité sur tablettes mobiles et d’autres, mais vous n’avez pas envie, ou vous ne pouvez pas ouvrir le port 80, pas besoin de payer une fortune pour louer un serveur public, NGROK est ce qu’il vous faut.

C’est est un logiciel couplé à un service web qui va vous permettre de créer un tunnel à partir d’Internet vers un port de votre choix sur votre machine en local (TCP ou UDP). il suffit de l’installer (Mac, Linux, Windows) et de partager avec ceux que vous voulez, l’URL fournie par le service qui sera de type : http://exemple.ngrok.com.

Ce n’est pas tout, ce service vous permet de faire beaucoup plus que du simple Tunneling. Il garde des logs de tout le trafic HTTP qui traverse le tunnel, vous permettant ainsi de débugger plus facilement vos entêtes HTTP, les transmissions JSON/XML, les données de formulaires…etc. Vous allez pouvoir surtout rejouer chacune de ces requêtes.

Ça fonctionne aussi bien en HTTPS qu’en HTTP, vous pouvez même mettre un mot de passe sur votre sous-domaine pour éviter les intrus…

ngrok

Installez-le :

1- Téléchargez le fichier zip de https://ngrok.com/download, c’est entièrement gratuit.
2- décompressez le.
3- selon votre OS :

Windows : déplacez l’exécutable vers C:/Windows/
Linux et Mac : Rendez le ficher exécutable avec la commande chmod +x ngrok et déplacez le binaire vers $PATH avec la commande mv ngrok /usr/local/bin.

Comment utiliser NGROK :

Maintenant, imaginez que mon serveur web fonctionne sur ma machine locale sur le port 8000 (Lisez comment utiliser python pour lancer un serveur web depuis n’importe quel répertoire). Pour créer un tunnel et transmettre une URL pour mon client, je n’ai qu’à taper dans mon terminal:

$ ngrok 8080

Résultat de la commande :

ngrok                                                     (Ctrl+C to quit)

Tunnel Status                 online
Version                       1.7/1.6
Forwarding                    http://2fc2033b.ngrok.com -> 127.0.0.1:8000
Forwarding                    https://2fc2033b.ngrok.com -> 127.0.0.1:8000
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

Ok, alors maintenant il ne me reste que communiquer l’url http://2fc2033b.ngrok.com à mon client pour qu’il se connecte à ma machine locale à travers le tunnel NGROK fraîchement créé et visualise le projet.

Options lors de l’utilisation d’un auth token (jeton d’authentification) :

Si jamais vous décidez de créer un compte NGROK gratuitement, l’une des options intéressantes qui vous sera proposée consiste à personnaliser le sous-domaine à utiliser. Pour cela, vous devrez utiliser le auth token spécifié dans votre tableau de bord afin d’ajouter votre sous-domaine personnalisé en exécutant la commande :

$ ngrok -authtoken XXXXXXXXXXXXX -subdomain=exemple 8000

Résultat de la commande :

ngrok                                                    (Ctrl+C to quit)

Tunnel Status                 online                                                     
Version                       1.7/1.6                                                    
Forwarding                    http://exemple.ngrok.com -> 127.0.0.1:8000                 
Forwarding                    https://exemple.ngrok.com -> 127.0.0.1:8000                
Web Interface                 127.0.0.1:4040                                             
# Conn                        0                                                          
Avg Conn Time                 0.00ms

configuration avancée :

Le fichier de configuration de NGROK est un fichier YAML très simple à utiliser totalement facultatif qui vous permet d’utiliser certaines des fonctionnalités les plus avancées de NGROK comme:

  • L’exécution simultanée de plusieurs tunnels.
  • La connexion à un serveur de NGROK personnalisé.
  • De peaufiner certains des réglages les plus arcanes de NGROK.
  • L’exécution de plusieurs tunnels simultanément.

Pour exécuter plusieurs tunnels, vous devez configurer chaque tunnel dans le fichier de configuration en utilisant le paramètre de tunnels. Le paramètre de tunnels prend un dictionnaire de noms des configurations de tunnel. A titre d’exemple, nous allons définir la configuration pour trois tunnels différents. Le premier sera un tunnel pour un site client qui nous travaillons dessus et qui ne fait passer que du trafic HTTPS et exige l’authentification. La seconde sera la configuration d’un tunnel pour nous permettre d’accéder à notre propre machine à distance via SSH via tunnel au port 22. Et pour finir, nous allons créer un tunnel qui fonctionnera sur notre propre nom de domaine personnalisé pour montrer les projets à un hackathon.

tunnels:
  client:
    auth: "user:password"
    proto:
      https: 8080
   ssh:
    proto: 
      tcp: 22
   hacks.parlonsgeek.com:
    proto:
      http: 9090

Nous pouvons alors commencer les trois tunnels simultanément en utilisant la commande NGROK suivie par les noms des tunnels que nous voulons démarrer:

ngrok start client ssh hacks.parlonsgeek.com

Le reste des configs vous pouvez le trouver dans la doc du site, et aussi en exécutant la commande ngrok -h, je vous invite à y jeter un coup d’œil c’est très intéressant.

Merci pour la lecture! au plaisir de vous voir dans un autre tuto, Bye Bye!

Adnane Elbakkali

Adnane Elbakkali, un jeune blogueur Marocain de 20 ans, fan de tout ce qui est hight tech et nouvelles technologies, j'ai commencé à écrire dans des blog depuis 2009, et j'ai décidé de créer celui la vers le début de 2012 afin de pouvoir partager toutes mes connaissances avec notre communauté ici à ParlonsGeek.

Des articles qui pourraient vous intéresser
  • ScriptTornado

    Tiens. ca c’est utile, vous pouvez egalement partager vos fichiers avec vos amis si vous disposez d’une bonne connection, ou streamer des films en simmultane.