Cloudflare Tunnel : Exposez votre site local (Guide 2025)

Cloudflare tunnel pour exposer en 2s votre projet local

Introduction

Dans un précédent article, nous avons exploré les fondamentaux de Cloudflare et entrevu l’étendue de ses possibilités. Aujourd’hui, concentrons-nous sur une de ses fonctionnalités les plus impressionnantes : Cloudflare Tunnel — une solution puissante et élégante à un besoin pourtant très courant.

Imaginez : vous êtes développeur ou développeuse, et vous souhaitez présenter votre projet web à un cercle restreint — amis, collègues, proches.
Mais rapidement, vous vous heurtez à un dilemme : transporter votre machine pour faire une démo en direct, ou déployer le projet sur un VPS, avec nom de domaine, pare-feu, DNS, configuration HTTPS… Bref, une usine à gaz.

Et si une seule commande suffisait pour exposer instantanément votre serveur local sur Internet, de façon sécurisée, sans ouvrir aucun port ?
Trop beau pour être vrai ? Pas avec Cloudflare Tunnel.

Voyons ensemble comment cette solution peut transformer radicalement votre façon de partager vos projets web — en quelques secondes chrono.

Cloudflare Tunnel, la réponse !

1. Aucun port ouvert, aucune IP publique exposée

Cloudflare Tunnel fonctionne exclusivement avec des connexions sortantes sécurisées. Cela signifie qu’il n’est jamais nécessaire d’ouvrir un port ou d’exposer une adresse IP publique. Le serveur local reste totalement invisible depuis Internet, ce qui élimine une grande partie des risques liés aux scans et aux attaques automatisées.

2. Fonctionne partout, même dans les environnements verrouillés

Le Tunnel est capable de traverser des environnements complexes comme les CG-NAT, les réseaux d’entreprise restreints, ou encore les connexions 4G/5G. Il suffit d’avoir un accès sortant — Cloudflare Tunnel s’occupe du reste.

3. Sécurité intégrée avec les mécanismes Zero Trust

Chaque requête entrant via un tunnel peut être soumise à une authentification Zero Trust native : SSO, double authentification, restrictions par géolocalisation ou par appareil, journalisation des accès… tout cela sans configuration locale. Le contrôle d’accès est géré depuis l’interface Cloudflare.

4. Déploiement rapide et sans friction

L’installation du binaire cloudflared suffit pour lancer un tunnel. Une fois authentifié, une commande permet de créer et d’exposer un service local en quelques secondes. Le certificat TLS est généré automatiquement, et le tunnel est opérationnel immédiatement.

5. Résilience et haute disponibilité natives

cloudflared établit plusieurs connexions simultanées vers l’infrastructure Cloudflare, garantissant une disponibilité continue même en cas de coupure partielle. En cas de redémarrage, le tunnel se reconnecte automatiquement.

6. Toutes les fonctions essentielles en un seul outil

Avec Cloudflare Tunnel, pas besoin de configurer un reverse proxy, un certificat SSL, une redirection HTTPS ou des règles de pare-feu complexes. Le tunnel encapsule toutes ces fonctions dans un outil unique, managé et robuste, adapté aussi bien aux tests locaux qu’à la production sécurisée.


Conclusion : Cloudflare Tunnel n’est pas un gadget. C’est une réponse directe, pensée pour les développeurs et techniciens qui veulent exposer un service local de manière sécurisée, rapide, sans compromis sur la sécurité ni la simplicité.

Le projet test : Symfony, Turbo et Cloudflare Tunnel

Comme souvent ici, on part sur du Symfony — du pur PHP bien structuré. Pour ce test, j’ai opté pour une stack moderne et rapide à mettre en place, avec une attention particulière à la compatibilité avec Cloudflare Tunnel.

Stack utilisée :

  • Symfony 7 avec AssetMapper pour la gestion des assets frontend
  • Pines UI : une librairie de composants UI basée sur Tailwind CSS et Alpine.js
  • Stimulus.js & Turbo : présents nativement dans Symfony 7, parfaits pour dynamiser sans surcharger
  • SQLite : une base SQL légère directement en racine du projet, zéro config, démarrage instantané

Le but est simple : avoir un POC fonctionnel avec quelques routes, un formulaire et une logique de soumission pour simuler une application web réaliste. L’objectif est de vérifier le comportement via Tunnel : HTTPS, certificats, redirection, protection Zero Trust… tout y passe.

Une fois le projet prêt, il suffit d’intégrer cloudflared, créer un tunnel, et exposer le tout au monde — de manière sécurisée, bien entendu.

Cloudflare Tunnel : vraiment gratuit ?

Oui, mais avec des limites bien définies

Cloudflare Tunnel est gratuit, mais dans un cadre bien précis. Il s’agit en réalité d’un freeware fonctionnel : parfait pour les développeurs, les tests locaux et les usages personnels — à condition de respecter les limites d’utilisation.


Cas n°1 — Usage personnel ou développement

✅ Inclus gratuitement📌 Détails
Création illimitée de tunnelsAucun quota imposé pour les projets locaux
Utilisation via cloudflaredInterface CLI ou Zero Trust dashboard
Certificats HTTPS automatiquesGérés par Cloudflare, sans intervention
Routage DNS via un sous-domaine CloudflareEx : monprojet.cloudflare.dev
Sécurité DDoS & WAF de baseActivée automatiquement sur tous les tunnels

🔧 Idéal pour : tests, démonstrations, side-projects, accès à son homelab.


Cas n°2 — Usage professionnel ou exposition publique

🟠 Fonctionnalité🔐 Condition
Authentification renforcée (Zero Trust policies avancées)Compte lié à un moyen de paiement
Accès par domaine personnaliséCarte bancaire requise (même sans facturation immédiate)
Journalisation enrichie & LogpushDisponible sur plan Pro ou supérieur
SLA, support prioritaireRéservé aux plans Business/Enterprise

📎 En clair : si vous exposez un service en production ou à des utilisateurs finaux, préparez un environnement facturable.


Et mon domaine personnalisé ?

Oui, vous pouvez connecter votre propre domaine (ex : app.monsite.com) à un tunnel Cloudflare.
Mais dès que vous sortez du domaine *.trycloudflare.comune vérification de compte avec carte bancaire devient nécessaire, même sans facturation immédiate.


Conclusion

  • 👨‍💻 Pour le dev et les projets persos → Cloudflare Tunnel est 100 % gratuit, simple et puissant.
  • 🏢 Pour un usage pro ou public → c’est toujours gratuit en apparence, mais certaines fonctions avancées exigent un compte vérifié avec CB.

Exposer Symfony avec Cloudflare Tunnel sans nom de domaine

Si vous ne souhaitez pas (encore) utiliser un nom de domaine personnalisé, Cloudflare propose une option ultra-rapide : le mode TryCloudflare. En une seule commande, vous obtenez une URL publique en HTTPS, automatiquement générée et protégée.


1. Lancer Symfony en local

Assurez-vous que votre serveur Symfony est bien lancé :

symfony server:start
# ou
php -S localhost:8000 -t public





2. Exposer en ligne avec TryCloudflare

cloudflared tunnel --url http://localhost:8000

💡 Cette commande :

  • établit un tunnel HTTPS sécurisé entre votre machine et Cloudflare,
  • génère une URL publique aléatoire du type https://randomname.trycloudflare.com,
  • fonctionne sans authentification, ni configuration DNS.

🔎 Exemple de sortie

Your quick Tunnel has been created!  
https://plausible-starfish.trycloudflare.com  

📎 Cette URL est accessible à tous, tant que le tunnel est actif dans le terminal.


🔐 Limitations de TryCloudflare

🚫 Limite🔍 Détail
Pas de contrôle sur l’URLGénérée aléatoirement à chaque exécution
Pas d’accès aux règles Zero TrustL’authentification avancée n’est pas disponible
Pas de logs ni d’alertesUsage purement temporaire
Durée de vie du tunnelLe tunnel se ferme à l’arrêt de cloudflared

🎯 Conclusion : si vous avez juste besoin de montrer rapidement un projet Symfony local à quelqu’un, TryCloudflare est la méthode la plus simple et rapide. Pour des usages réguliers ou pro, passer à un domaine personnalisé reste recommandé.


Cet article t’a plu ?

Bien sur comme on parle de Cloudflare on pourrait aller plus loin mais l’idée est de comprendre le besoin et la solution proposé par Cloudflare. Dans la suite on va s’attaquer a Cloudflare Access pour une sécurité accru !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *