--- title: Cloudflared created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, tunnel, cloudflare, zero-trust, go, docker, auto-hebergement] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/cloudflare/cloudflared] --- # 🌐 Cloudflared > **Client officiel Cloudflare Tunnel** : crée un tunnel sortant chiffré depuis votre serveur vers le réseau Cloudflare, vous permettant d'exposer des services **sans ouvrir de port** et **sans IP publique**. C'est la brique de base de Cloudflare Zero Trust. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [developers.cloudflare.com/cloudflare-one](https://developers.cloudflare.com/cloudflare-one/) | | **GitHub** | [cloudflare/cloudflared](https://github.com/cloudflare/cloudflared) | | **License** | Apache-2.0 | | **Langage** | Go | | **Étoiles GitHub** | 14.4k ⭐ | | **Dernière MAJ** | 2026-06-01 | | **Catégorie** | [[cat-reverse-proxy|Reverse Proxy]], [[cat-tunnel|Tunnel]] | ## 📝 Description **Cloudflared** est le **daemon Cloudflare Tunnel** : un binaire léger qui établit une connexion sortante chiffrée (QUIC/HTTP2) vers le réseau Cloudflare, puis relaie le trafic entrant depuis Internet vers vos services locaux. **Vous n'ouvrez aucun port** sur votre box/firewall. **Caractéristiques** : - ✅ **Pas d'IP publique requise** : fonctionne derrière n'importe quel NAT/CGNAT - ✅ **Pas de ports ouverts** : connexion sortante uniquement (pas d'attaque entrante possible) - ✅ **HTTPS automatique** via les certificats edge de Cloudflare - ✅ **Protection DDoS** incluse (mitigation Cloudflare, gratuite en mode basic) - ✅ **Zero Trust Access** : authentification via Cloudflare Access (OAuth, OTP, mTLS, etc.) — **ajoute de l'auth devant n'importe quelle app** - ✅ **HTTP, HTTPS, WebSocket, TCP, SSH, RDP** : tunnel L4 et L7 - ✅ **Multi-plateforme** : Linux, macOS, Windows, ARM, Docker, packages DEB/RPM, Homebrew - ✅ **Apache-2.0** : open source (le daemon), pas le service Cloudflare - ✅ **TryCloudflare** : tester sans même avoir un domaine **Positionnement** : c'est **l'alternative moderne à un reverse proxy classique** (Nginx, Caddy, Traefik) pour les cas où : - Vous n'avez pas d'IP publique fixe - Vous êtes derrière un NAT/CGNAT (FAI type SFR Free Orange en France) - Vous voulez déléguer la gestion TLS/DDoS à Cloudflare - Vous voulez un tunnel simple sans exposition réseau **Différence avec les reverse proxies classiques** : - **Caddy / Traefik / Nginx** : vous publiez un port (80/443), le client vous contacte directement - **Cloudflared** : le client ne peut pas vous contacter directement, il doit passer par Cloudflare. **Vous n'exposez rien** sur Internet. **Public cible** : auto-hébergeurs derrière CGNAT/NAT, ou ceux qui veulent la protection DDoS/HTTPS de Cloudflare "gratos". > ⚠️ **Point important** : Cloudflared vous rend **dépendant de Cloudflare** (lock-in). Si Cloudflare a une panne ou vous bannit, vos services sont inaccessibles. À mettre en balance avec les avantages. ## 🚀 Installation ### Prérequis - Un **compte Cloudflare** (gratuit) - Un **domaine** géré par Cloudflare (DNS moved to their nameservers) - Le binaire `cloudflared` installé ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml version: '3.8' services: cloudflared: image: cloudflare/cloudflared:2026.5.2 container_name: cloudflared restart: unless-stopped command: tunnel run environment: - TUNNEL_TOKEN=eyJhIjoiYWJj... # Token de votre tunnel networks: - proxy # Optionnel : pour des cas avancés # volumes: # - ./config:/home/nonroot/.cloudflared networks: proxy: name: proxy ``` ### Configuration du tunnel (UI Cloudflare, plus simple) 1. **Dashboard Cloudflare** → Zero Trust → Networks → Tunnels 2. **Create a tunnel** → type `Cloudflared` 3. **Copier le token** généré → le mettre dans `TUNNEL_TOKEN` 4. **Ajouter une "Public Hostname"** : - Subdomain: `app` - Domain: `example.com` - Service: `http://app:8080` (ou `http://192.168.1.10:8080`) ### Configuration manuelle (config.yaml) ```yaml # /home/nonroot/.cloudflared/config.yml tunnel: abc123def456 credentials-file: /home/nonroot/.cloudflared/abc123def456.json ingress: - hostname: app.example.com service: http://app:8080 - hostname: api.example.com service: http://api:3000 - service: http_status:404 # Catch-all par défaut ``` ```bash # Lier le tunnel (une seule fois) cloudflared tunnel login cloudflared tunnel create mytunnel cloudflared tunnel route dns mytunnel app.example.com cloudflared tunnel run mytunnel ``` ### Variante : SSH over tunnel (L4) ```bash # Exposer SSH sans port ouvert cloudflared access ssh --hostname ssh.example.com --listener localhost:2222 ``` ## ⚙️ Configuration Initiale 1. **Créer un compte Cloudflare** (gratuit) : [dash.cloudflare.com/sign-up](https://dash.cloudflare.com/sign-up) 2. **Ajouter votre domaine** (gratuit) : changez les nameservers chez votre registrar 3. **Installer cloudflared** : binaire, package, ou Docker 4. **Créer un tunnel** dans Zero Trust → Networks → Tunnels 5. **Mapper les hostnames** vers vos services locaux 6. **(Optionnel) Activer Cloudflare Access** : ajouter une auth (email OTP, OAuth, mTLS) devant vos services 7. **Tester** : `https://app.example.com` doit fonctionner sans port ouvert > 💡 **TryCloudflare** : pour tester sans configurer votre domaine, `cloudflared tunnel --url http://localhost:8080` génère une URL temporaire `*.trycloudflare.com`. ## 🔄 Alternatives ### Open Source - [[app-pangolin]] — Tunneling + reverse proxy + auth (alternative "indie" sans dépendance Cloudflare) - **BoringTunnel / FRP (Fast Reverse Proxy)** — tunnels TCP/HTTP self-hosted (sans CDN) - **WireGuard + VPS** — tunnel VPN pur, plus bas niveau - **Tailscale Funnel** — expose des services via votre mesh Tailscale - **ngrok** (version open source partielle) — tunnels HTTP sortants - **ZeroTier** — réseau overlay type VPN ### Propriétaires - **ngrok** (complet, le plus connu) — payant au-delà de la version gratuite - **Cloudflare Tunnel** lui-même est le service propriétaire, cloudflared est juste le client - **Tailscale Funnel** (version commerciale) - **Loophole / localhost.run** — tunnels éphémères ## 🔐 Sécurité - **Pas de port exposé** : attaque DDoS/scan impossible directement - **QUIC + HTTP/2** chiffrés bout-en-bout - **mTLS** entre cloudflared et l'edge Cloudflare - **Cloudflare Access** : auth OIDC/SAML/mTLS en amont de vos apps - **IP whitelisting** : restreindre l'accès à un pays, une équipe, etc. - **Audit logs** : toutes les requêtes loggées dans le dashboard Cloudflare > ⚠️ **Lock-in Cloudflare** : si Cloudflare bannit votre compte ou a une panne, vous perdez l'accès. Gardez un plan B (reverse proxy classique ou accès direct) en cas d'urgence. ## 📚 Ressources - [Documentation officielle Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/) - [TryCloudflare (test sans domaine)](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/) - [Cloudflare Zero Trust](https://one.dash.cloudflare.com/) - [Release notes](https://github.com/cloudflare/cloudflared/releases) ## Pages Liées - [[cat-reverse-proxy]] — Catégorie Reverse Proxy - [[app-pangolin]] — Alternative self-hosted (pas de lock-in Cloudflare) - [[app-caddy]] — Reverse proxy classique (alternative sans tunnel) - [[cat-security|Sécurité]] — Catégorie Sécurité - [[comparatif-reverse-proxy]] — Comparaison détaillée