VPNSmith
VPS Contabo
self-host-vpn-headINFO

Tailscale exit node : prêt en 20 minutes (et peut-on en avoir deux ?)

Un exit node fonctionnel sur Ubuntu 24.04 en 20 minutes : IP forwarding, commandes CLI exactes, approbation dans la console admin, clients Mac/iOS/Android. Plusieurs en même temps ? Oui, avec un plan payant.

Par Eric Gerard · Fondateur · VPNSmith - Spécialiste self-host VPN & VPS GDPR11 min de lecturePhoto : Lars Kienle - Unsplash

Ce guide monte un exit node Tailscale sur un petit VPS, par exemple un Contabo Cloud VPS 4 ou un Hetzner CX23 en Allemagne : un tunnel WireGuard chiffré dont tu contrôles chaque paramètre. Il donne les commandes exactes, pas un résumé de documentation ni des screenshots flous. La latence et le débit dépendent de ta route : le guide montre comment les mesurer plutôt que de citer des chiffres.

Si votre besoin est l'inverse, atteindre les appareils de votre LAN depuis l'extérieur plutôt que router tout votre trafic à travers lui, c'est une autre fonction : voyez notre guide du subnet router Tailscale.

Raccourci : notre générateur d'exit node Tailscale gratuit construit le script exact pour votre VPS à partir de quelques choix (Tailscale ou Headscale, clé d'authentification ou URL de connexion, auto-approbation par tag, ufw ou firewalld) et donne les commandes d'approbation et client. Ce guide explique chaque étape.

Qu'est-ce qu'un exit node Tailscale et pourquoi c'est différent d'un VPN classique

Un exit node Tailscale est un nœud de ton mesh Tailscale configuré pour router tout le trafic Internet des autres nœuds vers sa propre connexion. En pratique : tu actives cette option sur ton VPS Frankfurt, et tous tes appareils (laptop Paris, iPhone, iPad) sortent sur Internet avec l'IP de ce VPS.

La différence avec un VPN commercial comme NordVPN est architecturale :

  • VPN commercial : infrastructure partagée entre des milliers d'utilisateurs. Tu ne contrôles ni le serveur, ni la politique de logs, ni la configuration.
  • WireGuard nu self-host : tunnel point-à-point entre chaque client et le serveur. Excellent pour un seul tunnel, mais dès que tu as 4 appareils, tu configures 4 paires de clés manuellement.
  • Tailscale exit node : mesh WireGuard géré automatiquement. Le control plane Tailscale orchestre les clés, le NAT traversal et les ACLs. Tu désignes un nœud comme exit node en une commande, tous les autres l'utilisent sans reconfiguration.

Tu veux seulement sembler venir d'un autre pays, sans gérer de serveur ? Un VPN commercial le fait sans configuration : Proton VPN (lien affilié) a une offre gratuite, et ses offres payantes permettent de choisir le pays. L'exit node reste le meilleur choix quand tu veux une IP qui t'appartient et l'accès à tes propres appareils sur le même réseau.

Le data plane reste WireGuard pur - aucune entreprise ne voit ton trafic payload. Seul Tailscale Inc. voit les métadonnées de ton mesh (qui parle à qui, quand), ce qui est documenté dans leur politique de confidentialité.

Pour un comparatif exhaustif des approches, voir notre article meilleur VPN auto-hébergement 2026 et pour le détail Tailscale vs WireGuard nu, Tailscale vs WireGuard self-host.

Si tu te demandes encore si Tailscale t'est utile, Tailscale vs WireGuard : ce que Tailscale ajoute, ce qu'il retire oppose WireGuard nu (clés, routes et NAT gérés par toi) au plan de contrôle géré de Tailscale.

Prérequis

Avant de démarrer, tu as besoin de :

  1. Un compte Tailscale - plan Free suffisant pour 1 exit node. Créer sur tailscale.com.
  2. Un serveur Linux - Ubuntu 24.04 LTS recommandé (support 5 ans). Peut aussi être un Mac ou Raspberry Pi.
  3. Connexion stable >= 100 Mbps - pour un usage solo ou famille.
  4. IP publique dédiée - incluse chez Contabo et OVH, 0,50 €/mois en plus chez Hetzner depuis 2026.
  5. Accès root ou sudo sur le serveur.

