ITSkillsCenter
Cybersécurité

Headscale 2026 : guide complet (Tailscale 100% self-hosted, contrôle total du réseau privé)

10 دقائق للقراءة

Tailscale Cloud est un produit excellent : VPN mesh basé sur WireGuard, configuration en 3 minutes, NAT traversal automatique. Mais à 18 USD par utilisateur et par mois sur le plan Premium, et avec vos métadonnées de connexion stockées chez Tailscale Inc., l’auto-hébergement devient vite séduisant. Headscale est l’implémentation open source du serveur de contrôle Tailscale, écrite en Go, qui réplique 100% de l’API officielle. Vos clients Tailscale officiels (Mac, iOS, Android, Linux, Windows) se connectent à votre Headscale, pas à Tailscale Cloud. Souveraineté complète, pour 4,51 € par mois sur Hetzner CX22.

Sommaire

Pourquoi Headscale est le choix par défaut en 2026

Trois mouvements de fond rendent Headscale incontournable cette année.

Le coût Tailscale Cloud explose à scale. Le plan gratuit limite à 3 utilisateurs et 100 appareils. Le plan Premium démarre à 18 USD/utilisateur/mois pour 5 utilisateurs minimum, soit 90 USD/mois. Pour une PME de 25 personnes en Côte d’Ivoire, c’est 5 400 USD/an pour un service qui ne fait que router du trafic chiffré entre vos serveurs et postes. Headscale fait techniquement la même chose pour 54 €/an de VPS.

La souveraineté des métadonnées. Tailscale Cloud connaît votre topologie réseau, vos heures de connexion, vos pairs actifs. Pour une banque, un cabinet médical à Casablanca, ou une fintech à Abidjan soumise au secret professionnel ou bancaire, ces métadonnées sont sensibles. Headscale les garde sous votre contrôle exclusif.

L’écosystème mature. Headscale v0.23 (janvier 2026) supporte les utilisateurs avec OIDC, les ACL au format HuJSON identique à Tailscale, les routes annoncées (subnet routers), les exit nodes, le DNS magique (MagicDNS), les preauth keys, le Taildrop pour le transfert de fichiers, et même les nouvelles features SSH-over-Tailscale et Tailscale Funnel (en mode bêta).

Concepts fondamentaux

Coordination server vs data plane

Tailscale et Headscale partagent la même architecture : un coordination server distribue les clés publiques WireGuard, les ACL et la topologie réseau. Le data plane (le trafic chiffré entre vos appareils) ne passe pas par le serveur de coordination. Headscale ne voit donc jamais vos données — uniquement les métadonnées de connexion. C’est important pour la performance : un Headscale sur Hetzner Falkenstein ne dégrade en rien la latence d’une connexion Dakar ↔ Abidjan, qui passe direct entre les deux peers.

Clé pré-authentification (preauth key)

Pour enregistrer un nouvel appareil sur votre Headscale, vous générez une clé pré-authentifiée à durée limitée. L’utilisateur lance tailscale up --login-server=https://headscale.votre-entreprise.com --auth-key=..., l’appareil rejoint le réseau. Avantage : aucun login web à chaque appareil, parfait pour onboarding rapide d’une équipe distribuée.

Utilisateurs et namespaces

Headscale organise les appareils par utilisateur (anciennement appelé namespace jusqu’à v0.20). Un utilisateur peut avoir plusieurs appareils (laptop, téléphone, serveur). Les ACL définissent qui peut parler à qui entre utilisateurs. Pour une PME, vous créez typiquement un utilisateur par employé + un utilisateur « servers » pour vos VPS.

ACL au format HuJSON

Les Access Control Lists Headscale utilisent le même format HuJSON (JSON avec commentaires) que Tailscale Cloud. Exemple : autoriser les développeurs à SSH sur tous les serveurs, mais le marketing à seulement accéder à Vaultwarden. Migration depuis ACL Tailscale Cloud : copier-coller, ça marche.

MagicDNS et split DNS

Avec MagicDNS activé, chaque appareil reçoit un nom nom-utilisateur.tailnet.ts.net automatiquement résolu sur le réseau Headscale. Vos serveurs deviennent accessibles par leur nom (par exemple postgres-prod.tailnet.ts.net) sans passer par DNS public.

Subnet routers et exit nodes

