Mettre en place un VPN securise a traditionnellement exige une expertise approfondie en reseaux, de la redirection de ports, de la gestion de cles et une maintenance constante. Tailscale change completement la donne. Construit sur WireGuard, Tailscale cree un VPN mesh — appele tailnet — ou chaque appareil se connecte directement a tous les autres via des tunnels chiffres pair-a-pair. Il n’y a pas de goulot d’etranglement sur un serveur central, pas de ports a ouvrir et pas de certificats a gerer. Vous installez le client, vous vous authentifiez, et vos appareils peuvent communiquer de maniere securisee, qu’ils soient derriere un NAT, des pare-feux ou sur des continents differents.
Ce guide couvre tout, de l’installation sur Linux, Windows et macOS aux fonctionnalites avancees comme le routage de sous-reseaux, les noeuds de sortie, les listes de controle d’acces (ACLs) et MagicDNS.
Qu’est-ce que Tailscale ?
Tailscale est un VPN mesh sans configuration qui utilise WireGuard en interne. Au lieu de mettre en place un serveur VPN central par lequel transite tout le trafic, Tailscale etablit des tunnels WireGuard directs et chiffres entre vos appareils. Le serveur de coordination de Tailscale ne gere que l’echange de cles et l’authentification des appareils — il ne voit jamais votre trafic reel.
Caracteristiques principales de Tailscale :
- Topologie mesh : Chaque appareil se connecte directement a tous les autres. Le trafic entre votre laptop et votre serveur ne passe pas par un point central.
- Base sur WireGuard : Utilise le protocole WireGuard pour le chiffrement, offrant une cryptographie moderne (ChaCha20, Curve25519) avec une surcharge minimale.
- Traversee de NAT : Tailscale traverse automatiquement les pare-feux et le NAT en utilisant STUN, les serveurs relais DERP et d’autres techniques. Aucune redirection de ports necessaire.
- Base sur l’identite : L’authentification est liee a votre fournisseur d’identite existant (Google, Microsoft, GitHub), et non a des certificats ou des cles pre-partagees gerees manuellement.
- Adresses 100.x.y.z : Chaque appareil recoit une adresse IP Tailscale stable dans la plage 100.64.0.0/10 (espace CGNAT) qui ne change pas, quel que soit le reseau physique sur lequel se trouve l’appareil.
Tailscale vs VPN Traditionnels
Comprendre en quoi Tailscale differe des configurations VPN traditionnelles vous aide a apprecier quand et pourquoi l’utiliser :
| Caracteristique | Tailscale | VPN Traditionnel (OpenVPN/IPsec) | WireGuard Manuel |
|---|---|---|---|
| Topologie | Mesh (pair-a-pair) | Hub-and-spoke (serveur central) | Point a point ou hub |
| Configuration | Zero-config | Configuration complexe serveur + client | Echange manuel de cles |
| Traversee de NAT | Automatique | Necessite une redirection de ports | Necessite une redirection de ports |
| Gestion des cles | Automatique via serveur de coordination | PKI manuelle ou cles pre-partagees | Paires de cles manuelles |
| Identite | SSO (Google, Microsoft, GitHub) | Certificats ou identifiants | Cles pre-partagees |
| Performance | Pair-a-pair direct, faible latence | Tout le trafic via le serveur central | Direct, mais configuration manuelle |
| Evolutivite | Ajout d’un appareil en quelques secondes | Reconfigurer le serveur pour chaque client | Modifier les configs sur tous les pairs |
| Support mobile | Applications natives (iOS, Android) | Clients tiers | Clients tiers |
Quand choisir Tailscale : Lorsque vous souhaitez un VPN qui connecte tous vos appareils avec un effort minimal, en particulier a travers differents reseaux et environnements NAT. Il est ideal pour l’acces distant a des laboratoires domestiques, la connexion d’equipes distribuees ou la creation d’un reseau prive superpose entre des instances cloud.
Quand rester sur WireGuard manuel : Lorsque vous avez besoin d’un controle total sur chaque aspect du VPN, que vous operez dans un environnement isole d’internet, ou que vous avez des exigences de conformite interdisant l’utilisation d’un service de coordination tiers.
Prerequis
Avant de commencer, assurez-vous de disposer de :
- Un compte Tailscale (offre gratuite disponible sur tailscale.com)
- Au moins deux appareils que vous souhaitez connecter (Linux, Windows, macOS, iOS ou Android)
- Un acces root ou sudo sur les serveurs Linux
- Un acces administrateur sur Windows (pour l’installation)
- Des connaissances de base de la ligne de commande
Installation de Tailscale sur Linux
Tailscale fournit des paquets officiels pour toutes les distributions Linux majeures. La methode recommandee utilise le script d’installation officiel.
Ubuntu / Debian
# Ajouter la cle de signature et le depot de Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
Si vous preferez ajouter le depot manuellement :
# Ajouter la cle GPG de Tailscale
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
# Ajouter le depot Tailscale
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
# Installer Tailscale
sudo apt update
sudo apt install -y tailscale
Fedora / RHEL / CentOS
# Ajouter le depot Tailscale
sudo dnf config-manager --add-repo https://pkgs.tailscale.com/stable/fedora/tailscale.repo
# Installer Tailscale
sudo dnf install -y tailscale
# Activer et demarrer le daemon
sudo systemctl enable --now tailscaled
Arch Linux
sudo pacman -S tailscale
sudo systemctl enable --now tailscaled
Verifier l’Installation
Apres l’installation sur n’importe quelle distribution, verifiez que le daemon Tailscale est en cours d’execution :
# Verifier l'etat du service tailscaled
sudo systemctl status tailscaled
# Verifier que le CLI Tailscale est disponible
tailscale version
Vous devriez voir une sortie similaire a :
1.62.0
tailscale commit: abcdef1234567890
other commit: abcdef1234567890
go version: go1.22.0
Installation sur Windows et macOS
Windows
- Telechargez l’installateur depuis tailscale.com/download/windows
- Executez l’installateur
.msi - Tailscale apparait dans la barre des taches apres l’installation
- Cliquez sur l’icone Tailscale et selectionnez Se connecter
- Authentifiez-vous avec votre fournisseur d’identite dans le navigateur
Alternativement, installez via la ligne de commande avec winget :
winget install Tailscale.Tailscale
macOS
Installez depuis le Mac App Store ou avec Homebrew :
# Installer via Homebrew
brew install --cask tailscale
Ou telechargez directement depuis tailscale.com/download/mac. Apres l’installation, ouvrez Tailscale depuis le dossier Applications et il apparaitra dans la barre de menus.
Docker
Pour les environnements conteneurises, Tailscale fournit une image Docker officielle :
docker run -d \
--name=tailscale \
--hostname=my-container \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v /dev/net/tun:/dev/net/tun \
-v tailscale-state:/var/lib/tailscale \
-e TS_AUTHKEY=tskey-auth-xxxxxxxxxxxx \
-e TS_STATE_DIR=/var/lib/tailscale \
tailscale/tailscale:latest
Astuce : Utilisez une cle d’authentification pre-autorisee (
TS_AUTHKEY) pour eviter l’etape de connexion manuelle dans les environnements sans interface graphique. Generez les cles d’authentification dans la console d’administration de Tailscale sous Parametres > Cles.
Connecter les Appareils a Votre Tailnet
Une fois Tailscale installe, connectez chaque appareil a votre tailnet :
Authentifier Votre Premier Appareil
# Demarrer Tailscale et s'authentifier
sudo tailscale up
Cette commande affiche une URL. Ouvrez-la dans votre navigateur, connectez-vous avec votre fournisseur d’identite et autorisez l’appareil. Apres l’authentification, l’appareil rejoint votre tailnet et recoit une adresse IP Tailscale.
Verifier l’Etat de Votre Connexion
# Voir votre IP Tailscale et l'etat de la connexion
tailscale status
Exemple de sortie :
100.64.0.1 laptop user@example.com linux -
100.64.0.2 server user@example.com linux -
100.64.0.3 phone user@example.com iOS -
Tester la Connectivite
Une fois que deux appareils ou plus sont connectes, testez la connectivite :
# Envoyer un ping a un autre appareil par son IP Tailscale
tailscale ping 100.64.0.2
# Ou par son nom MagicDNS
tailscale ping server
Le premier tailscale ping peut montrer le trafic achemine via un relais DERP. Les pings suivants etablissent generalement une connexion directe pair-a-pair :
pong from server (100.64.0.2) via DERP(nyc) in 45ms
pong from server (100.64.0.2) via 203.0.113.50:41641 in 12ms
pong from server (100.64.0.2) via 203.0.113.50:41641 in 11ms
Remarque : Le relais DERP n’est utilise que lorsqu’une connexion directe ne peut pas etre etablie (cas rare). DERP signifie Designated Encrypted Relay for Packets, et il s’agit d’un mecanisme de secours, pas du chemin par defaut.
Routage de Sous-reseaux
Le routage de sous-reseaux permet a un noeud Tailscale d’agir comme passerelle, donnant aux autres noeuds de votre tailnet l’acces aux appareils d’un reseau local qui n’ont pas Tailscale installe.
Pourquoi Utiliser le Routage de Sous-reseaux ?
- Acceder aux imprimantes, appareils NAS, appareils IoT ou autres equipements qui ne peuvent pas executer Tailscale
- Atteindre l’integralite d’un LAN de bureau ou domestique depuis n’importe quel appareil de votre tailnet
- Eviter d’installer Tailscale sur chaque appareil individuel d’un reseau
Activer le Routage de Sous-reseaux
Sur la machine Linux qui servira de routeur de sous-reseau :
# Activer le transfert IP (requis pour le routage)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /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
# Annoncer le sous-reseau local
sudo tailscale up --advertise-routes=192.168.1.0/24
Si vous avez plusieurs sous-reseaux :
sudo tailscale up --advertise-routes=192.168.1.0/24,10.0.0.0/24
Approuver la Route dans la Console d’Administration
Les routes de sous-reseaux ne sont pas actives tant qu’un administrateur ne les a pas approuvees :
- Rendez-vous sur la console d’administration de Tailscale
- Trouvez la machine routeur de sous-reseau
- Cliquez sur le menu a trois points et selectionnez Modifier les parametres de routage
- Activez les routes annoncees
Verifier l’Acces au Sous-reseau
Depuis n’importe quel autre appareil de votre tailnet :
# Envoyer un ping a un appareil sur le LAN distant (ex. un NAS a 192.168.1.100)
ping 192.168.1.100
# Se connecter en SSH a un appareil sur le LAN distant
ssh admin@192.168.1.50
Noeuds de Sortie
Un noeud de sortie achemine tout le trafic internet d’un appareil via un autre appareil de votre tailnet. C’est utile pour :
- Acheminer le trafic via un appareil situe dans une zone geographique specifique
- Utiliser la connexion internet d’un reseau de confiance lorsque vous etes sur un Wi-Fi non securise
- Acceder a du contenu geo-restreint depuis l’adresse IP de votre domicile
Configurer un Noeud de Sortie
Sur l’appareil qui servira de noeud de sortie :
# Annoncer cet appareil comme noeud de sortie
sudo tailscale up --advertise-exit-node
Approuvez le noeud de sortie dans la console d’administration de Tailscale, de la meme maniere que pour les routes de sous-reseaux.
Utiliser un Noeud de Sortie
Sur l’appareil qui doit acheminer le trafic via le noeud de sortie :
# Acheminer tout le trafic via un noeud de sortie specifique
sudo tailscale up --exit-node=server
# Ou utiliser l'IP Tailscale
sudo tailscale up --exit-node=100.64.0.2
Pour cesser d’utiliser le noeud de sortie :
sudo tailscale up --exit-node=
Verifier que le Noeud de Sortie Fonctionne
# Verifier votre IP publique -- elle doit correspondre a l'IP publique du noeud de sortie
curl -s https://ifconfig.me
# Verifier l'etat de Tailscale pour les informations sur le noeud de sortie
tailscale status
Important : Lorsque vous utilisez un noeud de sortie, toutes les requetes DNS sont egalement acheminees via ce noeud par defaut. Cela empeche les fuites DNS mais signifie que la vitesse de resolution DNS depend de la configuration DNS du noeud de sortie.
Listes de Controle d’Acces (ACLs)
Les ACLs de Tailscale definissent quels appareils et utilisateurs peuvent communiquer entre eux. Par defaut, tous les appareils d’un tailnet peuvent atteindre tous les autres. Les ACLs vous permettent de restreindre ces acces.
Comprendre la Syntaxe des ACLs
Les ACLs sont definies dans la console d’administration de Tailscale sous Controles d’acces. Le fichier de politiques utilise une syntaxe de type JSON appelee HuJSON (Human JSON) qui prend en charge les commentaires :
{
// Autoriser tous les utilisateurs a un acces complet (politique par defaut)
"acls": [
{
"action": "accept",
"src": ["*"],
"dst": ["*:*"]
}
]
}
Exemple d’ACL Restrictive
Une politique plus pratique qui segmente l’acces par role :
{
"groups": {
"group:admin": ["user@example.com"],
"group:developers": ["dev1@example.com", "dev2@example.com"]
},
"tagOwners": {
"tag:server": ["group:admin"],
"tag:database": ["group:admin"]
},
"acls": [
// Les administrateurs peuvent acceder a tout
{
"action": "accept",
"src": ["group:admin"],
"dst": ["*:*"]
},
// Les developpeurs peuvent acceder aux serveurs sur des ports specifiques
{
"action": "accept",
"src": ["group:developers"],
"dst": ["tag:server:80,443,22"]
},
// Seuls les administrateurs peuvent acceder aux bases de donnees
{
"action": "accept",
"src": ["group:admin"],
"dst": ["tag:database:5432,3306"]
},
// Tous les utilisateurs peuvent envoyer un ping a tous les appareils
{
"action": "accept",
"src": ["*"],
"dst": ["*:*"],
"proto": "icmp"
}
]
}
Appliquer des Tags aux Appareils
Les tags sont appliques lors du demarrage d’un appareil :
# Taguer un appareil comme serveur
sudo tailscale up --advertise-tags=tag:server
# Taguer un appareil avec plusieurs tags
sudo tailscale up --advertise-tags=tag:server,tag:database
Remarque : Les appareils tagues appartiennent au tag, pas a un utilisateur. Cela signifie qu’ils ne peuvent pas etre utilises pour des connexions interactives et sont ideaux pour les noeuds d’infrastructure.
Tester les Regles ACL
Utilisez la fonctionnalite de test ACL dans la console d’administration pour verifier vos regles avant de les appliquer. Vous pouvez egalement utiliser tailscale ping et tailscale netcheck pour verifier la connectivite apres avoir applique les ACLs.
MagicDNS et DNS Personnalise
MagicDNS attribue automatiquement des noms DNS a vos appareils Tailscale, vous permettant de les designer par leur nom plutot que par adresse IP.
Activer MagicDNS
MagicDNS est active par defaut sur les nouveaux tailnets. S’il n’est pas active :
- Rendez-vous sur la console d’administration de Tailscale
- Naviguez vers DNS
- Activez MagicDNS
Avec MagicDNS active, vous pouvez utiliser directement les noms d’appareils :
# Au lieu de :
ssh user@100.64.0.2
# Vous pouvez utiliser :
ssh user@server
# Ou le nom complet qualifie :
ssh user@server.tailnet-name.ts.net
Ajouter des Serveurs DNS Personnalises
Vous pouvez configurer des parametres DNS globaux ou fractionnes dans la console d’administration :
# Serveurs de noms globaux (utilises pour toutes les requetes DNS)
# A configurer dans la console d'admin sous DNS > Serveurs de noms
# DNS fractionne (acheminer des domaines specifiques vers des serveurs DNS specifiques)
# Exemple : Acheminer *.corp.example.com vers votre DNS d'entreprise
# A configurer dans la console d'admin sous DNS > Serveurs de noms > Ajouter un DNS fractionne
Le DNS fractionne est particulierement utile lorsqu’il est combine avec le routage de sous-reseaux. Par exemple, si vous annoncez une route vers le LAN de votre bureau, vous pouvez egalement configurer le DNS fractionne pour que les requetes *.office.local soient resolues via le serveur DNS du bureau.
Remplacer le DNS Local
Pour forcer toutes les requetes DNS a transiter par les serveurs de noms configures de Tailscale :
sudo tailscale up --accept-dns=true
Pour desactiver MagicDNS sur un appareil specifique :
sudo tailscale up --accept-dns=false
Partager des Noeuds avec d’Autres Utilisateurs
Tailscale vous permet de partager des appareils specifiques avec des utilisateurs en dehors de votre tailnet. C’est utile pour donner a un prestataire l’acces a un serveur specifique sans l’ajouter a l’ensemble de votre reseau.
Partager un Noeud
- Rendez-vous sur la console d’administration de Tailscale
- Trouvez la machine que vous souhaitez partager
- Cliquez sur le menu a trois points et selectionnez Partager
- Saisissez l’adresse e-mail de l’utilisateur externe
Le noeud partage apparait dans le tailnet de l’utilisateur externe, mais il ne peut acceder qu’a cet appareil specifique — pas a l’ensemble de votre reseau.
Acces de l’Utilisateur Externe
L’utilisateur externe doit :
- Posseder un compte Tailscale
- Accepter l’invitation de partage
- L’appareil partage apparait dans la sortie de sa commande
tailscale status
# L'utilisateur externe voit l'appareil partage
tailscale status
# 100.64.0.50 shared-server shared by user@example.com linux
Astuce : Combinez le partage de noeuds avec les ACLs pour restreindre les ports auxquels l’utilisateur externe peut acceder sur l’appareil partage. Par exemple, autorisez uniquement SSH (port 22) et HTTP (port 80).
Reference des Commandes Tailscale
| Commande | Description |
|---|---|
tailscale up | Se connecter a votre tailnet et s’authentifier |
tailscale down | Se deconnecter du tailnet |
tailscale status | Afficher les appareils connectes et leurs adresses IP |
tailscale ping <host> | Envoyer un ping a un appareil et afficher le chemin de connexion |
tailscale netcheck | Executer un diagnostic reseau |
tailscale ip | Afficher vos adresses IP Tailscale |
tailscale dns status | Afficher la configuration DNS actuelle |
tailscale file send <fichier> <host> | Envoyer un fichier a un autre appareil via Taildrop |
tailscale file get <repertoire> | Recevoir les fichiers envoyes via Taildrop |
tailscale ssh <utilisateur>@<host> | Se connecter en SSH a un appareil via Tailscale SSH |
tailscale cert <domaine> | Obtenir un certificat TLS pour un domaine Tailscale |
tailscale logout | Se deconnecter et supprimer l’appareil du tailnet |
tailscale up --advertise-routes=<CIDR> | Annoncer des routes de sous-reseaux |
tailscale up --advertise-exit-node | S’annoncer comme noeud de sortie |
tailscale up --exit-node=<host> | Utiliser un noeud de sortie specifique |
tailscale up --advertise-tags=<tags> | Appliquer des tags ACL a l’appareil |
tailscale up --accept-dns=false | Desactiver MagicDNS sur cet appareil |
tailscale bugreport | Generer un rapport de bug pour le depannage |
Depannage
L’Appareil n’Apparait pas dans la Console d’Administration
# Verifier que le daemon est en cours d'execution
sudo systemctl status tailscaled
# Rechercher les erreurs d'authentification dans les logs
sudo journalctl -u tailscaled --since "10 minutes ago"
# Forcer la re-authentification
sudo tailscale up --force-reauth
Impossible d’Atteindre les Autres Appareils
# Executer un diagnostic reseau
tailscale netcheck
# Verifier si la connexion est directe ou relayee
tailscale ping <nom-appareil>
# Verifier que le pare-feu ne bloque pas Tailscale
sudo iptables -L -n | grep -i tailscale
# Verifier si le port UDP 41641 est accessible (utilise pour les connexions directes)
sudo ss -ulnp | grep tailscaled
Connexions Lentes (Trafic Relaye)
Si tailscale ping montre que le trafic passe par un relais DERP au lieu d’une connexion directe :
# Executer netcheck pour voir le type de NAT et la connectivite
tailscale netcheck
# Exemple de sortie montrant des problemes potentiels :
# UDP: true
# IPv4: yes, 203.0.113.50:41641
# MappingVariesByDestAddr: false
# PortMapping: UPnP
# Nearest DERP: New York City
Causes courantes de connexions relayees :
- NAT symetrique d’un cote ou des deux (MappingVariesByDestAddr: true)
- Pare-feu bloquant UDP sur le port 41641
- Pare-feux d’entreprise effectuant une inspection approfondie des paquets
Solutions :
# Sous Linux, assurez-vous que l'UDP n'est pas bloque
sudo ufw allow 41641/udp
# Si vous etes derriere un pare-feu d'entreprise strict, Tailscale utilisera le relais DERP
# DERP est chiffre et fonctionnel, juste legerement plus lent
Les Routes de Sous-reseaux ne Fonctionnent pas
# Verifier que le transfert IP est active
sysctl net.ipv4.ip_forward
# Doit retourner : net.ipv4.ip_forward = 1
# Verifier que les routes sont annoncees
tailscale status --json | grep -A5 "AllowedIPs"
# Verifier que les routes sont approuvees dans la console d'administration
# Les routes non approuvees ne fonctionneront pas
MagicDNS ne Resout pas
# Verifier l'etat du DNS
tailscale dns status
# Verifier que resolv.conf est gere par Tailscale
cat /etc/resolv.conf
# Si vous utilisez systemd-resolved, verifier sa configuration
resolvectl status
# Forcer le rafraichissement DNS
sudo tailscale down && sudo tailscale up
Resume
Tailscale transforme la complexite de la configuration VPN en une experience quasiment sans configuration. En s’appuyant sur les fondations cryptographiques de WireGuard et en y ajoutant la traversee automatique de NAT, l’authentification basee sur l’identite et une topologie mesh, Tailscale vous permet de connecter tous vos appareils de maniere securisee en quelques minutes plutot qu’en plusieurs heures.
Points cles de ce guide :
- L’installation est triviale : Une commande pour installer, une commande pour se connecter
- Le reseau mesh elimine les goulots d’etranglement : Les appareils communiquent directement sans serveur central
- Le routage de sous-reseaux etend la portee : Accedez aux appareils qui ne peuvent pas executer Tailscale via un routeur de sous-reseau
- Les noeuds de sortie offrent un acheminement flexible du trafic : Acheminez tout le trafic via n’importe quel appareil de votre tailnet
- Les ACLs appliquent le principe du moindre privilege : Controlez qui peut acceder a quoi a un niveau granulaire
- MagicDNS simplifie l’adressage : Utilisez des noms d’appareils au lieu d’adresses IP
Pour des guides connexes sur la securite et les reseaux, consultez nos articles sur la mise en place d’un serveur VPN WireGuard sur Ubuntu pour une configuration manuelle de WireGuard, et le renforcement SSH pour les serveurs Linux pour securiser les connexions SSH vers vos serveurs connectes avec Tailscale.