Cloudflare Tunnel : accéder en sécurité à vos services locaux sans IP publique

Impossible d’accéder aux fichiers du NAS à la maison, impossible de partager un lien pour montrer un projet local — la cause est souvent la même : pas d’IP publique. Les opérateurs ne la fournissent pas, la facturent en option, ou imposent une IP dynamique avec DDNS peu fiable. frp, ngrok et autres solutions exigent un serveur cloud ou imposent des limites sévères en gratuit.
Cloudflare Tunnel est entièrement gratuit, sans IP publique ni serveur cloud, sans redirection de ports sur le routeur. HTTPS et protection DDoS Cloudflare sont inclus. Ce guide vous montre comment l’utiliser pour accéder à distance au NAS, présenter un projet local ou vous connecter en SSH — en environ 30 minutes.
I. Qu’est-ce que Cloudflare Tunnel ? Pourquoi le choisir ?
À quoi sert le tunnel vers le réseau local ?
En conditions normales, vos appareils à la maison sont sur un réseau privé (ex. 192.168.1.100). Ils communiquent entre eux, mais l’extérieur ne peut pas entrer. Pour accéder au NAS depuis le bureau ou un café, il faut un « pont » entre réseau local et Internet.
La solution classique est la redirection de ports sur le routeur. Mais cela suppose une IP publique — souvent absente sur la fibre résidentielle, ou bloquée derrière un NAT opérateur.
Le tunnel résout ce problème : exposer un service interne sans IP publique.
Principe de fonctionnement
Cloudflare Tunnel ne « perce pas de l’extérieur » : la connexion part de l’intérieur vers l’extérieur.
- Vous exécutez
cloudflared(démon) sur un appareil du réseau local - Il se connecte au réseau Cloudflare et établit un tunnel chiffré
- Quand quelqu’un visite votre domaine (ex. nas.yourdomain.com), la requête passe d’abord par le CDN Cloudflare
- Cloudflare transmet la requête à votre service via le tunnel
- La réponse repart par le même chemin
Votre service reste « invisible » : aucun port ouvert, pas d’IP publique, une seule connexion sortante chiffrée. C’est l’approche Zero Trust : aucune confiance par défaut, trafic authentifié et chiffré.
Métaphore : une ligne dédiée entre chez vous et Cloudflare ; seul vous l’utilisez, personne ne localise votre serveur.
Pourquoi j’ai choisi Cloudflare Tunnel
J’ai testé plusieurs solutions ; voici mon comparatif.
Comparé à frp :
frp est efficace, mais exige un serveur cloud avec IP publique — coût mensuel, configuration et maintenance. Cloudflare Tunnel supprime ce coût ; CDN et DDoS sont inclus.
Comparé à ngrok :
En gratuit, domaine aléatoire qui change au redémarrage et quota de trafic. Domaine personnalisé = payant. Cloudflare Tunnel : gratuit, domaine personnalisé, trafic illimité.
Comparé à Tailscale/ZeroTier (P2P) :
Réseau virtuel pour interconnecter vos appareils. Moins adapté pour publier un site public. Cloudflare Tunnel vise la publication de services vers l’extérieur.
En trois mots : gratuit, sécurisé, simple.
Limites : vitesse depuis la Chine modérée (nœuds surtout à l’étranger, latence et coupures occasionnelles). Pour un usage personnel non temps réel, largement suffisant.
II. Préparation : de quoi avez-vous besoin ?
1. Compte Cloudflare (gratuit)
Inscrivez-vous sur cloudflare.com. Si vous utilisez déjà DNS ou CDN Cloudflare, réutilisez le même compte.
2. Un nom de domaine
Seul poste payant. Le domaine doit être hébergé chez Cloudflare : le trafic est routé par nom (ex. nas.yourdomain.com).
Un .com ou .top coûte peu chez les registrars chinois ; pointez ensuite les serveurs DNS vers Cloudflare (tutoriel détaillé côté Cloudflare). Bonus : CDN et pare-feu Cloudflare inclus.
3. Plan Zero Trust gratuit
Cloudflare Tunnel fait partie de Zero Trust. Le plan gratuit suffit (jusqu’à 50 utilisateurs).
Étapes :
- Connexion à la console Cloudflare
- Menu Zero Trust
- Choisir le plan gratuit (Free Plan)
- Lier un moyen de paiement (carte ou PayPal)
Pas de débit en pratique : mesure anti-abus. Carte binaire internationale acceptée ; aucun prélèvement constaté de mon côté.
4. Un appareil sur le réseau local
Conditions :
- Connecté à Internet
- Allumé en permanence (ou quand vous en avez besoin)
Exemples : PC (Windows/Mac/Linux), NAS (Synology, QNAP avec Docker), Raspberry Pi, routeur logiciel. Personnellement, je fais tourner cloudflared en Docker sur le NAS.
5. Le service à exposer
Exemples :
- Interface web du NAS (ports 5000, 5001)
- Home Assistant (8123)
- Blog ou site perso (80, 8080)
- SSH (22)
Notez IP interne et port, ex. 192.168.1.100:5000.
Seul coût réel : le domaine. Le reste est gratuit.
III. Configuration pas à pas
Trois grandes étapes : créer le Tunnel, installer cloudflared, configurer le domaine. En pratique, c’est rapide.
Étape 1 : Créer un Tunnel dans la console Cloudflare
- Connexion → console Zero Trust
- Networks → Connectors → Cloudflare Tunnels
- Create a tunnel
- Type de connecteur : Cloudflared (par défaut)
- Nommez le Tunnel (
home-nas,dev-server, etc.)
Après Save tunnel, Cloudflare génère un Token.
Important : conservez ce Token — clé du Tunnel, nécessaire à l’installation de cloudflared. Copiez la longue chaîne affichée ou gardez la page ouverte.
Étape 2 : Installer cloudflared
Option 1 : Docker (recommandé)
Sur NAS ou serveur Linux :
docker run -d --restart=always \
--name cloudflared \
cloudflare/cloudflared:latest \
tunnel --no-autoupdate run --token <VOTRE_TOKEN>
Remplacez <VOTRE_TOKEN>. --restart=always relance le conteneur après redémarrage.
Option 2 : Installation Linux directe
Ubuntu/Debian :
# Télécharger le paquet
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
# Installer
sudo dpkg -i cloudflared-linux-amd64.deb
# Lancer le Tunnel
sudo cloudflared service install <VOTRE_TOKEN>
CentOS/RHEL : remplacez .deb par .rpm.
Option 3 : Windows
MSI :
https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.msi
Installez, puis en administrateur (CMD) :
cloudflared.exe service install <VOTRE_TOKEN>
Option 4 : macOS
brew install cloudflared
cloudflared service install <VOTRE_TOKEN>
Retournez dans la console : statut HEALTHY = tunnel établi.
Étape 3 : Configurer le hostname public (Public Hostname)
Indiquez à Cloudflare où router le trafic, ex. nas.yourdomain.com → 192.168.1.100:5000.
- Onglet Public Hostname
- Add a public hostname
- Renseignez :
- Subdomain : ex.
nas→nas.yourdomain.com - Domain : votre domaine (déjà chez Cloudflare)
- Path : vide sauf besoin de préfixe (
/api) - Type : HTTP
- URL :
http://IP_interne:port, ex.http://192.168.1.100:5000
- Subdomain : ex.
Pourquoi HTTP et pas HTTPS côté service ? Cloudflare fournit HTTPS automatiquement :
- Visiteur → Cloudflare : HTTPS (certificat auto)
- Cloudflare → service interne : tunnel chiffré
Même sans HTTPS local, l’utilisateur est chiffré de bout en bout.
Save hostname : la config est active.
Étape 4 : Vérifier l’accès
Ouvrez https://nas.yourdomain.com. Le cadenas confirme le certificat.
Première fois : attendez quelques minutes (propagation DNS). En cas d’échec :
- Attendre 5-10 minutes
- Vérifier le statut HEALTHY
- Tester le service en local (
http://192.168.1.100:5000)
Plusieurs hostnames par Tunnel
Exemple :
nas.mydomain.com→http://192.168.1.100:5000(NAS)blog.mydomain.com→http://192.168.1.100:8080(blog)ha.mydomain.com→http://192.168.1.101:8123(Home Assistant)
Un seul Tunnel pour plusieurs services.
IV. Configuration avancée et bonnes pratiques
Fichier de configuration pour plusieurs services
Pour beaucoup de services ou la gestion en version control, utilisez config.yml :
tunnel: <UUID_DU_TUNNEL>
credentials-file: /path/to/<UUID>.json
ingress:
- hostname: nas.yourdomain.com
service: http://192.168.1.100:5000
- hostname: blog.yourdomain.com
service: http://192.168.1.100:8080
- hostname: ha.yourdomain.com
service: http://192.168.1.101:8123
- service: http_status:404
La règle http_status:404 en dernier est obligatoire (filet de sécurité).
Lancement :
cloudflared tunnel --config /path/to/config.yml run
Configuration plus claire ; versionnable en Git (ne commitez pas le Token).
SSH et RDP
Exemple SSH dans config.yml :
- hostname: ssh.yourdomain.com
service: ssh://localhost:22
Sur le PC local :
# Configurer SSH
cat >> ~/.ssh/config << EOF
Host ssh.yourdomain.com
ProxyCommand cloudflared access ssh --hostname %h
EOF
# Connexion
ssh [email protected]
RDP : même principe avec rdp://. Ports SSH/RDP non exposés sur Internet.
Renforcer avec Cloudflare Access
Sans Access, quiconque connaît l’URL peut accéder au service. Pour un NAS ou une admin, ajoutez une authentification.
- Zero Trust → Access → Applications
- Add an application → Self-hosted
- Renseignez :
- Application name : ex. « My NAS »
- Application domain : ex.
nas.yourdomain.com
- Politique : liste blanche e-mail, OAuth Google/GitHub, MFA
Accès via la page de connexion Cloudflare avant le service. Gratuit — recommandé pour les services sensibles.
Performance et surveillance
Statut du Tunnel (console Zero Trust) :
- HEALTHY ou DOWN
- Statistiques de trafic
- Nombre de clients
Si DOWN : vérifiez réseau local et processus cloudflared.
Logs (Docker) : docker logs cloudflared
Erreurs fréquentes :
- Token invalide : recopiez-le
- Échec de connexion : service interne down ?
- Certificat : souvent résolu en quelques minutes
Mises à jour :
docker pull cloudflare/cloudflared:latest
docker restart cloudflared
Cloudflare garantit la compatibilité environ un an ; mettez à jour régulièrement.
V. Questions fréquentes et précautions
Vitesse et stabilité
Depuis la Chine, la vitesse n’est pas excellente.
Mesures personnelles :
- Latence : 300-800 ms
- Débit : 1-5 Mo/s selon l’heure et la région
- Stabilité : coupures brèves occasionnelles
Causes : nœuds surtout à l’étranger, priorité moindre en gratuit aux heures de pointe.
Adapté : accès NAS occasionnel, démo de projet, SSH distant.
Peu adapté : streaming, jeux en ligne, gros transferts fréquents, production orientée Chine.
Alternatives si la vitesse compte : frp + cloud domestic, Tailscale P2P.
Sécurité
Cloudflare Tunnel est intrinsèquement sûr :
- HTTPS bout en bout
- Aucun port entrant
- Zero Trust par défaut
- Protection DDoS Cloudflare
Recommandations :
- Ne pas exposer les bases de données (MySQL, Redis, etc.)
- Access sur services sensibles (NAS, SSH, admin)
- Surveiller les logs
- Mettre à jour systèmes et applications internes
Bien plus sûr qu’un port ouvert sur Internet.
Limites du plan gratuit
- Jusqu’à 50 utilisateurs
- Trafic illimité
- UDP non supporté (TCP OK)
- HTTP/3 QUIC non disponible en Chine pour l’instant
- Domaine obligatoire, hébergé chez Cloudflare
Alternatives
| Solution | Avantages | Inconvénients | Cas d’usage |
|---|---|---|---|
| frp | Rapide, stable | Serveur cloud payant | Production, utilisateurs Chine |
| Tailscale | P2P direct, rapide | Usage privé, pas publication publique | Interconnexion personnelle |
| ngrok | Simple | Gratuit limité, domaine custom payant | Démo temporaire |
| DDNSTO | Équipe chinoise, bon débit | Limite d’appareils en gratuit | Utilisateurs Chine |
Choisissez selon votre contexte ; aucune solution universelle.
Astuces pratiques
1. Sous-domaine court
nas.yourdomain.com se retient mieux que mynas.yourdomain.com.
2. Nommage cohérent
nas.— NASblog.— blogdev.— environnement de devssh.— SSH
3. Sauvegardez le Token
Dans un gestionnaire de mots de passe (1Password, Bitwarden). Perdu = recréer le Tunnel.
4. Alertes
Webhooks ou e-mails Cloudflare quand le Tunnel tombe (Settings dans Zero Trust).
Conclusion
Cloudflare Tunnel est une solution gratuite, sécurisée et simple de tunnel vers le réseau local, idéale pour développeurs solo et homelab. Pas d’IP publique, pas de serveur cloud, pas de redirection de ports — configuration en ~30 minutes.
Atouts :
- Gratuit, trafic illimité
- Architecture Zero Trust
- HTTPS et DDoS inclus
- HTTP, SSH, RDP, etc.
- Plusieurs services par Tunnel
Limites :
- Vitesse depuis la Chine modérée
- Coupures occasionnelles
- Domaine chez Cloudflare obligatoire
- Pas d’UDP
Pour un accès personnel occasionnel ou un public à l’étranger, c’est largement suffisant. Production domestique ou exigence de latence faible : autres options.
Après une après-midi avec frp et un VPS, Tunnel configuré en dix minutes — vous comprendrez le sentiment « j’aurais dû commencer par là ».
Essayez maintenant ; questions en commentaire, je répondrai.
Configuration complète de Cloudflare Tunnel pour l’accès à distance
De la création du Tunnel au hostname public — tunnel gratuit en 30 minutes, HTTP/SSH/RDP
Estimated time: PT30M
-
1
Step 1: Préparation : compte Cloudflare et domaine
Inscription Cloudflare : -
2
Step 2: Créer un Tunnel dans la console Cloudflare
Étapes : -
3
Step 3: Installer cloudflared
Docker (recommandé) : -
4
Step 4: • Windows
installer le MSI -
5
Step 5: • macOS
brew install cloudflared -
6
Step 6: Configurer le hostname public (Public Hostname)
Étapes : -
7
Step 7: • Subdomain
ex. nas → nas.yourdomain.com -
8
Step 8: • Domain
votre domaine (hébergé chez Cloudflare) -
9
Step 9: • Path
vide sauf besoin de préfixe (/api) -
10
Step 10: • Type
HTTP -
11
Step 11: • URL
http://IP_interne:port -
12
Step 12: Ex.
http://192.168.1.100:5000 -
13
Step 13: • Visiteur → Cloudflare
HTTPS (certificat auto) -
14
Step 14: • Cloudflare → service interne
tunnel chiffré -
15
Step 15: Vérification et configuration avancée
Vérifier l’accès : -
16
Step 16: • Première visite
attendre quelques minutes (DNS) -
17
Step 17: • Connexion
FAQ
Quelle différence entre Cloudflare Tunnel, frp et ngrok ? Pourquoi le choisir ?
• frp est pratique et simple à configurer, mais exige un serveur cloud avec IP publique
• Cela coûte plusieurs dizaines d'euros par mois, plus la configuration et la maintenance
• Cloudflare Tunnel supprime ce coût ; CDN et protection DDoS Cloudflare sont inclus gratuitement
Comparé à ngrok (très populaire à l'étranger) :
• La version gratuite attribue un domaine aléatoire qui change à chaque redémarrage, avec limite de trafic
• Pour un domaine personnalisé, il faut la version payante
• Cloudflare Tunnel est gratuit, domaine personnalisé illimité, trafic illimité
Comparé à Tailscale/ZeroTier (réseau P2P) :
• Ce sont des solutions de réseau virtuel, avec une logique différente
• Idéales pour l'interconnexion point à point (téléphone, PC, serveurs)
• Moins adaptées pour publier un site accessible à tous
• Cloudflare Tunnel convient mieux à la publication de services vers l'extérieur
En résumé, les atouts de Cloudflare Tunnel : gratuit, sécurisé, simple.
Comment fonctionne Cloudflare Tunnel ? Pourquoi est-il plus sûr ?
Flux concret :
1) Vous exécutez cloudflared (démon) sur un appareil du réseau local
2) Il se connecte activement au réseau mondial Cloudflare et établit un tunnel chiffré
3) Quand quelqu'un accède à votre domaine (ex. nas.yourdomain.com), la requête arrive d'abord sur le CDN Cloudflare
4) Cloudflare transmet la requête à votre service interne via le tunnel chiffré
5) La réponse repart par le même tunnel
Votre service interne reste ainsi « invisible » de l'extérieur : aucun port ouvert, pas d'IP publique, une seule connexion chiffrée sortante.
Du point de vue sécurité, c'est l'approche Zero Trust : aucune connexion n'est faite confiance par défaut, tout le trafic est authentifié et chiffré.
Métaphore approximative : une ligne dédiée entre chez vous et Cloudflare, utilisable uniquement par vous ; personne ne voit où se trouve votre serveur.
Quelle vitesse depuis la Chine ? Quels cas d'usage ?
Mesures observées :
• Latence 300-800 ms (accès depuis la Chine)
• Débit de téléchargement souvent 1-5 Mo/s selon l'heure et la région
• Stabilité : coupures brèves occasionnelles, globalement correcte
Pourquoi ?
• Les nœuds CDN Cloudflare sont surtout à l'étranger ; le trafic chinois fait un détour
• Les utilisateurs gratuits ont une priorité relative plus basse, possible limitation aux heures de pointe
Cas adaptés :
• Accès occasionnel au NAS pour télécharger un fichier
• Montrer un projet personnel à des amis
• SSH à distance (la latence importe peu)
Cas peu adaptés :
• Streaming (saccades)
• Serveur de jeu (latence trop élevée)
• Transferts fréquents de gros fichiers
• Production orientée utilisateurs chinois
Si la vitesse est critique, envisagez frp + serveur cloud en Chine, ou Tailscale en P2P. Pour un accès occasionnel personnel ou un public à l'étranger, Cloudflare Tunnel suffit largement.
Comment configurer Cloudflare Tunnel ? Que faut-il préparer ?
1) Compte Cloudflare (gratuit, inscription sur cloudflare.com)
2) Un nom de domaine (petit coût ; chez Alibaba Cloud, Tencent Cloud, un .com ou .top coûte quelques dizaines de yuan/an ; ensuite pointer les DNS vers Cloudflare)
3) Plan Zero Trust gratuit Cloudflare (console Cloudflare → Zero Trust → plan gratuit ; moyen de paiement requis mais sans débit)
4) Un appareil sur le réseau local (connecté à Internet, allumé en permanence ou quand nécessaire : PC, NAS, Raspberry Pi, etc.)
5) Le service interne à exposer (IP et port, ex. 192.168.1.100:5000)
Étapes :
1) Créer un Tunnel dans la console Cloudflare :
• Zero Trust → Networks → Connectors → Cloudflare Tunnels → Create a tunnel
• Récupérer le Token
2) Installer cloudflared (Docker le plus simple) :
docker run -d --restart=always --name cloudflared cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <VOTRE_TOKEN>
3) Configurer le hostname public :
• Onglet Public Hostname → Add a public hostname
• Renseigner Subdomain, Domain, URL, etc.
La configuration prend environ 30 minutes.
Quels protocoles sont supportés ? Comment configurer SSH et RDP ?
Configuration HTTP :
• Dans Public Hostname, Type HTTP, URL http://IP_interne:port
• Même sans HTTPS côté service interne, Cloudflare fournit HTTPS ; le parcours utilisateur reste chiffré
Configuration SSH :
• Dans config.yml :
hostname: ssh.yourdomain.com
service: ssh://localhost:22
• Puis sur le PC local, configurer SSH :
cat >> ~/.ssh/config << EOF
Host ssh.yourdomain.com
ProxyCommand cloudflared access ssh --hostname %h
EOF
• Connexion : ssh [email protected]
RDP (bureau à distance Windows) : même principe avec rdp://.
Avantage : les ports SSH/RDP ne sont plus exposés sur Internet. Un Tunnel peut avoir plusieurs sous-domaines :
• nas.mydomain.com → http://192.168.1.100:5000
• blog.mydomain.com → http://192.168.1.100:8080
• ssh.mydomain.com → ssh://localhost:22
Comment renforcer la sécurité avec Cloudflare Access ? Quelles limites ?
• Zero Trust → Access → Applications
• Add an application → Self-hosted
• Renseigner l'application (ex. My NAS, domaine nas.yourdomain.com)
• Politique d'authentification : liste blanche d'e-mails, OAuth Google/GitHub, MFA
Après configuration, l'accès passe par la page de connexion Cloudflare ; validation requise avant d'atteindre le service. Gratuit pour un usage personnel — fortement recommandé pour les services sensibles.
Limites :
• Plan gratuit Cloudflare :
- Jusqu'à 50 utilisateurs (largement suffisant en solo)
- Trafic illimité
- UDP non supporté (TCP OK)
- HTTP/3 QUIC non disponible en Chine pour l'instant
• Obligation : domaine hébergé chez Cloudflare ; sans cela, pas de Tunnel
Sécurité :
• Tunnel très sûr (HTTPS bout en bout, aucun port entrant, Zero Trust, protection DDoS Cloudflare)
• Recommandations :
- Ne pas exposer directement MySQL, Redis, etc.
- Ajouter Access sur NAS, SSH, interfaces d'administration
- Surveiller les logs, maintenir systèmes et logiciels à jour
9 min de lecture · Publié le: 30 nov. 2025 · Mis à jour le: 27 juil. 2026
Cloudflare Full Stack
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Cloudflare, un « CDN ralentisseur » ? 3 étapes pour choisir une IP optimisée et multiplier la vitesse par 5
Trouvez l'IP Cloudflare à la latence la plus basse avec CloudflareSpeedTest, configurez un nœud préféré en 10 minutes : latence de 280 ms à 45 ms (×3 à ×5), tutoriel complet, réglages et dépannage
Partie 11 sur 23
Suivant
Hébergeur d'images gratuit : Cloudflare R2 + PicGo pour une solution stable
Guide pas à pas pour créer un hébergeur d'images personnel entièrement gratuit avec Cloudflare R2 : accès public, domaine personnalisé, plugin S3 PicGo — configuration en 30 minutes avec solutions aux problèmes courants.
Partie 13 sur 23



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire