7.6 KiB
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 |
| GitHub | cloudflare/cloudflared |
| License | Apache-2.0 |
| Langage | Go |
| Étoiles GitHub | 14.4k ⭐ |
| Dernière MAJ | 2026-06-01 |
| Catégorie | [[cat-reverse-proxy |
📝 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
cloudflaredinstallé
Option 1 : Docker Compose (recommandé)
# 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)
- Dashboard Cloudflare → Zero Trust → Networks → Tunnels
- Create a tunnel → type
Cloudflared - Copier le token généré → le mettre dans
TUNNEL_TOKEN - Ajouter une "Public Hostname" :
- Subdomain:
app - Domain:
example.com - Service:
http://app:8080(ouhttp://192.168.1.10:8080)
- Subdomain:
Configuration manuelle (config.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
# 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)
# Exposer SSH sans port ouvert
cloudflared access ssh --hostname ssh.example.com --listener localhost:2222
⚙️ Configuration Initiale
- Créer un compte Cloudflare (gratuit) : dash.cloudflare.com/sign-up
- Ajouter votre domaine (gratuit) : changez les nameservers chez votre registrar
- Installer cloudflared : binaire, package, ou Docker
- Créer un tunnel dans Zero Trust → Networks → Tunnels
- Mapper les hostnames vers vos services locaux
- (Optionnel) Activer Cloudflare Access : ajouter une auth (email OTP, OAuth, mTLS) devant vos services
- Tester :
https://app.example.comdoit fonctionner sans port ouvert
💡 TryCloudflare : pour tester sans configurer votre domaine,
cloudflared tunnel --url http://localhost:8080gé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
- TryCloudflare (test sans domaine)
- Cloudflare Zero Trust
- Release notes
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 — Catégorie Sécurité
- comparatif-reverse-proxy — Comparaison détaillée