Lorsqu’on veut se connecter à un appareil en dehors de son réseau Wifi, il est nécessaire de configurer une redirection de port. Une fois votre Raspberry Pi ou ESP connecté à votre routeur internet, il est possible d’y accéder de n’importe où en configurant une redirection de port ou port forwarding.
N.B: Pour des raisons de cybersécurité, il peut être très dangereux de faire une redirection de port sans faire attention. Pour cette raison, vous ne devez mettre en place une redirection seulement si vous êtes sûr de ce que vous faites et vous devriez mettre en place les protections nécessaires (mot de passe, etc.).
Principe
Sur un même réseau, les appareils vont communiqué avec leurs adresses locales (ex: 192.168.x.xxx). Seul le routeur à une adresse public. Lorsqu’on configure une redirection de port, on demande au routeur d’ouvrir un port public et de le relier à une adresse locale.
Ex:
- router public IP : 82.95.256.144
- router local IP: 192.168.1.254
- device local IP: 192.168.1.17 (port par défaut 80)
Ainsi si on redirige le port 600 vers l’adresse IP de l’appareil, on pourra accéder à l’appareil en tapant 82.95.256.144:600
Cette procédure peut-être très utile pour développer des fonctions avancées de domotique ou d’IoT nécessitant un accès à distance sur Raspberry Pi, ESP8266, EP32 ou tout autres appareils possédant une connexion internet.
Trouver l’adresse IP de votre routeur
- Sous Raspberry Pi ou Linux
ip route
- Sous Windows
ipconfig
Ces commandes donnent, entre autre, l’adresse IP locale de votre routeur (ici 192.168.1.254)
Vous pouvez utiliser la commande netstat -a pour obtenir la liste des connexions à l’équipement ainsi que les ports utilisés.
Configurer la redirection de port
Dans votre navigateur, vous pouvez entrer l’adresse IP pour accéder à la page d’accueil du routeur. Il vous sera demandé vos identifiants pour vous connecter.
N.B: La procédure de redirection de port est différente d’une box à une autre, En recherchant « nom-de-la-box Port Forwarding » sur internet, vous devriez tomber sur la marche à suivre.
Ensuite chercher l’option « Redirection de port » ou NAT/PAT. Sur une bbox, Services de la Box > Redirection de Port> Configuration
Cliquez sur « Ajouter une règles » et entrez les informations de redirections
D’après l’exemple précédent:
- Nom de la règle: MyPortForwarding
- Protocole: TCP
- Adresse IP locale de l’équipement : 192.168.1.17
- Port interne: 80 (peut être un ensemble de valeur)
- Port externe: 600
N.B: Le port externe peut prendre une valeur entre 0 et 65535. Les numéros de port inférieurs à 1024 ou supérieurs à 49150 sont réservés au système.
Applications
- Créer une interface web pour piloter votre Raspberry Pi
- Créer une interface web pour piloter votre ESP32
- Accéder à votre appareil depuis n’importe où avec NoMachine
Bonjour,
J’ai une LiveBox Play.
IP Config m’a donné son adresse IP (adresse très basique, c’est la même qui me sert à me connecter à cette Livebox avec mon mdp)
J’ai déroulé les menus jusqu’à trouver un tableau qui me demande:
* Application service: je pense que je mets ce que je veux
* Port Interne: je met 80?
* Port Externe: je met 600?
* Protocole: je choisi TCP
* Appareil: je met l’adresse IP de mon ESP32
* Activer: il n’y a rien pour l’instant
et enfin un bouton « ENREGISTRER »
Est-ce que je ne fais pas une erreur?
Ensuite, quelle commande je devrais taper depuis n’importe quel réseau pour accéder à mon ESP.
J’ai vu quelque part une commande style: IP LiveBox:600
Est-ce cela? car cette commande est sûrement commune à beaucoup d’équipements?
Comment être sûr que cela va s’adresser à mon ESP?
Cdlt
Bonjour,:
Vous mettez 80, si le port utilisé par l’ESP est le port par défaut
Pour le port externe 0 à 65535. Les numéros de port inférieurs à 1024 ou supérieurs à 49150 sont réservés au système
Vous pouvez toujours supprimer la règle si ça ne fonctionne pas.
LiveBox doit être un alias local de l’IP de la box.
Pour accéder à la page web de n’importe où, vous devez entrer l’
Bonjour,
J’ai fait ma redirection de port, sans difficulté car c’est bien expliqué.
Par contre je n’ai pas de résultat.
J’ai pris le port externe 600
Depuis mon smartphone, je me connecte avec xx.xxx.xx.xx:600 (xx.xxx.xx.xx = adresse public de ma box) et je me connecte à la page web chargée dans l’ESP32.
Quand j’appui sur le bouton ON (c’est le simple programme d’allumage d’une led), je vois qu’est envoyé xx.xxx.xx.xx:600/on2 mais il ne se passe rien à l’arrivée.
Sur le moniteur série je vois que la box s’est connectée puis déconnectée et rien d’autre.
Où est le problème?
Est-ce du au fait que je fais ce test à côté de ma box et non pas depuis un autre réseau wifi?
Cdlt
Bonsoir,
Je complète et corrige mon post précédent.
En fait, j’ai bien vu, dans la barre de mon smartphone, que l’url xx.xxx.xx.xx:600/on2 était bien envoyée mais non reçue par l’ESP32. Mais si j’appui plusieurs fois (parfois 5 ou 6), l’ESP arrive à voir la ligne.
Donc, à mon avis, le problème est plutôt dans le programme.
Bonjour,
Merci pour ce commentaire.
Est-ce que le programme fonctionnait correctement en local?
Le code fonctionne correctement chez moi.
Vous pouvez essayer de décommenter la ligne client.println(« « );
Vous pouvez aussi tester un autre port