Zurück zum Blog

So teilen Sie Ihre lokale WordPress- oder Drupal-Site mit Cloudflare Tunnel (Kostenlos)

2025-10-148 min read

Wenn Sie lokal mit DDEV entwickeln, müssen Sie Ihre Arbeit möglicherweise mit Kunden teilen, Webhooks von externen Diensten testen oder mit Remote-Teammitgliedern zusammenarbeiten. Cloudflare Tunnel bietet eine sichere, einfache Möglichkeit, Ihre lokalen Entwicklungssites für das Internet zugänglich zu machen, ohne Firewall-Ports öffnen oder sich mit komplexen Netzwerkkonfigurationen auseinandersetzen zu müssen.

Was ist Cloudflare Tunnel?

Cloudflare Tunnel (ehemals Argo Tunnel) ist Teil der Zero-Trust-Netzwerklösung von Cloudflare. Er erstellt eine sichere, nur ausgehende Verbindung von Ihrem lokalen Rechner zum Edge-Netzwerk von Cloudflare, das dann den öffentlichen Datenverkehr an Ihre lokalen Dienste weiterleitet. Das bedeutet:

  • Keine offenen eingehenden Ports – Ihre Firewall bleibt sicher
  • Keine öffentliche IP erforderlich – Funktioniert hinter NAT und Unternehmensfirewalls
  • Kostenlos für die Entwicklung – Die schnellen Tunnel von Cloudflare sind kostenlos
  • HTTPS standardmäßig – Automatische SSL/TLS-Verschlüsselung
  • Einfache Einrichtung – Nur ein Befehl zum Starten

Was ist DDEV?

DDEV ist eine Docker-basierte lokale Entwicklungsumgebung, die das Einrichten von PHP-Projekten (Drupal, WordPress, Laravel usw.) mit minimaler Konfiguration erleichtert. Es bietet:

  • Vorkonfigurierte Container für Web-, Datenbank- und andere Dienste
  • Unterstützung für mehrere PHP-Versionen
  • Integrierte SSL-Zertifikate für lokales HTTPS
  • Befehlszeilentools für gängige Entwicklungsaufgaben

Die Verwendung von DDEV mit Cloudflare Tunnel ermöglicht es Ihnen, Ihre Website lokal auszuführen und bei Bedarf öffentlich freizugeben.

Voraussetzungen

Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:

  • Einen Mac, Linux- oder Windows-Rechner mit installiertem Docker
  • Installiertes und konfiguriertes DDEV (offizielle Installationsanleitung oder lesen Sie meine Anleitung zur Einrichtung von DDEV für WordPress und Drupal)
  • Ein funktionierendes DDEV-Projekt (wir verwenden Beispielseiten wie myproject.ddev.site und client-site.ddev.site)
  • Grundlegende Kenntnisse der Befehlszeile
  • Kein Cloudflare-Konto erforderlich für schnelle Tunnel (die in dieser Anleitung behandelte Methode)

Hinweis: Wenn Sie persistente URLs mit benutzerdefinierten Domains wünschen (später behandelt), benötigen Sie ein kostenloses Cloudflare-Konto.

Schritt 1: Cloudflared installieren

Der cloudflared Daemon ist der Client, der die Tunnelverbindung herstellt. Die Installation variiert je nach Plattform:

macOS (Homebrew)

brew install cloudflared

Linux (Debian/Ubuntu)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

Linux (RHEL/CentOS)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -i cloudflared-linux-x86_64.rpm

Windows

Laden Sie das Installationsprogramm von der Cloudflare-Downloadseite herunter oder verwenden Sie Chocolatey:

choco install cloudflared

Überprüfen Sie die Installation:

cloudflared --version

Schritt 2: Ihre DDEV-Site starten

Stellen Sie sicher, dass Ihr DDEV-Projekt läuft. Navigieren Sie zu Ihrem Projektverzeichnis und starten Sie DDEV:

cd /pfad/zu/ihrem/projekt
ddev start

Ihre Website ist lokal unter etwas wie https://ihrprojekt.ddev.site verfügbar. Überprüfen Sie, ob es funktioniert, indem Sie es in Ihrem Browser öffnen.

Schritt 3: Einen Cloudflare Tunnel für Ihre DDEV-Site erstellen

Hier wird es interessant. Führen Sie einen Befehl aus und cloudflared erstellt automatisch einen Tunnel mit einer öffentlichen URL. Keine Konto-Einrichtung, keine Authentifizierung, keine Konfiguration erforderlich. Die grundlegende Syntax lautet:

cloudflared tunnel --url <lokale-url> --http-host-header <hostname>

Beispiel 1: Meine Projekt-Site

cloudflared tunnel --url https://myproject.ddev.site/ --http-host-header myproject.ddev.site

Beispiel 2: Kunden-Site