Un subnet router annonce une plage IP locale (exemple le réseau du bureau 192.168.1.0/24) au mesh, permettant aux peers distants d’accéder aux ressources locales (imprimante, NAS Synology, caméras IP). Un exit node route tout le trafic Internet d’un peer via un autre peer — utile pour passer outre la censure ou utiliser une IP fixe pour s’authentifier sur des services qui filtrent par origine.

Vue d’ensemble pratique : architecture standard d’une PME africaine

1. VPS de coordination

Un Hetzner CX22 (4,51 €/mois) ou OVH VPS-1 (3,99 €/mois) suffit pour 100 utilisateurs et 500 appareils. Le service est essentiellement stateless ; Headscale stocke ses données dans SQLite ou PostgreSQL et n’a pas besoin de hautes performances. Voir Déployer Headscale sur VPS avec Caddy.

2. Reverse proxy avec HTTPS

Caddy en façade gère le certificat Let’s Encrypt et le port 443. Headscale écoute sur 8080 en interne. Un nom de domaine dédié type headscale.votre-entreprise.com pointé sur le VPS.

3. OIDC pour l’authentification utilisateur

Pour éviter de gérer une base d’utilisateurs séparée, brancher Headscale sur votre Authelia, Authentik, Keycloak ou directement Google Workspace / Microsoft 365 via OIDC. L’employé qui rejoint l’entreprise hérite automatiquement d’un accès Headscale.

4. Serveurs et postes clients

Les clients Tailscale officiels fonctionnent tous avec Headscale (Mac, Windows, iOS, Android, Linux). Sur les serveurs Linux : tailscale up --login-server=https://headscale.votre-entreprise.com. Sur mobile : config manuelle dans Settings → Use Custom Coordination Server.

5. ACL et politique de sécurité

Définir une politique de moindre privilège : développeurs ↔ serveurs en SSH, marketing ↔ Vaultwarden + Outline + Plausible, finance ↔ ERP en RDP. Voir ACL pour équipe distribuée.

6. Migration progressive depuis Tailscale Cloud

Si vous avez déjà Tailscale Cloud, migration en parallèle : un appareil teste Headscale, le reste reste sur Cloud. Une fois validé sur 5 à 10 appareils, basculer le reste. Voir Migrer de Tailscale Cloud à Headscale.

Articles de la série Headscale

Pour chaque sujet ci-dessous, un tutoriel complet est disponible :

Cas d’usage

Équipes distribuées

Une agence digitale à Dakar avec 12 développeurs travaillant 50% en télétravail : Headscale connecte tous les laptops + le serveur de staging Hetzner + le NAS de l’agence en un mesh sécurisé. Chaque dev accède au staging par http://staging.tailnet.ts.net sans VPN classique pesant.

Multi-sites

Un cabinet d’avocats à Casablanca, Tanger et Marrakech : trois bureaux, trois subnet routers Headscale. Chaque collaborateur accède aux ressources des trois bureaux comme s’il était sur place. Coût : un VPS + trois Raspberry Pi à 35 €.

CI/CD et runners self-hosted

Une équipe à Abidjan utilise Forgejo Actions avec runners auto-hébergés. Headscale connecte les runners aux serveurs Postgres staging et production sans exposer ces bases sur Internet. Les runners passent par MagicDNS.

Accès patient à un dossier médical

Un cabinet médical à Tunis avec 4 antennes : médecins itinérants, données dossiers patients sur serveur central. Headscale relie tous les appareils de manière sécurisée, conforme aux exigences NESA.

IoT et caméras

Une exploitation agricole au Burkina Faso avec capteurs météo IoT répartis sur 200 hectares : Headscale + Raspberry Pi avec 4G fournit un VPN mesh qui remonte les données vers un serveur central à Ouagadougou, sans IP publique exposée.

Adaptation au contexte ouest-africain

Quatre adaptations spécifiques aux contraintes africaines.

Latence et choix du data center. Hetzner Falkenstein offre 95 ms moyens vers Dakar via le câble ACE (Africa Coast to Europe). OVH Roubaix : 90 ms vers Casablanca. Pour une équipe couvrant l’Afrique de l’Ouest, Hetzner FSN1 reste le meilleur compromis. Le serveur Headscale ne route pas le trafic ; sa latence importe peu (uniquement pour la coordination initiale).

Connexions intermittentes. Les pannes électriques au Burkina, les saturations réseau pendant la saison des pluies au Sénégal, et les liaisons articles connexes au Niger imposent des clients Tailscale robustes. Le client Tailscale officiel reconnecte automatiquement avec backoff exponentiel. La configuration --ssh permet de garder une session SSH active malgré les coupures.

Mobile money et accès aux APIs. Les APIs Wave, Orange Money, Free Money sont parfois protégées par IP fixe. En transformant un VPS Hetzner en exit node, vous présentez à ces APIs une IP stable européenne, contournant les restrictions tout en gardant traçabilité côté Headscale.

Coût total. Pour une équipe de 30 personnes : 4,51 € de VPS + 12 € de domaine = 66 € par an. Tailscale Cloud Premium pour la même équipe : 6 480 USD par an (5 400 USD avec optimisation). L’écart finance un VPS pendant 80 ans.

Erreurs fréquentes

Erreur Cause Solution
Clients officiels Tailscale ne se connectent pas Configuration –login-server manquante Sur mobile : Settings → Login → Use custom coordination server URL
MagicDNS ne fonctionne pas magic_dns non activé dans config Activer + redémarrer Headscale + reconnecter clients
Pas d’IP publique pour serveur Subnet router non advertised Sur le serveur : tailscale up --advertise-routes=192.168.1.0/24
ACL bloquent tout après mise à jour Erreur HuJSON sans validation Tester localement avec headscale policy check
Certificat Let’s Encrypt échoue Port 80 bloqué par UFW Ouvrir 80 + 443 + UDP 41641 (DERP)
Performance dégradée Pas de DERP relay configuré Configurer un DERP self-hosted ou utiliser ceux de Tailscale
Headscale crash sur 100+ users SQLite saturée Migrer vers PostgreSQL
Sauvegarde oubliée Base /var/lib/headscale jamais backup Cron quotidien + rclone vers MinIO/B2

FAQ

Headscale est-il maintenu activement ? Oui, projet Open Source de Juan Font (Headscale créateur), 23 000 stars GitHub, releases mensuelles. Un fork commercial appelé Headplane existe pour le management UI.

Compatibilité avec les apps Tailscale ? 100% compatible. Tous les clients officiels (iOS, Android, Mac, Windows, Linux) marchent avec Headscale en pointant le coordination server vers votre URL.

Comment gérer les utilisateurs externes (consultants, freelances) ? Créer un utilisateur dédié consultants, générer une preauth key à durée limitée (24h, 7 jours, 30 jours), partager avec le freelance. ACL restreint l’accès aux seules ressources nécessaires. À la fin de la mission, supprimer l’utilisateur.

Quelle taille de VPS pour 200 utilisateurs ? Hetzner CCX13 (8 Go RAM, 15 €/mois) tient confortablement 500 appareils actifs. Pour 1000+, passer au CCX23 (28 €/mois).

Y a-t-il un Web UI officiel ? Pas dans Headscale officiel. Plusieurs alternatives communautaires : Headscale-UI, headplane (fork commercial), gohead. Toutes utilisent l’API Headscale.

Headscale supporte-t-il les Tailscale Funnels (HTTPS public via mesh) ? Pas en tant que feature stable. Workaround : exposer un service via Caddy + ngrok-equivalent, ou utiliser un reverse proxy public.

Comment auditer qui se connecte ? Headscale logge toutes les opérations dans headscale.log. Ingestion via Loki + dashboard Grafana custom. Alertes sur création de nouveaux appareils ou changements ACL.

Pour aller plus loin

Comparaison face aux alternatives 2026

Solution Coût (15 utilisateurs) Auto-hébergé Topologie Difficulté
Headscale (Hetzner CX22) 4,51 €/mois Oui Mesh WireGuard Moyenne
Tailscale Cloud Premium 270 USD/mois Non Mesh WireGuard Faible
NetBird 5 €/mois (auto-hébergé) Oui Mesh WireGuard Moyenne
OpenVPN 5 €/mois Oui Hub-and-spoke Élevée
WireGuard pur 5 €/mois Oui Manuel Élevée
Cloudflare Zero Trust 7 USD/utilisateur/mois Non Edge-based Faible

Roadmap 2026

Trois évolutions attendues. Web UI officielle en bêta, qui devrait sortir mi-2026 pour gérer utilisateurs et ACL via interface. Support natif des Funnels pour exposer des services HTTPS publics via le mesh. Intégration MCP server pour Claude Code, permettant de gérer Headscale en langage naturel depuis votre IDE.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité