Was ist Cloudflare Tunnel?
Cloudflare Tunnel (cloudflared) erstellt eine verschlüsselte Verbindung von Ihrem Server zu den Cloudflare-Edge-Servern. Traffic läuft von außen über Cloudflare zu Ihrem Dienst – umgekehrt zum klassischen Weg.
Der entscheidende Vorteil: Ihr Server initiiert die Verbindung zu Cloudflare. Es werden keine eingehenden Ports geöffnet. Angreifer können Ihren Server nicht direkt scannen oder angreifen.
Typische Anwendungsfälle
- Nextcloud/NAS aus dem Internet erreichbar machen
- Heimnetz-Dienste (Proxmox, Home Assistant, Grafana) sicher exponieren
- Remote Desktop / SSH ohne VPN zugänglich machen
- Webserver ohne statische IP oder öffentlichem Server
- Webhooks empfangen (Entwicklung, GitHub, etc.)
Cloudflare Tunnel vs. VPN vs. Port-Forwarding
| Methode | Offene Ports | Komplexität | Sicherheit |
|---|---|---|---|
| Port-Forwarding | Ja | Gering | Niedrig |
| VPN (WireGuard) | 1 Port (UDP) | Mittel | Hoch |
| Cloudflare Tunnel | Keine | Gering | Sehr hoch |
Voraussetzungen
- Cloudflare-Konto (kostenlos reicht)
- Eigene Domain bei Cloudflare verwaltetet (DNS auf Cloudflare)
- Server/PC mit Linux, Windows oder als Docker-Container
cloudflared installieren
Linux (Ubuntu/Debian)
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb dpkg -i cloudflared-linux-amd64.deb
Version prüfen:cloudflared --version
Docker
docker pull cloudflare/cloudflared:latest
Bei Cloudflare anmelden und Tunnel erstellen
Schritt 1: Login im Browser
cloudflared tunnel login
Browser öffnet sich → Mit Cloudflare-Account einloggen → Domain auswählen → Autorisieren.
Ergebnis: Zertifikatsdatei wird unter ~/.cloudflared/cert.pem gespeichert.
Schritt 2: Tunnel erstellen
cloudflared tunnel create mein-tunnel
Ausgabe zeigt die Tunnel-ID (UUID) – diese notieren!
Tunnel-Liste:cloudflared tunnel list
Schritt 3: Tunnel konfigurieren
Konfigurationsdatei erstellen:
nano ~/.cloudflared/config.yml
`tunnel:
credentials-file: /root/.cloudflared/
ingress:
- hostname: nextcloud.ihredomain.de
service: http://localhost:8080 - hostname: proxmox.ihredomain.de
service: https://localhost:8006
originRequest:
noTLSVerify: true - hostname: ssh.ihredomain.de
service: ssh://localhost:22 - service: http_status:404`
Mehrere Dienste können in einer Tunnel-Konfiguration definiert werden!
Schritt 4: DNS-Einträge in Cloudflare erstellen
cloudflared tunnel route dns mein-tunnel nextcloud.ihredomain.de cloudflared tunnel route dns mein-tunnel proxmox.ihredomain.de cloudflared tunnel route dns mein-tunnel ssh.ihredomain.de
Cloudflare erstellt automatisch CNAME-Einträge, die auf die Tunnel-Infrastruktur zeigen.
Schritt 5: Tunnel starten
cloudflared tunnel run mein-tunnel
Für Autostart als Systemdienst:
cloudflared service install systemctl enable --now cloudflared
Tunnel als Docker-Container
Docker Compose Konfiguration:
version: '3' services: cloudflared: image: cloudflare/cloudflared:latest restart: unless-stopped command: tunnel --no-autoupdate run environment: - TUNNEL_TOKEN=<IHR_TUNNEL_TOKEN> network_mode: host
Das Tunnel-Token erhalten Sie im Cloudflare-Dashboard unter Zero Trust → Networks → Tunnels.
Cloudflare Access (optionale Authentifizierung)
Für zusätzlichen Schutz aktivieren Sie Cloudflare Access – Benutzer müssen sich vor dem Zugriff auf geschützte Anwendungen authentifizieren:
- Zero Trust Dashboard → Access → Applications → Add
- Application URL: z. B.
proxmox.ihredomain.de - Identity Provider: E-Mail OTP, Google, GitHub, etc.
- Policy: nur bestimmte E-Mails/Gruppen erlauben
Perfekte Kombination: Cloudflare Tunnel für Transport-Sicherheit + Cloudflare Access für Authentifizierung.
SSH über Cloudflare Tunnel
Für SSH-Zugang ohne offenen SSH-Port:
Auf dem Client:nano ~/.ssh/config
Host ssh.ihredomain.de ProxyCommand cloudflared access ssh --hostname %h
Dann einfach verbinden:ssh [email protected]
Tunnel überwachen
Status anzeigen:cloudflared tunnel info mein-tunnel
Logs:journalctl -u cloudflared -f
Im Cloudflare-Dashboard unter Zero Trust → Networks → Tunnels: Verbindungen und Traffic in Echtzeit.
Häufige Probleme
Tunnel startet nicht (credentials file not found):cloudflared tunnel login erneut ausführen, Zertifikat unter ~/.cloudflared/ prüfen.
502 Bad Gateway:
Lokaler Dienst läuft nicht oder falscher Port in config.yml.
SSL-Fehler bei HTTPS-Diensten (Proxmox, etc.):noTLSVerify: true in der originRequest-Sektion setzen.
FAQ
Kostet Cloudflare Tunnel etwas?
Der Basis-Tunnel (ohne Cloudflare Access) ist vollständig kostenlos. Cloudflare Access Free erlaubt bis zu 50 Benutzer kostenlos.
Wie schnell ist Cloudflare Tunnel?
Abhängig von der Cloudflare-Infrastruktur und Ihrem Upstream. Für Dokumenten-Sharing, Web-Apps und SSH absolut ausreichend. Für große Dateiübertragungen ist WireGuard schneller.
Kann ich Cloudflare Tunnel mit einem DynDNS-Anbieter nutzen?
Nicht nötig – Cloudflare Tunnel funktioniert ohne statische IP oder DynDNS, da Ihre Domain direkt auf die Cloudflare-Infrastruktur zeigt.
Fazit
Cloudflare Tunnel ist die eleganteste Lösung um lokale Dienste sicher ins Internet zu exponieren. Besonders für Homelab-Nutzer und KMU ohne dediziertes Rechenzentrum ist es eine Pflicht-Lektüre.
Als Netzwerk- und Security-Spezialisten in Heidelberg konfigurieren wir Cloudflare-Lösungen für Unternehmen in Mannheim, Ludwigshafen und der Rhein-Neckar-Region. Jetzt Cloudflare-Beratung anfragen.