Le VPN classique dont on a parlé sur ce blog (OpenVPN etc) suit un modèle client → serveur : toutes les connexions passent par un point central. Pratique, mais vite limité quand on veut relier plusieurs machines, sites ou serveurs entre eux sans devenir l’admin d’une PKI artisanale.
Les mesh VPN changent la donne : chaque machine est un pair, les tunnels se créent directement entre les machines (peer-to-peer), et une couche centrale, le control plane, s’occupe de distribuer les clés et de faire du NAT traversal pour vous. Résultat : vous installez un client, vous vous authentifiez, et hop, toutes vos machines se voient, même derrière le NAT de votre FAI ou d’un hôtel.
Trois solutions dominent le marché de l’homelab : Tailscale, Headscale et NetBird. Les trois reposent sur WireGuard sous le capot. Voyons comment choisir.
Le principe : control plane et data plane
Pour bien comprendre la suite, il faut distinguer deux choses :
- Le control plane : le service qui connaît vos machines, distribue les clés publiques, gère les ACL, et indique aux pairs où se joindre. C’est LUI qu’on veut pouvoir auto-héberger ou pas.
- Le data plane : le trafic réel. Avec ces trois solutions, il passe directement entre vos machines, chiffré en WireGuard. Il ne transite (normalement) jamais par le serveur central, sauf en mode relais quand le NAT traversal échoue.
La vraie question qui détermine votre choix est donc : de qui dépend le control plane ?
Tailscale – le plus simple
Tailscale, c’est le leader. Le client s’installe en une commande, l’inscription se fait via Google/GitHub/etc., et en deux minutes votre Raspberry Pi et votre laptop se parlent :
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
- MagicDNS : vos machines se joignent par nom (
raspberry.tailnet-xyz.ts.net), plus besoin de retenir des IP. - Subnet routing : une machine peut exposer tout un sous-réseau local (votre LAN entier devient accessible).
- Exit nodes : routez le trafic d’un appareil via une autre machine (un mini-proxy VPN version 2026).
- ACL et utilisateurs : gestion fine des accès, parfait pour la famille ou la petite équipe.
Le plan gratuit est très généreux (jusqu’à 3 utilisateurs et 100 appareils), et le client est open source et tourne partout.
Le bémol, et c’est LE sujet de débat chez les amateurs de self-hosted : le control plane est propriétaire et hébergé par Tailscale Inc. Vos clés publiques et vos métadonnées d’infrastructure vivent chez eux. Le chiffrement reste de votre côté, mais si un jour vous ne voulez plus dépendre du service (tarifs, changements de politique, panne), vous êtes bloqué.
Headscale – Tailscale en self-hosted
Headscale répond exactement à ce problème : c’est une implémentation open source du control plane de Tailscale, que vous hébergez sur votre serveur. Et le meilleur dans l’histoire : vous continuez à utiliser les clients Tailscale officiels, vous pointez simplement votre serveur dans la configuration du client.
- Vos clés et vos données d’infrastructure restent chez vous.
- Même ergonomie côté client que Tailscale.
- Pas besoin d’ouvrir des ports sur chaque machine, l’NAT traversal fait le boulot.
Les limites : pas d’interface web officielle (il existe des UIs tierces comme headplane), l’installation est plus manuelle, certaines fonctionnalités avancées de Tailscale n’y sont pas, et le projet est maintenu par la communauté. C’est un projet d’admin, pour des admins — ce qui est probablement votre cas si vous lisez ce blog.
NetBird – la plateforme alternative 100% open source
NetBird (ex-WireTrustee) prend un chemin différent : plutôt que de recréer Tailscale, c’est une plateforme complète, open source, avec son propre client et son propre control plane que vous pouvez déployer chez vous via Docker.
- Self-hosting complet et supporté : la doc propose un guide d’auto-hébergement officiel (management, signal, relay, base de données).
- Interface d’administration web intégrée : gestion des pairs, groupes et politiques d’accès sans toucher aux fichiers de config.
- Clients natifs pour Windows, macOS, Linux, Android et iOS.
- STUN/TURN intégrés pour le NAT traversal, et une communauté très active sur GitHub.
Le projet est plus jeune que Tailscale et un peu moins « plug and play », mais si votre objectif est un mesh VPN open source avec une vraie UI d’administration que vous hébergez, c’est aujourd’hui le candidat le plus abouti.
Tableau comparatif
| Critère | Tailscale | Headscale | NetBird |
|---|---|---|---|
| Control plane | Cloud propriétaire | Self-hosted (open source) | Self-hostable (open source) |
| Client | Officiel, tous OS | Clients Tailscale officiels | Natif, tous OS |
| UI d’administration | Oui | Non (UI tierce) | Oui |
| MagicDNS / NAT traversal | Oui | Oui | Oui |
| Facilité d’installation | Très facile | Manuelle | Moyenne (Docker) |
| Dépendance externe | Forte | Aucune | Aucune |
Cas d’usage dans un homelab
- Accéder à son NAS ou ses serveurs depuis n’importe où : fini les règles firewall pourries et les ports ouverts sur Internet (on a vu dans les articles précédents pourquoi c’est une mauvaise idée).
- Relier deux sites sans configurer un site-to-site OpenVPN complet : le subnet routing fait le lien en quelques minutes.
- SSH sécurisé vers ses VPS : plus besoin de fermer/ouvrir le port 22, tout passe dans le mesh.
- Gaming LAN entre amis : l’équivalent moderne de ce qu’on faisait avec OpenVPN pour les jeux en réseau local.
Mon avis
Comme souvent, il n’y a pas de mauvais choix, seulement des priorités :
- Vous voulez que ça marche tout de suite, sans réfléchir ? → Tailscale. Le plan gratuit suffit largement pour un usage perso.
- Vous aimez Tailscale mais pas la dépendance au cloud ? → Headscale, vos données restent chez vous.
- Vous voulez une plateforme open source complète avec une UI d’admin auto-hébergée ? → NetBird.
Pour ma part, j’ai toujours préféré garder le contrôle de mon infra, donc la voie self-hosted (Headscale ou NetBird) me semble la plus cohérente avec l’esprit de ce blog. Mais je reconnais que Tailscale a rendu le mesh VPN accessible à tout le monde, et ça, c’est mériteux.
Liens utiles :