Deux commandes Tailscale ne diffèrent que d'un mot. tailscale serve partage un service local avec les appareils de votre propre tailnet. tailscale funnel achemine le trafic depuis l'internet au sens large vers ce même service, accessible à quiconque possède l'URL.
Même syntaxe, exposition inverse. C'est tout l'article en deux phrases, mais se tromper de sens laisse sur l'internet ouvert un service que vous croyiez privé, alors il vaut la peine d'être précis sur ce que Funnel fait, et ne fait pas.
En bref (le détail, les commandes et la mise en place sur votre domaine sont plus bas) :
tailscale serve | tailscale funnel | VPS + Caddy (votre domaine) | |
|---|---|---|---|
| Qui peut y accéder | Les appareils de votre tailnet seulement | Toute personne qui a l'URL | Tout le monde, derrière votre identifiant |
| Adresse | machine.nom-du-tailnet.ts.net | La même URL ts.net, devenue publique | Un domaine à vous |
| Ports publics | Aucun, rien n'est public | 443, 8443 ou 10000 uniquement | Ceux que vous ouvrez |
| Authentification devant | L'appartenance au tailnet | Aucune | La vôtre (basic_auth de Caddy) |
| Bande passante | Sans le plafond de Funnel | Plafonnée par Tailscale, non réglable | Le débit du port du VPS |
| Coût en plus | Aucun | Aucun, sur toutes les offres | Quelques euros par mois |
Construisez votre commande Serve ou Funnel
Trois questions, et vous obtenez la commande, l'adresse qu'elle donne et de quoi annuler. Tout se passe dans votre navigateur, rien n'est envoyé.
Votre commande
tailscale funnel 3000
Adresse sur laquelle il répondra
https://<machine>.<tailnet-name>.ts.net
Vérifier et annuler
tailscale funnel status tailscale funnel reset
- Funnel ne met aucune authentification devant le service : quiconque a l'URL atteint votre application. Ne publiez que ce qui a sa propre connexion.
- Le fichier de politique du tailnet doit accorder l'attribut de nœud funnel (par défaut : autogroup:member), et MagicDNS ainsi que les certificats HTTPS doivent être activés dans la console d'administration.
- Sans --bg, le partage s'arrête à la fermeture du terminal : le choix prudent pour un essai.
Si vous voulez votre propre domaine, n'importe quel port et aucun plafond de bande passante Funnel, la colonne de droite est la solution : un petit VPS avec IPv4 publique (Contabo, 5,50 € par mois) plus Caddy, installé pas à pas plus bas.
Ce qu'est réellement Funnel
La description de Tailscale est directe : Funnel « permet d'acheminer le trafic depuis l'internet au sens large vers un service local tournant sur un appareil de votre réseau Tailscale ». L'objectif est de partager avec des personnes qui ne sont pas sur votre tailnet et n'ont pas de compte Tailscale.
Serve est le cas inverse, et la documentation le dit sans détour : si vous voulez partager des services locaux uniquement avec les autres appareils de votre tailnet, utilisez Serve.
La décision n'est donc pas une préférence technique, c'est une question sur votre public :
- Uniquement vos machines et les personnes invitées dans le tailnet → Serve.
- N'importe qui avec le lien, y compris des inconnus → Funnel.
Si vous ne savez pas répondre à cette question pour un service donné, ne lancez encore aucune des deux commandes.
Les trois contraintes qui décident si Funnel convient
Funnel est volontairement étroit, et ses limites sont documentées plutôt que subies. Trois d'entre elles tranchent la plupart des cas avant même d'écrire une ligne de configuration.
Les ports : 443, 8443, 10000. C'est toute la liste. Funnel ne peut écouter que sur ces trois-là. Ce n'est pas une valeur par défaut à surcharger, si votre service doit être joignable publiquement sur un autre port, Funnel n'est pas le bon outil.
Le nom d'hôte appartient à Tailscale. Funnel ne peut utiliser que des noms DNS du domaine de votre tailnet, de la forme tailnet-name.ts.net. Si vous comptiez poser un produit, une démo client ou quoi que ce soit portant votre marque sur un domaine à vous, ce n'est pas ce que fait cet outil.
La bande passante est plafonnée, et le plafond n'est pas le vôtre. Tailscale indique que le trafic envoyé via Funnel est soumis à des limites non configurables. Pour une page de configuration ou un petit outil interne, sans importance. Pour diffuser une médiathèque à des proches, ce plafond sera probablement la contrainte, avant votre débit montant.

