Accéder à vos applications web locales en toute sécurité avec Tailscale
Vous êtes en plein développement d’une fonctionnalité. Votre designer doit la vérifier sur sa machine. Vos options : pousser une branche inachevée vers un serveur de staging, vous battre avec le port forwarding, ou lancer ngrok en espérant que le tunnel reste actif. Aucune de ces solutions n’est satisfaisante.
Tailscale offre une approche plus élégante. Cet article explique comment utiliser Tailscale Serve pour accéder de manière sécurisée à vos applications web locales depuis différents appareils et avec vos coéquipiers — sans ouvrir de ports de pare-feu ni configurer de reverse proxies.
Points clés à retenir
- Un tailnet donne à chaque appareil une connexion stable et chiffrée via WireGuard — sans IP statiques, configurations VPN ou règles de pare-feu nécessaires.
- Tailscale Serve expose un serveur de développement local à votre tailnet avec HTTPS automatique, des noms d’hôte stables et aucun port ouvert.
- Tailscale Funnel étend cet accès à l’internet public lorsque vous devez partager avec des personnes extérieures à votre tailnet.
- L’ensemble du workflow remplace les déploiements sur staging, le port forwarding et les outils de tunneling pour la plupart des scénarios de revue interne.
Qu’est-ce qu’un tailnet et pourquoi est-ce important pour le développement local
Lorsque vous installez Tailscale sur vos appareils, ils rejoignent un réseau privé chiffré appelé tailnet. Chaque appareil obtient une adresse IP stable et un nom d’hôte DNS qui fonctionne de manière cohérente quel que soit le réseau Wi-Fi sur lequel vous vous trouvez.
C’est la fondation. Votre ordinateur portable dans un café et votre ordinateur de bureau à la maison sont sur le même tailnet — et ils peuvent se joindre directement via un tunnel WireGuard chiffré. Pas d’IP statiques, pas de configuration VPN, pas de règles de pare-feu.
Tailscale Serve : l’outil adapté pour sécuriser vos serveurs de développement locaux
Tailscale Serve expose un service local — par exemple, un serveur de développement tournant sur localhost:3000 — aux autres appareils à l’intérieur de votre tailnet. C’est l’outil approprié lorsque votre audience est votre équipe, et non l’internet public.
Pour partager une application web locale avec vos coéquipiers, exécutez :
tailscale serve 3000
C’est tout. Tailscale provisionne automatiquement un certificat HTTPS via MagicDNS et rend votre application disponible à une URL stable comme :
https://your-device-name.your-tailnet.ts.net
N’importe quel coéquipier avec Tailscale installé et les bonnes permissions d’accès peut ouvrir cette URL de n’importe où — d’une ville différente, d’un réseau différent — et accéder directement à votre serveur de développement local.
Ce que Serve gère pour vous
- HTTPS automatique — Tailscale gère les certificats TLS. Aucun avertissement de certificat auto-signé.
- Nom d’hôte stable — L’URL ne change pas entre les sessions.
- Aucun port ouvert — Votre service local est lié à
localhost. Rien n’est exposé à l’internet public. - Propagation d’identité — Tailscale peut transmettre l’identité de l’utilisateur authentifié à votre backend via des en-têtes de requête (
Tailscale-User-Login,Tailscale-User-Name), ce qui est utile pour un contrôle d’accès léger dans les environnements de développement.
Pour la sécurité, gardez votre serveur de développement lié à localhost (le comportement par défaut de la plupart des frameworks). Tailscale Serve agit comme la couche de proxy sécurisée — votre application n’a jamais besoin d’écouter sur une interface publique.
Discover how at OpenReplay.com.
Tailscale Serve vs Funnel : comprendre la différence
Cette distinction est importante et mérite d’être explicite.
| Tailscale Serve | Tailscale Funnel | |
|---|---|---|
| Qui peut y accéder | Membres du tailnet uniquement | N’importe qui sur l’internet public |
| Cas d’usage | Collaboration d’équipe, revue interne | Démos client, test de webhooks |
| HTTPS | Oui (MagicDNS) | Oui |
| Nécessite Tailscale sur l’appareil du visiteur | Oui | Non |
Utilisez Serve pour partager avec des coéquipiers qui ont déjà Tailscale. Utilisez Tailscale Funnel lorsque vous avez besoin que quelqu’un en dehors de votre tailnet — un client, un stakeholder, un fournisseur de webhook — accède à votre service local.
Pour exposer votre application publiquement avec Funnel :
tailscale funnel 3000
Le format de l’URL est le même, mais le trafic est désormais routable depuis l’internet ouvert. Utilisez ceci délibérément et uniquement lorsque nécessaire.
Scénarios concrets où ce workflow excelle
- Revue de design responsive — Partagez un serveur de développement Next.js avec un designer sur un réseau différent sans rien déployer.
- Pair programming à distance — Un coéquipier ouvre votre application locale dans son navigateur pendant que vous codez.
- Prévisualisations pour stakeholders — Utilisez Funnel pour un lien de démo à durée limitée sans créer d’environnement de staging.
- Tests mobile — Accédez à votre serveur de développement
localhostdepuis votre téléphone, qui est également sur votre tailnet.
Pour commencer
- Téléchargez et installez Tailscale sur chaque appareil.
- Connectez-vous et assurez-vous que MagicDNS est activé dans votre console d’administration.
- Démarrez votre serveur de développement sur
localhost:3000(ou n’importe quel port). - Exécutez
tailscale serve 3000sur la machine hôte. - Ouvrez l’URL
https://fournie sur n’importe quel autre appareil du tailnet.
Pour arrêter le partage, exécutez :
tailscale serve reset
Conclusion
Tailscale Serve élimine les frictions liées au partage du travail de développement local. Votre équipe obtient un lien HTTPS stable et chiffré. Votre service reste sur localhost. Vous évitez complètement le serveur de staging pour les revues internes. Lorsque vous avez réellement besoin d’un accès public, Funnel n’est qu’à une commande. L’ensemble de la configuration prend quelques minutes et ne nécessite aucun changement d’infrastructure — installez simplement Tailscale, exécutez une seule commande et partagez l’URL.
FAQ
Oui. Tailscale Serve expose uniquement votre service local aux membres authentifiés de votre tailnet via une connexion WireGuard chiffrée. Votre serveur de développement reste lié à localhost et n'est jamais accessible depuis l'internet public. L'accès est régi par les contrôles d'accès de votre tailnet (tels que les grants ou les politiques ACL), de sorte que seuls les coéquipiers autorisés peuvent se connecter.
Absolument. Tailscale Serve fonctionne avec n'importe quel service local qui écoute sur un port TCP. Que vous exécutiez un serveur de développement React, une application Django, un serveur Rails ou un simple serveur de fichiers statiques, il vous suffit de pointer Tailscale Serve vers le bon numéro de port et il s'occupe du reste.
L'URL servie devient inaccessible car le serveur de développement sous-jacent et le processus Tailscale ne sont plus actifs. Tailscale Serve ne maintient pas votre application en cours d'exécution de manière indépendante. Lorsque vous rouvrez votre ordinateur portable et redémarrez votre serveur de développement, exécuter à nouveau tailscale serve restaure l'accès à la même URL stable.
La disponibilité dépend du plan utilisé par votre tailnet. Tailscale propose un plan Personnel gratuit avec un nombre limité d'utilisateurs et d'appareils, tandis que les équipes et organisations peuvent nécessiter un plan différent selon la configuration du tailnet.
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.