−25%

sur Windows en paiement annuel, jusqu'au 31/10. Voir les offres

EQVPS

VPS pour Headscale : serveur de contrôle Tailscale

Faites tourner Headscale sur un petit VPS et gardez le serveur de coordination de votre VPN maillé sous votre contrôle. Installation, premier utilisateur, appareils et limites.

Un VPN maillé fait partie de ces outils qui simplifient tout en silence : votre portable, votre serveur maison, votre téléphone et vos VPS se voient sur des adresses privées, où qu'ils soient. Le hic des VPN maillés hébergés, c'est le serveur de coordination : une entreprise détient la carte de tous vos appareils. Headscale est un remplaçant open source de ce serveur de contrôle. Faites-le tourner sur un petit VPS, continuez d'utiliser les applications habituelles, et la carte vous appartient.

Comment tout s'articule

C'est ce dernier point qui permet une toute petite offre : le VPS ne répond qu'à de petites requêtes de coordination.

Ce qu'il vous faut

Installation (Debian 12 / Ubuntu 24.04)

Récupérez le .deb actuel sur la page des versions de Headscale sur GitHub — remplacez la version par la plus récente :

HS_VER=0.26.1
wget -O headscale.deb \
  "https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy

Modifiez /etc/headscale/config.yaml — les deux lignes qui comptent :

server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080

Placez Caddy devant pour le HTTPS :

cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
    reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy

Ajouter un utilisateur et un appareil

headscale users create alice
headscale users list            # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h

Les anciennes versions attendent le nom de l'utilisateur plutôt que son ID dans --user ; headscale preauthkeys create --help vous dira ce qu'attend la vôtre.

Sur un appareil Linux :

tailscale up --login-server https://hs.example.com --authkey YOUR_KEY

Sur téléphone et ordinateur, l'application Tailscale permet de définir un serveur de contrôle personnalisé dans ses réglages. Lancez headscale nodes list sur le VPS : votre appareil doit y figurer.

Relais et traversée de NAT

La plupart des appareils se connectent directement. Quand deux d'entre eux n'y arrivent pas (réseaux mobiles stricts, double NAT), le trafic passe par un relais DERP. Par défaut, Headscale utilise les relais publics de Tailscale — ils ne voient que des paquets chiffrés. Si vous ne voulez rien d'extérieur sur le chemin, activez le relais intégré dans config.yaml (derp.server.enabled: true) et ouvrez l'UDP 3478. Le trafic relayé est alors décompté de la bande passante de votre VPS.

Limites, honnêtement

Pas de tableau de bord web officiel : utilisateurs, clés et routes sont des commandes CLI (on s'y fait dès la deuxième fois). Les nouveautés du service hébergé arrivent dans Headscale plus tard, voire jamais. Et le serveur de contrôle est désormais sous votre responsabilité : s'il tombe, les connexions existantes continuent, mais aucun nouvel appareil ne peut rejoindre le réseau et les clés ne se renouvellent plus. Sauvegardez-le : tout l'état se trouve dans /var/lib/headscale.

Pour un homelab, une famille ou une petite équipe qui veut garder la carte de ses appareils hors des serveurs d'autrui, c'est l'un des meilleurs usages d'un VPS à 8 $.

Pour aller plus loin

Prêt à déployer ? Payez en crypto, sans KYC — en ligne en une minute environ.

Déployer →

FAQ

Que voit réellement le serveur Headscale ?

Des métadonnées : quels appareils existent, leurs clés publiques, leurs adresses et leur dernière connexion. Votre trafic lui-même circule directement entre les appareils via WireGuard (ou par un relais s'ils ne peuvent pas se joindre) et reste chiffré de bout en bout. Auto-héberger signifie que ces métadonnées sont sur votre serveur plutôt que chez quelqu'un d'autre.

Faut-il des clients spéciaux ?

Non. Vous utilisez les applications Tailscale habituelles sur Linux, macOS, Windows, iOS et Android, en les faisant pointer vers l'URL de votre serveur. Sous Linux, c'est une seule option : --login-server.

Quelle offre suffit ?

Headscale est minuscule — un Nano-IP (8 $/mois) gère sans peine une famille ou une petite équipe. Il faut une IP dédiée, car les appareils doivent joindre le serveur de contrôle en HTTPS ; une offre NAT n'accepte pas le 443 entrant.

Et si deux appareils ne peuvent pas se connecter directement ?

Ils se replient sur un relais (DERP). Par défaut, Headscale utilise les relais publics de Tailscale, qui ne voient que des paquets chiffrés. Vous pouvez activer à la place le relais intégré de Headscale ; il lui faut l'UDP 3478 ouvert et il consomme la bande passante de votre VPS pour le trafic relayé.

Que manque-t-il par rapport au service Tailscale hébergé ?

Il n'y a pas de panneau d'administration web officiel : utilisateurs et clés se gèrent en ligne de commande (des interfaces communautaires existent). Certaines nouveautés du service hébergé arrivent plus tard dans Headscale, voire jamais. Pour un réseau personnel ou une petite équipe, l'essentiel — maillage, ACL, MagicDNS, nœuds de sortie — fonctionne bien.

Commentaires

Pas encore de commentaires. Soyez le premier.

Laisser un commentaire

Les commentaires sont modérés avant leur publication.