Accès public à vos sites et services locaux ServBay avec Pinggy
Pinggy est un outil de tunneling réseau incroyablement simple à utiliser, qui exploite la technologie de proxy inverse pour exposer en toute sécurité vos services web locaux (hébergés, par exemple, dans l’environnement ServBay) sur Internet. Ce guide complet explique comment utiliser Pinggy avec ServBay afin de permettre aux développeurs de mettre rapidement leurs services web locaux à disposition sur le Web, facilitant ainsi les démonstrations à distance, la collaboration d’équipe ou la réception de requêtes Webhook.
Principe technique
Le fonctionnement principal de Pinggy repose sur l’établissement d’un tunnel SSH sécurisé. Il redirige le port du service installé localement (potentiellement derrière une NAT ou un pare-feu) via une connexion SSH vers le serveur public de Pinggy. Lorsque des utilisateurs distants accèdent à l’URL attribuée par Pinggy, les requêtes sont transférées, via ce tunnel, vers votre service local de façon sécurisée.
Dans le contexte de ServBay, cela signifie que vous pouvez exposer n'importe quel site web local en cours d’exécution (ex: https://myproject.servbay.demo
) à une URL publique via Pinggy, sans configuration complexe de redirection de ports ou d’ouverture de pare-feu.
Préparation de l’environnement
Utiliser Pinggy ne requiert aucune installation de logiciel client supplémentaire sur votre machine. Il vous faut simplement :
- ServBay installé et opérationnel : Assurez-vous que votre environnement ServBay est correctement installé, et que le(s) site(s) ou service(s) local(aux) à exposer fonctionnent convenablement.
- Site web ServBay actif : Configurez et lancez un ou plusieurs sites web dans ServBay. Ceux-ci sont généralement écoutés localement sur les ports 80 (HTTP) ou 443 (HTTPS) grâce au serveur intégré comme Caddy ou Nginx.
- Terminal compatible SSH : Le terminal intégré à macOS ou tout autre émulateur terminal prenant en charge SSH.
- Notions de base SSH : Savoir comment exécuter des commandes SSH dans le terminal.
Mise en place du tunnel
Commande principale
La création d’un tunnel Pinggy s’effectue simplement en lançant une commande SSH dans votre terminal. Voici un exemple de commande permettant d’exposer sur Internet un site local ServBay accessible sur le port 443 sous le nom servbay.new
:
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
Important : Remplacez XXXXXXXXXXX
par le nom d’utilisateur récupéré sur le site de Pinggy (habituellement une séquence de caractères), et servbay.new
par le domaine local du site défini dans ServBay que vous souhaitez rendre public (par exemple : myproject.servbay.demo
).
Explications des principaux paramètres :
Élément de paramètre | Description fonctionnelle |
---|---|
-p 443 | Spécifie que la connexion SSH au serveur Pinggy s’effectue via le port 443. L’utilisation du port HTTPS par défaut facilite le passage au travers du pare-feu. |
-R0:localhost:443 | Paramètre clé pour le redirect : 0 laisse le serveur Pinggy attribuer un port public aléatoire. Le trafic de ce port public sera tranféré vers localhost:443 sur votre machine, ce qui correspond typiquement à l’écoute HTTPS de ServBay. |
-o StrictHostKeyChecking=no | Désactive la vérification de la signature du serveur distant. Pratique pour des tests rapides, mais à activer pour un usage plus sécurisé et durable. |
-o ServerAliveInterval=30 | Envoie un signal "keep-alive" toutes les 30 secondes afin d’éviter la fermeture de la connexion SSH lors d’inactivité prolongée. |
-t [email protected] | Identifiant utilisateur Pinggy et serveur cible où XXXXXXXXXXX est votre ID Pinggy. |
x:localServerTls:servbay.new | Paramètre personnalisé Pinggy indiquant que votre service local gère TLS (HTTPS), et précisant le domaine local (servbay.new , à remplacer par votre vrai domaine). Utile pour assurer une gestion correcte du HTTPS côté Pinggy. |
"u:host:servbay.new" | Autre paramètre Pinggy, modifiant l’en-tête HTTP Host de la requête transférée afin de forcer le serveur web ServBay à répondre pour le domaine concerné. Indispensable si vous avez plusieurs sites/virtualhosts configurés dans ServBay. |
Après exécution de la commande, Pinggy affichera, dans le terminal, les URL publiques vous permettant d’accéder à votre service local. Généralement, une adresse HTTP et une adresse HTTPS vous seront fournies, par exemple :
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
2
Vérification de l’accessibilité du service
Lorsque le tunnel est en place, vérifiez l’accès Internet comme suit :
Test par
curl
(recommandé) : Utilisez la commandecurl
avec l’option-I
(en-têtes seulement) sur l’URL publique retournée par Pinggy :bashcurl -I https://rnirh-172-188-50-148.a.free.pinggy.link
1Si tout fonctionne, vous observerez un en-tête HTTP similaire à ceci, reflétant la réponse de votre serveur web local (Nginx, Caddy, etc.):
HTTP/1.1 200 OK Connection: close Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type, Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Allow-Origin: * Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private Connection: keep-alive Content-Type: text/html; charset=UTF-8 Date: Tue, 18 Feb 2025 11:51:48 GMT # La date variera Expires: Sun, 02 Jan 1990 00:00:00 GMT Pragma: no-cache Server: nginx # ou caddy selon la configuration ServBay Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Powered-By: PHP/8.4.3 # ou autre stack technique
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Voir un code
HTTP/1.1 200 OK
ainsi que le bon en-têteServer
indique que la connexion est réussie et prise en charge par ServBay.Test via navigateur : Ouvrez simplement l’URL HTTPS fournie par Pinggy (ex :
https://rnirh-172-188-50-148.a.free.pinggy.link
) sur n’importe quel appareil, même hors réseau local. Le contenu visualisé devra être identique à celui de l’accès local par ServBay.Attendus :
- Les utilisateurs du monde entier peuvent accéder à votre site ou service local via l’URL générée par Pinggy.
- Si votre service local utilise HTTPS (ServBay crée par défaut des certificats auto-signés), Pinggy activera automatiquement l’accès externe via HTTPS avec un certificat gratuit valide (CA publique, aucune configuration supplémentaire nécessaire).
- Les performances et la stabilité dépendront de votre connexion Internet, de la qualité du lien avec Pinggy, et de la charge côté Pinggy.
Astuces avancées
Exposer un autre port/service local : Votre service n’est pas web, ou écoute sur un port autre que 80/443 ? Modifiez simplement le port du paramètre
-R
. Ex : pour exposer le port 8000 (Python, Node.js...) :bashssh -p 443 -R0:localhost:8000 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected]
1Pour un service non HTTP ou qui n’utilise pas l’en-tête
Host
, omettez les paramètresx:localServerTls
etu:host
.Nom de domaine personnalisé (Pinggy Pro) : Les abonnés Pinggy Pro peuvent utiliser leur propre nom de domaine au lieu des sous-domaines Pinggy. Consultez la documentation officielle Pinggy pour les détails de configuration.
Tunnel persistant (
autossh
) : Les connexions SSH peuvent être interrompues (coupure réseau, etc.). Pour une disponibilité prolongée, utilisezautossh
, qui s’assure de la reconnexion automatique après une coupure. Installez-le (ex: sur macOS via Homebrewbrew install autossh
), puis démarrez-le comme suit :bashautossh -M 0 -t "ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new \"u:host:servbay.new\""
1L’option
-M 0
indique àautossh
de ne pas créer de port de monitoring supplémentaire, s’appuyant sur le keep-alive natif SSH pour la surveillance de la connexion.Commande sans token : Pinggy propose une option ne nécessitant pas d’inclure votre identifiant/token dans la commande ; il suffit d’obtenir un lien "One-Time" sur leur site. Pratique pour partager le tunnel sans risquer de fuite du token.
Cas d’utilisation courants
- Démonstrations à distance : Présentez votre site ou appli en cours de développement local sur ServBay à vos clients ou collègues sans publication sur un serveur staging ou de production.
- Débogage Webhook : Recevez des requêtes Webhook de tiers (paiements, GitHub...) et testez-les sur votre machine locale.
- Tests multi-appareils : Vérifiez la compatibilité responsive et la performance de vos sites locaux sur mobiles/tablettes non connectés à votre LAN.
- Collaboration d’équipe : Permet à chaque membre de l’équipe d’accéder aux services locaux partagés depuis ServBay, facilitant ainsi les tests croisés.
Dépannage
Problème | Solution |
---|---|
Connexion SSH échoue ou expire | Vérifiez votre accès à a.pinggy.io . Contrôlez aussi les éventuels blocages réseau des flux sortants sur le port 443. Vérifiez l’exactitude de votre identifiant Pinggy. |
L’URL Pinggy renvoie une erreur ou est inaccessible (502...) | Assurez-vous que votre site local fonctionne et écoute bien sur localhost:443 ou le port indiqué dans -R . Vérifiez la configuration ServBay du serveur web (Caddy/Nginx). |
L’URL Pinggy retourne une 404 ou la page par défaut ServBay | Si vous avez plusieurs sites/virtualhosts, assurez-vous que x:localServerTls et u:host pointent bien vers le domaine local voulu (ex: myproject.servbay.demo ). Indispensable en multi-site. |
Coupures sporadiques du tunnel | Possiblement dû à l'instabilité réseau ou timeout SSH. Augmentez la valeur de ServerAliveInterval , ou utilisez autossh pour la reconnexion automatique (voir Astuces). |
Erreur de certificat HTTPS | Par défaut, Pinggy délivre un certificat CA public. Si votre service local emploie un certificat auto-signé, votre navigateur peut afficher une alerte en interne. Pinggy règle le problème pour l’accès internet. Assurez-vous que votre service local écoute bien sur 443 et utilise HTTPS. |
Résumé de la solution
Avec Pinggy, les utilisateurs ServBay peuvent établir simplement et rapidement un accès public sécurisé à leurs services de développement local. Les atouts majeurs :
- Aucune installation de client : Déploiement et usage ultra-simplifiés.
- Commande unique : Démarrez le tunnel avec une seule ligne SSH.
- HTTPS automatique : Certificat public CA fourni, aucune crainte de problème SSL.
- Tunnel HTTP et TCP : Gère l’exposition de tout type de service.
- Compatibilité avancée ServBay : L’en-tête
Host
permet de cibler précisément un site local configuré. - Commande partagée sans token : Partage plus sûr des commandes pour la collaboration.
Contrairement à d'autres outils de tunnel nécessitant une installation lourde ou une configuration complexe, Pinggy propose une solution légère et rapide, idéale pour les développeurs ServBay souhaitant partager temporairement ou tester rapidement leurs services locaux. Pour un usage professionnel avec besoins de stabilité longue durée ou noms de domaine personnalisés, envisagez Pinggy payant. La combinaison de la puissance de ServBay en local et de la simplicité Pinggy ouvrira la voie à une productivité et une collaboration accrues dans vos projets de développement.