Aller au contenu principal
Tailscale + SSH : mon VPN de dev en 15 minutes
Retour au blog
Technique

Tailscale + SSH : mon VPN de dev en 15 minutes

Patrice Huetz11 avril 20265 min

J'ai arrêté d'utiliser WireGuard + fail2ban + port forwarding en 2024 au profit de Tailscale. Depuis, je peux accéder à ma station de dev, à mon NAS, et à mes VPS depuis n'importe où (aéroport, café, train) sans ouvrir un seul port, sans configurer un routeur, sans stress sécurité. Le setup prend 15 minutes. Voici exactement comment, les 3 usages qui justifient de l'installer, et les 2 limites à connaître.

Ce que Tailscale fait (et que les VPNs classiques ratent)

Tailscale crée un réseau mesh P2P entre tes machines. Chaque machine dans ton « tailnet » peut communiquer directement avec les autres, même derrière des NATs, même sur des réseaux différents, sans besoin d'un serveur central (en dehors du coordination server de Tailscale lui-même).

Ce que ça donne en pratique :

  • Zéro port ouvert sur internet
  • Pas de serveur VPN à maintenir
  • Authentification via Google/GitHub/OAuth
  • Une IP 100.x.y.z stable par machine, routable entre elles
  • Fonctionne partout (WiFi public, 4G, réseau hôtel flaky)

Install en 5 minutes

Sur chaque machine, une seule commande :

bash
# Linux (Debian/Ubuntu)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# macOS
brew install --cask tailscale
# Puis login via l'app

# Windows
winget install tailscale.tailscale

Au premier tailscale up, une URL d'auth s'ouvre. Tu te connectes avec ton compte (GitHub/Google). 30 secondes. La machine apparaît dans ton tailnet.

Répète sur chaque machine que tu veux connecter. Chaque machine obtient une IP 100.x.y.z et un hostname (typiquement ma-machine.tailnet-xyz.ts.net).

Les 3 usages qui justifient l'install

Usage 1 : accéder à ma station de dev depuis partout

Ma station de dev perso (RTX 4090, beaucoup de RAM) tourne chez moi. Avec Tailscale activé, je peux ssh patrice@desktop depuis mon MacBook dans un train à 300 km/h, et ça marche comme si j'étais assis devant.

Config SSH côté client :

config
# ~/.ssh/config
Host desktop
    HostName desktop.tailnet-xyz.ts.net
    User patrice
    IdentityFile ~/.ssh/id_ed25519

Puis ssh desktop. La connexion passe par Tailscale (P2P direct quand possible, relay sinon) sans avoir à ouvrir le port 22 sur mon routeur.

Tailscale SSH (feature plus récente) remplace même ta config SSH classique par une auth basée sur l'identité Tailscale :

bash
sudo tailscale up --ssh

Avec ça, pas besoin de clés SSH du tout. L'auth passe par Tailscale. Attention : à n'utiliser que si tu fais confiance à Tailscale pour l'auth — ce qui est mon cas.

Usage 2 : exposer un service en dev sans tunnel public

Je développe souvent des features qui doivent être testées sur mobile (responsive, caméra, géoloc). Avant Tailscale, je utilisais ngrok pour exposer mon localhost:3000 sur un URL public temporaire. Problème : l'URL est publique, n'importe qui peut l'atteindre si elle fuit.

Avec Tailscale, je run next dev sur mon portable et j'accède directement depuis mon téléphone via http://100.x.y.z:3000 ou http://macbook.tailnet-xyz.ts.net:3000. L'URL n'est visible que dans mon tailnet — pas d'exposition publique.

Usage 3 : réseau partagé entre VPS pour mes déploiements

Mes VPS (Hetzner, OVH) sont aussi dans mon tailnet. Je peux faire communiquer mon VPS Hetzner (API) avec mon NAS Synology maison (stockage images) via leurs IPs Tailscale — pas besoin d'ouvrir les ports DB ou NFS sur internet.

bash
# Depuis le VPS Hetzner
rsync -avz ./uploads/ nas.tailnet-xyz.ts.net:/volume1/backups/uploads/

Le trafic passe par le tailnet, chiffré point-à-point, sans aucune exposition publique.

Le schéma mental

Réseau Tailscale — topologie
Réseau Tailscale — topologie

Les 2 limites à connaître

Limite 1 : dépendance à un service tiers

Tailscale est un service centralisé pour le coordination (le trafic lui est P2P, mais le coordinator est chez Tailscale). Si Tailscale plante, tu ne peux plus établir de nouvelles connexions.

Mitigation : installer headscale — une implémentation open source du coordinator. Tu self-host le coordinator et tu gardes les clients Tailscale officiels. C'est ce que j'ai commencé à faire pour mes projets clients.

Limite 2 : le plan gratuit a ses limites

Le plan gratuit permet jusqu'à 100 appareils et 3 utilisateurs. Au-delà, 6 $ / utilisateur / mois. Pour un usage solo ou petite famille, le gratuit est largement suffisant.

💡
Active `tailscale up --advertise-exit-node` sur un de tes VPS pour pouvoir router tout ton trafic internet via ce VPS quand tu es sur un WiFi public. Alternative gratuite à un VPN commercial.
⚠️
Tailscale SSH contourne tes clés SSH classiques. Si tu veux absolument garder ta chaîne de confiance PKI, ne l'active pas — utilise juste Tailscale comme transport.

Mon setup complet (extrait `~/.tailscale/`)

bash
# Chaque machine a son rôle tagué
sudo tailscale up --ssh \
  --accept-routes \
  --operator=patrice \
  --hostname=$(hostname)

# Le VPS Hetzner agit comme exit node
# (seulement sur ce VPS)
sudo tailscale up --advertise-exit-node

Dans le dashboard Tailscale, j'ai configuré des ACL pour limiter qui peut accéder à quoi :

jsonc
{
  "acls": [
    {"action": "accept", "src": ["patrice@example.com"], "dst": ["*:*"]},
    {"action": "accept", "src": ["tag:ci"], "dst": ["tag:prod:22,443"]}
  ],
  "ssh": [
    {"action": "check", "src": ["patrice@example.com"], "dst": ["*"], "users": ["root", "patrice"]}
  ]
}

Ce qu'il faut retenir

  1. 1.Tailscale remplace les VPNs classiques en 15 minutes d'install, sans ouverture de ports.
  2. 2.3 usages qui justifient l'install : dev remote, exposition privée, réseau VPS.
  3. 3.P2P + coordination centralisée — plus rapide qu'un VPN hub-and-spoke.
  4. 4.Alternative self-host : headscale si tu veux vraiment zéro dépendance.
  5. 5.Plan gratuit suffit pour 99% des usages solos.

Pour le workflow complet de dev remote avec Claude Code sur une machine distante via Tailscale, j'ai écrit un livre dédié :

La Boucle Ralph
La Boucle Ralph

Guide Pratique du Coding Autonome par IA.

Découvrir →
🔒

Soutenez mon travail sur Patreon

Accès anticipé aux articles, contenu exclusif, et la satisfaction de soutenir un auteur indépendant.

Rejoindre — à partir de 3€/mois

Commentaires

Chargement des commentaires...

Laisser un commentaire