Accueil Divers
routeur4g.fr est financé par ses lecteurs. Quand vous achetez en passant par les liens du site, nous pouvons toucher une commission d’affiliation.

[TUTO] Accéder à son LAN derrière un routeur 4G, depuis l'extérieur, avec ngrok

2

Réponses

  • BoxterBoxter Membre Messages: 59
    merci a toi :)
  • Wolfen38Wolfen38 Membre Messages: 36
    Modifié (octobre 2019)
    oga83 a dit :
    Wolfen38 a dit :
    Pour le moment, avec la freebox, je pouvais accéder à ma domotique juste avec des redirections de port sur la freebox et le routeur, et comme pas possible avec la box 4G, j'avais essayé ce tuto mais j'ai pas vu ou ca expliquait l'histoire du serveur web
    Tu n'as toujours pas précisé quels ports tu voulais rediriger, comment tu accédais à ta domotique, ni la commande ngrok que tu utilisais. Le tuto montre comment accéder à un serveur web du LAN. C'est juste un exemple.
    Si tu veux accéder à un autre service (vnc, domotique, ...) avec une redirection de port différente, il faut ajuster la commande ngrok. Par exemple, pour accéder à un VNC sur le port 5900 de la machine 192.168.1.99, il faut utiliser la commande :
    192.168.1.99:5900
    ngrok -proto=tcp 

    J'ai actuellement 2 ports d'ouvert, le 80 pour accéder à ma domotique sur mon raspberry, et le port 443 pour acces en ssh.
    Donc pour le moment, avec ma freebox, j'ai ouvert ces 2 port sur la freebox et sur le routeur.

    Sur la freebox, j'ai ouvert l'acces a distance, donc pour acceder a ma domo, et a mon rasp complet de l'exterieur, je tape l'url de free suivi du port.

    Et la commande que je lance dans ngrok, c'est celle du tuto 
    ./ngrok http ipdemonrasp:80
  • oga83oga83 Membre Messages: 1121
    Modifié (mai 2020)
    Si l'url
    http://ipdemonrasp:80
    fonctionne sur un autre PC du LAN, alors ça doit fonctionner avec ngrok.
    Si ngrok est lancé sur le même rapsberry, la commande "ngrok http 80" est suffisante.

    Message edité par pioc34 on
  • Wolfen38Wolfen38 Membre Messages: 36
    Modifié (octobre 2019)
    OK, je mettais gourré, c'etait pas le port 80 mais 8080.

    J'ai un autre soucis, quand j'accédais avant à distance à ma domotique, ca me demandait mon couple identifiant/mdp, maintenant avec ngrok, j’accède sans protection.

    Et autre chose je lance ngrok via mon pc portable connecté au rasp en ssh avec putty, mais si je ferme ma fenetre putty, ca coupe aussi ngrok sur le rasp. J'ai installé ngrok sur le rasp car il reste allumé, mais le portable, lui, je l'éteins.

    Pourquoi ngrok se coupe alors qu'il est sur le rasp et que celui ci reste allumé ? Comment faire ?
  • oga83oga83 Membre Messages: 1121
    ça ne vient pas de ngrok mais de la config de ton serveur web domotique.
    Il est possible qu'il accepte les connexions sans authentification lorsqu'elles proviennent de 127.0.0.1 (ce qui est quand même une faille de sécurité)
    Dans ce cas, il suffit de changer la commande ngrok par :
    <div>ngrok http 8080 (équivalente à ngrok http 127.0.0.1:8080)<br></div>
    par
    <div>ngrok http AdresseIpLanDuRpi:8080</div><div></div>


  • oga83oga83 Membre Messages: 1121
    Modifié (octobre 2019)
    Wolfen38 a dit :
    Pourquoi ngrok se coupe alors qu'il est sur le rasp et que celui ci reste allumé ? Comment faire ?
    Parce que ton process lancé en foreground avec ssh devient orphelin.
    Le mieux est de le lancer avec une commande @reboot de crontab. Voir ici.
    <div>crontab -e</div>
    Ajouter à la fin la ligne :
    @reboot /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080

  • Wolfen38Wolfen38 Membre Messages: 36
    OK pour le crontab, donc je mets ca, je reboot le rasp, et il lancera en interne ngrok.

    Par contre, pour le moment, j'ai que la version gratuite de ngrok car je ne sais pas encore si je vais garder la box 4G, donc en faisant ainsi par le crontab, je ne peux pas obtenir le lien ngrok ?
  • oga83oga83 Membre Messages: 1121
    Modifié (octobre 2019)
    @reboot /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log
    Une fois démarré, tu vas voir dans /tmp/ngrok.log
    L'authentification fonctionne avec l'adresse LAN du Rpi ?
  • Wolfen38Wolfen38 Membre Messages: 36
    Modifié (octobre 2019)
    oga83 a dit :
    L'authentification fonctionne avec l'adresse LAN du Rpi ?
    Je ne comprends pas ta question.

    J'ai du encore raté un truc dans le crontab, il y a bien un fichier log de créer mais rien dedans....
    et si je tape la commande dans putty, ca dit "-bash: /tmp/ngrok.log: Permission non accordée"
    Message edité par Wolfen38 on
  • oga83oga83 Membre Messages: 1121
    La question est relative à ça :
    Wolfen38 a dit :
    J'ai un autre soucis, quand j'accédais avant à distance à ma domotique, ca me demandait mon couple identifiant/mdp, maintenant avec ngrok, j’accède sans protection.
    Est-ce que c'est réglé en faisant comme je t'ai dit ? (AdresseIPLanDuRpi à la place de l'adresse par défaut localhost)
    Wolfen38 a dit :
    J'ai du encore raté un truc dans le crontab, il y a bien un fichier log de créer mais rien dedans....
    et si je tape la commande dans putty, ca dit "-bash: /tmp/ngrok.log: Permission non accordée"
    A faire en root...
    Dans putty :
    sudo /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log
    Si les infos sont encore affichées à l'écran et pas dans le fichier log, il faut rediriger stdout et stderr :
    2>&1@reboot /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log 

  • BoxterBoxter Membre Messages: 59
    j'ai été voire pour les multiple tcp mais je suis completement paumer lol .....
    je devrais plutot faire un truc du genre ?
    authtoken: 
      first:
        addr: 3002
        proto: tcp   
      second:
        addr: 8080
        proto: tcp
    <br>
  • Wolfen38Wolfen38 Membre Messages: 36
    oga83 a dit :
    Est-ce que c'est réglé en faisant comme je t'ai dit ? (AdresseIPLanDuRpi à la place de l'adresse par défaut localhost)
    A faire en root...
    Dans putty :
    sudo /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log
    Si les infos sont encore affichées à l'écran et pas dans le fichier log, il faut rediriger stdout et stderr :
    2>&1@reboot /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log 

    Pour l'accès sécurisé, je ne peux pas réessayer pour le moment car j'arrive pas a lancer autrement que putty, mais quand j'avais fait c'etait deja avec l'ip du rasp, pas le localhost donc j'ai surement encore le probleme.

    Quand je lance la commande dans putty que tu as donné, putty fige, j'ai juste le curseur et rien ne se passe. Ni d'info diret a l'ecran de putty, ni dans le log, son heure change, mais le fichier reste vide.
  • Wolfen38Wolfen38 Membre Messages: 36
    En tout cas, merci pour toute ton aide
  • Wolfen38Wolfen38 Membre Messages: 36
    Du coup quelqu'un voit pourquoi ca bloque mon putty quand je lance 
    sudo /CheminCompletVersNgrok/ngrok http AdresseIpLanDuRpi:8080 >/tmp/ngrok.log


  • oga83oga83 Membre Messages: 1121
    ça me semble un peu normal : cette commande est bloquante jusqu'à ce que le programme se termine.
    Tu peux l'arrêter avec un Control-C.
    Idem quand tu la lances sans le >/tmp/ngrok.log, non ?

    Quoi qu'il en soit, je viens de le tester, et la bonne commande pour obtenir l'url dans la log est :
    <code>/tmp/ngrok.log http AdresseIpLanDuRpi:8080 >/dev/null 2>&1@reboot /CheminCompletVersNgrok/ngrok -log=
    Et le fichier /tmp/ngrok.log contiendra l'url dans cette ligne :
    <div>t=2019-10-13T10:12:21+0200 lvl=info msg="started tunnel" obj=tunnels name="command_line (http)" addr=http://192.168.0.1:80 url=http://d1b42667.ngrok.io<br></div>


  • Wolfen38Wolfen38 Membre Messages: 36
    Modifié (octobre 2019)
    J'ai essayé la commande dans putty, donc sans le @reboot, mais avec sudo à la place, et pas de fichier log de créer, par contre, putty ne bloque pas, je reviens sur l'invite normal pour entrée nouvelle commande.

    Et avec le reboot, ca m'a bien créer le log mais toujours vide....
  • oga83oga83 Membre Messages: 1121
    Modifié (octobre 2019)
    Alors il y a une erreur dans ta commande (chemin,  IP, ...).
    Chez moi, ça marche.
    Enlève la redirection pour voir l'erreur.
  • Wolfen38Wolfen38 Membre Messages: 36
    Autre question pour essayer que ca fonctionne.

    J'ai suivi un tuto pour installer un serveur web sur mon rasp, mais est ce que le fait d'avoir reboot mon rasp a arreté le serveur ? faut il que je le relance manuelllement ? et si oui comment ?

    Merci.
  • Wolfen38Wolfen38 Membre Messages: 36
    Modifié (octobre 2019)
    Pour faire l'essai j'ai lancé la commande ./ngnork http iprasp:8080 dans putty et ça me dit que pas possible car service déjà actif.
    Donc j'imagine que la commande fonctionne bien et que c'est juste dans l'écriture du fichier log que j'ai un problème
  • oga83oga83 Membre Messages: 1121
    Le mieux serait de ne pas mélanger les problèmes en introduisant une autre redirection sur un autre service...
    oga83 a dit :
    Enlève la redirection pour voir l'erreur.
    As-tu fait ce que j'avais suggéré ?
  • Wolfen38Wolfen38 Membre Messages: 36
    Je viens d'essayer ça

    /home/pi/ngrok -log=stdout http iprasp:8080 >/tmp/ngrok.log &
    
    Maintenant y a quelques choses dans le log mais pas l'URL
  • oga83oga83 Membre Messages: 1121
    oga83 a dit :
    Quoi qu'il en soit, je viens de le tester, et la bonne commande pour obtenir l'url dans la log est :
    <code>/tmp/ngrok.log http AdresseIpLanDuRpi:8080 >/dev/null 2>&1@reboot /CheminCompletVersNgrok/ngrok -log=
    oga83 a dit :
    Enlève la redirection pour voir l'erreur.
    Difficile de t'aider si tu ne testes pas ce qu'on te propose
  • Wolfen38Wolfen38 Membre Messages: 36
    J'ai essayé donc pour enlever redirection et pas de fichier log de créer

    <code>/tmp/ngrok.log  >/dev/null 2>&1
    
    @reboot /CheminCompletVersNgrok/ngrok -log=
  • oga83oga83 Membre Messages: 1121
    Copie d'écran de la commande et du résultat, stp.
  • Wolfen38Wolfen38 Membre Messages: 36
    Voilà mon crontab. Pour résultat bah pas de fichier log donc rien a montrer
  • oga83oga83 Membre Messages: 1121
    1- La commande dans le Crontab n'a aucune redirection de port. Normal que ça ne marche pas.
    2- Il faut replacer "Enlève la redirection pour voir l'erreur" dans son contexte où tu avais une erreur dans ta commande sudo.
    oga83 a dit :
    Alors il y a une erreur dans ta commande (chemin,  IP, ...).
    Chez moi, ça marche.
    Enlève la redirection pour voir l'erreur.
    Ici, je parle de la redirection stdout/stderr... pas de la redirection des ports. Enlever la redirection permettra de voir l'erreur (et de comprendre pourquoi cette commande rend la main immédiatement comme tu l'as mentionné).
    Pour être précis, la commande a essayer est :
    <code>/tmp/ngrok.log http AdresseIpLanDuRpi:8080sudo /CheminCompletVersNgrok/ngrok -log=

  • Wolfen38Wolfen38 Membre Messages: 36
    Ça me donne ça, l'URL n'apparaît pas

  • Wolfen38Wolfen38 Membre Messages: 36
    Et aucun fichier log dans tmp
  • oga83oga83 Membre Messages: 1121
    La réponse est sur la dernière ligne :
    On ne doit pas avoir la même version de ngrok.
    Essaye de mettre le paramètre http en premier :
    <code>/tmp/ngrok.log AdresseIpLanDuRpi:8080sudo /CheminCompletVersNgrok/ngrok http -log=


  • Wolfen38Wolfen38 Membre Messages: 36
    Super t'es trop fort.

    J'ai le log avec l'URL dedans.

    Mais nouveau problème, quand j'essaie l'URL, j'ai ce message 


Connectez-vous ou Inscrivez-vous pour répondre.