cloudflared tunnel --url https://client-site.ddev.site/ --http-host-header client-site.ddev.site

Nachdem Sie diesen Befehl ausgeführt haben, sehen Sie eine Ausgabe wie:

2025-10-14T10:30:15Z INF Vielen Dank, dass Sie Cloudflare Tunnel ausprobieren. Dies ohne Cloudflare-Konto ist ein schneller Weg, um zu experimentieren und es auszuprobieren. Seien Sie sich jedoch bewusst, dass diese Tunnel ohne Konto keine Verfügbarkeitsgarantie haben. Wenn Sie Tunnel in der Produktion verwenden möchten, sollten Sie einen zuvor erstellten benannten Tunnel verwenden, indem Sie folgen: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/
2025-10-14T10:30:15Z INF Fordere neuen schnellen Tunnel auf trycloudflare.com an...
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+
2025-10-14T10:30:16Z INF | Ihr schneller Tunnel wurde erstellt! Besuchen Sie ihn unter (es kann einige Zeit dauern, bis er erreichbar ist): |
2025-10-14T10:30:16Z INF | https://zufaellig-generierte-subdomain.trycloudflare.com |
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+

Kopieren Sie die generierte URL (z. B. https://zufaellig-generierte-subdomain.trycloudflare.com) und teilen Sie sie mit allen, die Zugriff auf Ihre lokale Website benötigen!

Die Befehlsparameter verstehen

Lassen Sie uns aufschlüsseln, was jeder Parameter bewirkt:

  • --url: Die lokale URL, unter der Ihre DDEV-Site läuft. Verwenden Sie HTTPS, wenn Ihre DDEV-Site SSL verwendet (was standardmäßig der Fall ist).
  • --http-host-header: Dies ist entscheidend für DDEV. Es weist cloudflared an, den korrekten Hostnamen im HTTP Host-Header weiterzuleiten. DDEV leitet Anfragen basierend auf diesem Header weiter. Ohne ihn erhalten Sie eine „404 Not Found“-Meldung oder sehen die falsche Website.

Warum ist --http-host-header notwendig?

Der DDEV-Router verwendet Virtual Hosting, was bedeutet, dass mehrere Websites auf derselben IP-Adresse und demselben Port laufen können. Der Router bestimmt, welche Website basierend auf dem Host-Header in der HTTP-Anfrage bedient wird.

Wenn der Datenverkehr über Cloudflare Tunnel kommt, wäre der Host-Header normalerweise die von Cloudflare generierte Domain (wie zufaellig-generierte-subdomain.trycloudflare.com). Durch die Angabe von --http-host-header myproject.ddev.site überschreiben wir dies und stellen sicher, dass DDEV den korrekten Hostnamen sieht.

Benannte Tunnel für persistente URLs verwenden

Die oben genannte Methode für schnelle Tunnel ist perfekt für die Ad-hoc-Freigabe, aber die URL ändert sich jedes Mal, wenn Sie den Befehl ausführen, und es gibt keine Garantie für die Verfügbarkeit. Wenn Sie eine persistente URL mit Ihrer eigenen benutzerdefinierten Domain (wie meinprojekt.example.com) benötigen, können Sie einen benannten Tunnel erstellen. Dies erfordert ein kostenloses Cloudflare-Konto.

1. Mit Cloudflare authentifizieren

cloudflared tunnel login

Dies öffnet einen Browser zur Authentifizierung bei Ihrem Cloudflare-Konto.

2. Einen benannten Tunnel erstellen

cloudflared tunnel create mein-ddev-tunnel

Dies generiert eine Tunnel-ID und eine Anmeldeinformationsdatei.

3. Eine Konfigurationsdatei erstellen

Erstellen Sie ~/.cloudflared/config.yml:

tunnel: <TUNNEL-ID>
credentials-file: /Users/ihrbenutzername/.cloudflared/<TUNNEL-ID>.json

ingress:
- hostname: mysite.example.com
service: https://myproject.ddev.site
originRequest:
httpHostHeader: myproject.ddev.site
noTLSVerify: true
- service: http_status:404

Hinweis: noTLSVerify: true ist erforderlich, da DDEV selbstsignierte Zertifikate verwendet.

4. Ihre Domain routen

cloudflared tunnel route dns mein-ddev-tunnel mysite.example.com

5. Den Tunnel ausführen

cloudflared tunnel run mein-ddev-tunnel

Ihre Website ist nun unter https://mysite.example.com mit einer persistenten URL erreichbar!

Häufige Anwendungsfälle

1. Kundendemos

Teilen Sie sich in Arbeit befindliche Websites mit Kunden, ohne sie auf Staging-Server hochladen zu müssen:

cloudflared tunnel --url https://kunden-demo.ddev.site/ --http-host-header kunden-demo.ddev.site

Senden Sie die generierte URL an Ihren Kunden für sofortiges Feedback.

2. Webhook-Tests

Testen Sie Webhooks von Diensten wie Stripe, GitHub oder Twilio, die eine öffentliche URL benötigen:

cloudflared tunnel --url https://webhooks.ddev.site/ --http-host-header webhooks.ddev.site

Konfigurieren Sie den Webhook im externen Dienst so, dass er auf Ihre Cloudflare-URL verweist.

3. Tests auf mobilen Geräten

Testen Sie Ihre responsiven Designs auf echten mobilen Geräten, ohne sich im selben Netzwerk befinden zu müssen:

cloudflared tunnel --url https://mobiltest.ddev.site/ --http-host-header mobiltest.ddev.site

Öffnen Sie die Cloudflare-URL auf Ihrem Telefon, um Tests auf echten Geräten durchzuführen.

4. Remote-Zusammenarbeit

Teilen Sie Ihre Entwicklungsumgebung mit entfernten Teammitgliedern:

cloudflared tunnel --url https://team-kollaboration.ddev.site/ --http-host-header team-kollaboration.ddev.site

Ihr Team kann auf die Website zugreifen, als würde es sie lokal ausführen.

Fehlerbehebung

404 oder falsche Website wird angezeigt

Stellen Sie sicher, dass Sie den Parameter --http-host-header mit dem korrekten DDEV-Hostnamen verwenden:

cloudflared tunnel --url https://meineseite.ddev.site/ --http-host-header meineseite.ddev.site

SSL-Zertifikatsfehler

Wenn Sie einen benannten Tunnel mit einer Konfigurationsdatei verwenden, fügen Sie noTLSVerify: true zum Abschnitt „Origin Request“ hinzu, da DDEV selbstsignierte Zertifikate verwendet.

Tunnel startet nicht

Überprüfen Sie, ob cloudflared bereits läuft:

ps aux | grep cloudflared

Beenden Sie bei Bedarf alle vorhandenen Prozesse:

pkill cloudflared

DDEV-Site lokal nicht erreichbar

Überprüfen Sie, ob Ihre DDEV-Site läuft:

ddev describe

Stellen Sie sicher, dass die verwendete URL mit der Ausgabe übereinstimmt.

Sicherheitsaspekte

Obwohl Cloudflare Tunnel von Natur aus sicher ist, sollten Sie diese Punkte beachten:

  • Produktionsdatenbanken nicht freigeben – Nur Entwicklungssites mit nicht-sensiblen Daten tunneln
  • Schnelle Tunnel sind temporär – URLs verfallen und sollten nicht für die Produktion verwendet werden
  • Authentifizierung verwenden – Bei sensiblen Projekten Cloudflare Access-Authentifizierung zu Ihren benannten Tunneln hinzufügen
  • Tunnelzugriff überwachen – Überprüfen Sie Cloudflare Analytics, um zu sehen, wer auf Ihre Tunnel zugreift
  • Tunnel bei Beendigung stoppen – Verwenden Sie Strg+C, um den Tunnel zu beenden, wenn Sie fertig sind

Alternative: Der integrierte Share-Befehl von DDEV

DDEV verfügt auch über einen integrierten Befehl ddev share, der ngrok verwendet. Cloudflare Tunnel bietet jedoch mehrere Vorteile:

  • Kostenlos ohne Ratenbegrenzungen (ngrok-Gratistarif hat Einschränkungen)
  • Bessere Leistung durch das globale Netzwerk von Cloudflare
  • Integration mit Cloudflare Zero Trust für erweiterte Funktionen
  • Persistente benannte Tunnel mit benutzerdefinierten Domains

Dennoch ist ddev share noch einfacher, wenn Sie nur etwas Schnelles benötigen und keine zusätzlichen Tools installieren möchten.

Vereinfachung des Prozesses mit ddev-share-cf

Um diesen Prozess noch einfacher zu gestalten, habe ich das DDEV-Addon ddev-share-cf erstellt. Dieses Addon integriert Cloudflare Tunnel direkt in DDEV und ermöglicht es Ihnen, Ihre lokalen Websites mit einem einfachen Befehl freizugeben, ohne cloudflared oder Konfigurationsdateien manuell verwalten zu müssen.

Installation

Installieren Sie das Addon mit einem einzigen Befehl:

ddev get davo20019/ddev-share-cf

Verwendung

Nach der Installation führen Sie einfach aus:

ddev share-cf

Das Addon übernimmt die gesamte Tunnelkonfiguration automatisch und macht es so einfach wie der integrierte Share-Befehl von DDEV, aber mit allen Vorteilen von Cloudflare Tunnel.

Zusätzliche Ressourcen

Bleiben Sie auf dem Laufenden

Erhalten Sie die neuesten Beiträge und Einblicke in Ihren Posteingang.

Unsubscribe anytime. No spam, ever.