Ce guide suppose Ubuntu 24.04 LTS. Les commandes sont identiques sur Debian 12, légèrement différentes sur CentOS/RHEL (dnf au lieu d'apt).

Choisir la plateforme exit node

Des baies de serveurs éclairées en bleu dans un datacenter
Des baies de serveurs éclairées en bleu dans un datacenter

FournisseurPrix (relevé le 18/10/2026)RéseauLocalisationVerdict
Contabo Cloud VPS 45,50 €/mois, IPv4 incluseport 200 Mbit/s, trafic illimité (fair use)Nuremberg / NYC / Singapour / TokyoLe plus de RAM par euro (4 vCPU, 8 Go) ; mesure le port avec iperf3
Hetzner CX235,49 €/mois + 0,50 € d'IPv4 depuis la hausse du 15 juin 202620 To inclusFalkenstein / Nuremberg / HelsinkiExcellent réseau et console, mais la gamme CX partagée était affichée « actuellement indisponible » le 18/10
OVH VPS-14,49 €/mois HTtrafic illimitéGravelines / StrasbourgBonne latence vers la France
Offre gratuite AWScrédits, compte limité à 6 mois (comptes créés depuis juillet 2025)trafic sortant payant une fois les crédits épuisésRégion au choixBien pour un test, pas pour un exit node permanent
Raspberry Pi 5 (maison)~0 € (matériel seul)Dépend de la box FAITon réseau personnelIdéal pour l'accès au LAN, mais l'IP de ta box est souvent dynamique ou derrière CGNAT

Un choix par défaut raisonnable : un VPS dans le pays d'où tu veux sortir, plus un Raspberry Pi 5 à la maison si tu veux aussi ton IP perso en déplacement. Pour le VPS, Hetzner était le choix habituel, jusqu'à ce que ses hausses de 2026 portent le CX23 à 5,99 € avec IPv4 pour 4 Go de RAM ; le Cloud VPS 4 de Contabo coûte désormais à peu près pareil pour 8 Go, de quoi faire tourner Headscale ou d'autres services sur la même machine. La contrepartie : un port à 200 Mbit/s, là où Hetzner laisse plus de marge. L'historique complet des prix est dans notre comparatif Contabo vs Hetzner vs OVH.

Pourquoi un VPS plutôt que la box à la maison : un exit node chez toi ne te donne que l'IP de ton propre FAI, et si ta ligne est derrière du CGNAT, chaque connexion passe par un relais. Un VPS en datacenter a une IPv4 publique fixe : Tailscale obtient un chemin WireGuard direct depuis presque partout.

Point attention Contabo : l'entrée de gamme annonce un port à 200 Mbit/s. C'est largement assez pour la navigation et le streaming d'une personne ; pour toute une famille sur la fibre, mesure-le avec iperf3 (section Performance plus bas) avant de compter dessus.

★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s

Ton propre exit node avec IP publique fixe → Contabo Cloud VPS 45,50 €/mois (relevé le 18/10/2026) · 4 vCPU, 8 Go de RAM · Ubuntu 24.04 prêt pour les étapes ci-dessous→

Installation pas à pas sur Ubuntu 24.04 LTS

1. Installer Tailscale

Tailscale publie un script officiel d'installation via leur dépôt APT :

# Ajouter la clé GPG et le dépôt
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg \
  | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list \
  | sudo tee /etc/apt/sources.list.d/tailscale.list

# Installer
sudo apt-get update
sudo apt-get install -y tailscale

# Vérifier la version (juin 2026 : v1.68+)
tailscale version

2. Activer l'IP forwarding

Sans cette étape, le nœud ne peut pas router le trafic des clients vers Internet. C'est l'équivalent du masquerade WireGuard :

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Vérification :

sysctl net.ipv4.ip_forward
# Doit retourner : net.ipv4.ip_forward = 1

3. Authentifier et advertiser l'exit node

sudo tailscale up --advertise-exit-node

Tailscale affiche une URL dans le terminal :

To authenticate, visit:
  https://login.tailscale.com/a/xxxxxxxxxxxxxxxx

Ouvre cette URL dans ton navigateur, connecte-toi avec ton compte Tailscale. Le nœud apparaît dans ta liste de machines.

Note : si tu veux pré-authentifier sans interaction (script CI/CD), utilise une auth key : sudo tailscale up --advertise-exit-node --authkey=tskey-auth-xxxxx.

4. Approuver dans la console admin

Par défaut, Tailscale requiert une approbation manuelle des exit nodes (sécurité). Sur login.tailscale.com/admin/machines :

  1. Trouve ton nœud (ex : hetzner-cx23-fra)
  2. Clique sur (...) → Edit route settings
  3. Coche Use as exit node
  4. Clique Save

Le nœud est maintenant disponible comme exit node pour tous les membres de ton tailnet.

Alternative : désactiver l'approbation manuelle globalement dans Admin → Settings → Disable exit node approval requirement. Pratique pour un tailnet perso solo.

5. Vérifier l'état

tailscale status
# Le nœud doit apparaître comme "offers exit node"

sudo tailscale ping nom-du-noeud
# Doit retourner un RTT

Configuration client

macOS

  1. Installer Tailscale depuis le Mac App Store ou brew install tailscale
  2. Lancer Tailscale depuis la barre de menus
  3. Se connecter avec le même compte
  4. Clic sur l'icône Tailscale → Exit node → sélectionner ton nœud
  5. Vérifier : curl ifconfig.me - l'IP affichée doit être celle du VPS

LAN access : par défaut quand un exit node est actif, le trafic local (192.168.x.x) passe aussi par le tunnel. Pour garder l'accès LAN direct : clic Tailscale → Allow LAN access.

Windows

  1. Télécharger depuis tailscale.com/download/windows
  2. Clic droit icône systray → Exit node → sélectionner le nœud
  3. Confirmer la demande d'élévation UAC

iOS et Android

  1. Installer l'app Tailscale depuis App Store / Play Store
  2. Se connecter au tailnet
  3. Aller dans Settings (iOS) ou icône roue dentée (Android) → Use exit node → sélectionner

Sur iOS, Tailscale s'intègre via Network Extension - pas besoin de jailbreak. La connexion survit aux transitions WiFi/4G.

Linux CLI

# Sélectionner l'exit node (par nom ou IP Tailscale)
sudo tailscale set --exit-node=hetzner-cx23-fra

# Ou par IP Tailscale (100.x.y.z)
sudo tailscale set --exit-node=100.64.0.1

# Désactiver
sudo tailscale set --exit-node=

# Vérifier
tailscale status | grep "exit node"

Optimisations et troubleshooting

Performance : vérifier le type de connexion

Tailscale privilégie le tunnel WireGuard direct (NAT traversal). Si les deux nœuds ne peuvent pas se voir directement (NAT strict, CGNAT), le trafic passe par un DERP relay - nettement plus lent :

tailscale netcheck
# Affiche quel relay est utilisé et si le direct est possible

tailscale ping nom-du-noeud
# "pong from ... via DERP(fra)" = relay
# "pong from ... via 1.2.3.4:41641" = direct (préférable)

Si tu es en relay alors que les deux machines ont des IPs publiques, vérifier l'UFW :

sudo ufw allow 41641/udp comment "Tailscale WireGuard"
sudo ufw allow 3478/udp comment "Tailscale STUN"

DNS : fuites après activation exit node

Tailscale pousse ses propres DNS (MagicDNS) mais laisse parfois filtrer les DNS du système. Test :

# Depuis le client avec exit node actif
dig +short whoami.cloudflare.com TXT @1.1.1.1
# L'IP retournée doit être celle du VPS, pas ta vraie IP

Si ta vraie IP fuit : sur macOS, désactiver et réactiver l'exit node. Sur Linux :

sudo tailscale set --exit-node=hetzner-cx23-fra
sudo resolvectl flush-caches

MTU et fragmentation

WireGuard réduit le MTU effectif de ~60 bytes (overhead tunnel). Sur certains liens, ça provoque des coupures avec les gros paquets (vidéo, SSH sessions longues). Fix :

# Sur le serveur exit node
sudo ip link set tailscale0 mtu 1280
# Rendre permanent dans /etc/systemd/network/ ou via script rc.local

Kernel routing : performances avancées

Sur le serveur, activer le BBR congestion control pour un meilleur débit :

echo 'net.core.default_qdisc = fq' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv4.tcp_congestion_control = bbr' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Ce réglage apporte généralement un gain de débit modeste sous charge - mesure l'avant/après sur ta propre connexion pour confirmer.

Sécurité et considérations privacy

Ce que Tailscale Inc. voit

Tailscale voit les métadonnées du control plane uniquement :

  • Adresses IP Tailscale (100.x.y.z) de tes nœuds
  • Timestamps des handshakes WireGuard
  • Noms des machines enregistrées dans ton tailnet

Tailscale ne voit jamais :

  • Le contenu de ton trafic (chiffré WireGuard de bout en bout)
  • Tes requêtes DNS (si MagicDNS désactivé et DNS resolver externe)
  • Les sites que tu visites

Le data plane est WireGuard pur. Le code client est open source.

ACLs sur le plan Free

Le plan Free propose des ACLs JSON basiques pour contrôler quels nœuds peuvent parler à quels autres. Exemple minimal pour restreindre l'exit node à ton propre device :

{
  "acls": [
    {
      "action": "accept",
      "src": ["tag:personal"],
      "dst": ["tag:exit-node:*"]
    }
  ],
  "tagOwners": {
    "tag:exit-node": ["autogroup:admin"],
    "tag:personal": ["autogroup:admin"]
  }
}

DERP relays : juridiction

Quand le trafic passe par un DERP relay (cas NAT strict), il transite par l'infrastructure Tailscale. Les relays EU sont en Allemagne et aux Pays-Bas. Si la juridiction compte, tu peux déployer ton propre DERP relay - guide dans la doc officielle Tailscale.

Logs côté serveur

Par défaut Ubuntu génère des logs kernel via journald pour les connexions WireGuard. Si tu veux zéro logs :

sudo journalctl --vacuum-time=1s
# Puis désactiver le logging kernel WireGuard
echo 'module wireguard +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

Pour approfondir l'architecture Tailscale vs control plane self-host, voir notre comparatif Tailscale vs Headscale. Et pour les templates WireGuard nu sans overhead Tailscale : WireGuard config templates 2026.


En résumé : un exit node Tailscale sur un petit VPS (environ 5,50 €/mois) donne un tunnel VPN mesh entièrement sous ton contrôle, sans frais au gigaoctet. Le plan Free suffit pour un usage perso ou familial : au tarif affiché le 7 octobre 2026, jusqu'à 6 utilisateurs et un nombre d'appareils illimité. La configuration prend 20 minutes, commandes incluses dans ce guide.

Pour aller plus loin

★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s

Héberge ton VPN sur ton propre VPS → ContaboAccès root complet · IPv4 publique · choisis ta région→

Questions fréquentes

Le plan Free Tailscale suffit pour un exit node ?
Oui. Le plan Free inclut 1 exit node. Ce plan, appelé Personal, est affiché sur la page tarifaire de Tailscale, lue le 7 octobre 2026, comme couvrant jusqu'à 6 utilisateurs avec un nombre d'appareils illimité. Pour plusieurs exit nodes simultanés (multi-région), il faut un plan payant.
Quelle latence attendre depuis Paris ?
Cela dépend de la distance et du peering entre ton client et le VPS : aucun chiffre cité ici ne serait le tien. Un tunnel WireGuard direct bat toujours le trafic relayé par DERP. Mesure ta propre route avec `ping`/`mtr` pour des chiffres exacts.
Quel débit réel passe par l'exit node ?
Cela dépend du débit du port du VPS, de son CPU et de ton propre lien. Le chemin de données WireGuard en noyau est rarement la limite sur un petit VPS : le goulot est en général le plus lent des deux liens. Lance iperf3 à travers le tunnel pour obtenir ton propre chiffre.
Tailscale voit-il mon trafic ?
Non. Le data plane est WireGuard chiffré de bout en bout. Tailscale (control plane) voit uniquement les métadonnées : IPs des nœuds, timestamps handshake. Il ne déchiffre jamais le payload.
Plusieurs exit nodes sont possibles ?
Oui, sur plan payant. Tu peux avoir Frankfurt + Amsterdam + un Raspberry Pi home comme exit nodes. Le client choisit lequel activer - un seul actif à la fois par device.
L'exit node fonctionne sur Raspberry Pi ?
Oui, sur Pi 4/5 avec Raspberry Pi OS 64-bit. Le débit est borné par le CPU du Pi pour le chiffrement WireGuard (le Cortex-A76 du Pi 5 est plus rapide que le Pi 4) et par ton lien montant à domicile. Mesure-le avec iperf3.
Kill switch intégré à Tailscale ?
Oui : sudo tailscale set --exit-node=<nom> --exit-node-allow-lan-access=false coupe tout si le tunnel tombe. Sur macOS/iOS le client applique iptables/PF rules automatiquement quand l'exit node est actif.
IPv6 fonctionne-t-il à travers l'exit node ?
Oui si le serveur a une IPv6 publique (Hetzner en donne une par défaut). Activer net.ipv6.conf.all.forwarding = 1 dans sysctl suffit - Tailscale gère le reste.