Ce que l'on saute : il n'y a aucune authentification devant
C'est la raison pour laquelle la confusion Serve/Funnel compte davantage qu'une faute de frappe ordinaire.
La documentation de Tailscale ne décrit aucune couche d'authentification devant un point d'entrée Funnel, et c'est délibéré, puisque toute la finalité est de servir des gens qui ne sont pas sur votre tailnet et ne peuvent donc pas être authentifiés par lui. Funnel vous donne un point d'entrée HTTPS public ; il ne vous donne pas de porte.
Conséquence pratique : l'authentification de votre application est la seule chose entre l'internet et vos données. Un tableau de bord sans mot de passe, un explorateur de fichiers qui fait confiance au réseau local, un panneau d'administration qui n'était joignable que depuis votre LAN, tous deviennent ouverts dès l'instant où ils sont « funnelés » plutôt que « servis ».
Avant d'activer cela sur quoi que ce soit, le test honnête tient en une question : serais-je à l'aise de publier cette URL publiquement ? Si la réponse est non, le service a besoin de sa propre authentification, ou bien de Serve plutôt que de Funnel.
L'activer : le fichier de politique d'abord
Funnel n'est pas actif par défaut sur un nœud. Il exige un attribut de nœud funnel dans le fichier de politique de votre tailnet, qui indique à Tailscale quels utilisateurs ont le droit de s'en servir. Par défaut, ce droit va à autogroup:member.
Cette indirection mérite d'être comprise plutôt que cliquée : elle signifie que Funnel est une décision administrative au niveau du tailnet, pas seulement une commande qu'un utilisateur lance sur son portable. Dans un tailnet partagé, celui qui contrôle le fichier de politique contrôle la possibilité même d'exposer des services publiquement.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s
Un VPS avec sa propre IP publique, sans tunnel → ContaboIPv4 publique · Vous maîtrisez le pare-feu, les ports et le reverse proxy · Aucun plafond de bande passante imposé par un tiers→Les commandes, côte à côte
Les deux commandes prennent la même cible : un port, une adresse localhost:port ou l'URL complète d'un service qui tourne sur la machine. Voici les formes listées par tailscale funnel --help sur Tailscale 1.104.1 (18 octobre 2026). Rien ne change en 1.104.2, version stable du 21 octobre 2026 : son journal des modifications ne liste que la compilation avec Go 1.27.3, qui retire la confiance aux certificats intermédiaires TLS eMudhra compromis (bulletin de sécurité Tailscale TS-2026-013), et deux correctifs du client Windows. Mets le client à jour, les commandes ci-dessous restent les mêmes :
# Dans le tailnet uniquement : https://<machine>.<nom-du-tailnet>.ts.net
tailscale serve --bg 3000
# Sur l'internet public, même URL, accessible à n'importe qui
tailscale funnel --bg 3000
# Public, sur l'un des deux autres ports autorisés
tailscale funnel --bg --https=8443 3000
# Voir ce qui est exposé, puis tout retirer
tailscale funnel status
tailscale funnel reset
Sans --bg, le partage tourne au premier plan et s'arrête quand vous fermez le terminal, ce qui est le réglage le plus prudent pour un test rapide. Avec --bg, il survit aux déconnexions et aux redémarrages jusqu'au reset : prenez l'habitude de lancer tailscale funnel status sur toute machine où vous l'avez utilisé. Avant le premier lancement, MagicDNS et les certificats HTTPS doivent être activés pour le tailnet dans la console d'administration, car Funnel sert un vrai certificat pour le nom ts.net.
Tailscale Funnel avec votre propre domaine : le reverse proxy sur VPS
Funnel ne répondra pas sur app.exemple.fr, et un CNAME vers votre nom ts.net n'y change rien : le certificat est émis pour le nom ts.net, donc le navigateur refuse le domaine personnalisé. Le montage qui vous donne un domaine à vous, n'importe quel port, aucun plafond de bande passante Funnel et une authentification que vous maîtrisez, c'est un petit serveur public qui rejoint votre tailnet et relaie le trafic vers la machine de la maison à travers lui.
- Louez un petit VPS avec une IPv4 publique et installez-y Tailscale (
curl -fsSL https://tailscale.com/install.sh | sh, puissudo tailscale up). Il joint désormais votre machine domestique sur son adresse tailnet100.x.y.z. - Faites pointer un enregistrement A pour
app.exemple.frvers l'IP publique du VPS et ouvrez les ports 80 et 443 sur son pare-feu, rien d'autre. - Installez Caddy sur le VPS avec ce Caddyfile (validé par
caddy validatesur Caddy 2.11.7) :
app.exemple.fr {
basic_auth {
# générer le hash avec : caddy hash-password
alice $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
reverse_proxy 100.101.102.103:3000
}
Caddy obtient seul le certificat Let's Encrypt de votre domaine, et le bloc basic_auth place devant le service la barrière que Funnel n'a jamais eue. Remplacez 100.101.102.103 par l'IP tailnet qu'affiche tailscale ip -4 sur la machine de la maison, et vérifiez que le service y écoute sur cette interface, pas seulement sur 127.0.0.1. Le réseau domestique n'ouvre toujours aucun port : le VPS est la seule façade publique, et le trafic entre les deux circule dans WireGuard.
Le coût honnête : quelques euros par mois et une machine de plus à tenir à jour. Un VPS 1 vCPU et 1 Go suffit largement pour un reverse proxy ; la limite devient le débit du port du VPS, plus un plafond fixé par quelqu'un d'autre. Si vous préférez ne faire tourner aucun serveur public, un produit de tunnel pensé pour les domaines personnalisés est l'alternative, comparée plus bas.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s
La façade publique de votre domaine → VPS ContaboIPv4 publique · Trafic illimité (usage raisonnable) · Rejoint votre tailnet en deux commandes→Si vous préférez un hébergeur américain avec 30 jours satisfait ou remboursé, le VPS Basic d'Ultahost coûte 5,52 $ par mois sur 24 mois (1 Go de RAM, IPv4 dédiée, relevé le 21 octobre 2026), assez pour le reverse proxy Caddy décrit plus haut.
Quand Funnel est la bonne réponse, et quand il ne l'est pas
Funnel convient quand vous voulez donner à quelqu'un d'extérieur à votre tailnet une URL HTTPS qui marche, avec un minimum de cérémonie : un point d'entrée webhook qu'un service tiers doit atteindre, un aperçu de ce que vous construisez, un partage temporaire. Les certificats et le point d'entrée public sont pris en charge, et cela fonctionne sur tous les plans.
Funnel ne convient pas quand il vous faut un domaine à vous, un port hors des trois autorisés, un débit soutenu, ou une couche d'authentification que vous maîtrisez. Ces besoins pointent ailleurs : un reverse proxy sur une machine avec sa propre IP publique, ou un produit de tunnel bâti autour des domaines personnalisés. Cette comparaison-là a son propre arbitrage, qu'il vaut mieux lire d'abord : Pangolin vs Cloudflare Tunnel tient à qui appartient la machine par laquelle votre trafic ressort.
Et pour le cas auquel les gens pensent le plus souvent en se tournant vers Funnel, je veux que mes propres appareils atteignent ce service depuis n'importe où, ni Funnel ni un tunnel public n'est la réponse. C'est ce que le tailnet fait déjà, et ce qu'un nœud de sortie ou un serveur WireGuard auto-hébergé fait sans rien exposer publiquement.
Pour garder les commandes sous la main : notre Tailscale & Headscale Cheat Sheet gratuite (PDF de 4 pages en anglais, téléchargement direct, sans inscription) réunit status et ping, exit node, subnet router, Serve et Funnel, la configuration Headscale, les utilisateurs, clés et ACL, et les causes de panne habituelles. Télécharger la fiche.
L'essentiel
serve et funnel sont à un mot d'écart dans le terminal et opposés dans ce qu'ils publient. Serve garde un service à l'intérieur du tailnet ; Funnel le met sur l'internet, sur l'un de trois ports, sous un nom d'hôte ts.net, avec un plafond de bande passante et rien qui authentifie les visiteurs.
Décidez du public que vous visez réellement avant de taper l'une ou l'autre. Si la réponse est « mes propres machines », vous n'aviez jamais besoin d'un point d'entrée public, et l'exposition la plus sûre reste celle que l'on n'a jamais ouverte.
Lien affilié
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s
Héberge ton VPN sur ton propre VPS → ContaboCloud VPS 4 · 5,50 €/ mois · Carte ou PayPal · commandes hors UE acceptées→Prix relevé le 17/10/2026, engagement 24 mois


