Netzwerk⭐ Featuredguide

Cloudflare Tunnel einrichten – Dienste ohne Port-Forwarding exponieren

Zero-Trust-Zugriff auf lokale Server ohne offene Firewall-Ports

S
SeeColors IT
11. Juni 20264 Min. Lesezeit646 Aufrufe

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/.json

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:

  1. Zero Trust Dashboard → Access → Applications → Add
  2. Application URL: z. B. proxmox.ihredomain.de
  3. Identity Provider: E-Mail OTP, Google, GitHub, etc.
  4. 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.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel