Willkommen! In diesem Artikel tauchen wir tief in die Welt des Cloudflare Tunnel ein und zeigen dir, wie du ihn nutzen kannst, um einen sicheren und einfachen Zugriff auf deine Server und Anwendungen zu ermöglichen. Schluss mit komplizierten Portweiterleitungen und riskanten offenen Ports – der Cloudflare Tunnel bietet eine elegante und sichere Lösung. Wir werden uns nicht nur mit der Einrichtung befassen, sondern auch erklären, wie du Routes hinzufügst, um deinen Traffic gezielt zu steuern.
Was ist der Cloudflare Tunnel?
Der Cloudflare Tunnel ist eine Möglichkeit, deinen Webserver oder andere Anwendungen sicher mit dem Cloudflare-Netzwerk zu verbinden, ohne öffentliche eingehende Ports auf deinem Server öffnen zu müssen. Stell dir vor, du hast einen Webserver zu Hause oder in einem kleinen Büro. Normalerweise müsstest du Port 80 (HTTP) und Port 443 (HTTPS) in deinem Router öffnen, um ihn über das Internet erreichbar zu machen. Das birgt Sicherheitsrisiken, da diese Ports anfällig für Angriffe sind. Der Cloudflare Tunnel eliminiert diese Notwendigkeit.
Stattdessen erstellt der Cloudflare Tunnel eine ausgehende Verbindung von deinem Server zum Cloudflare-Netzwerk. Diese Verbindung ist verschlüsselt und sicher. Cloudflare fungiert dann als Vermittler und leitet den Traffic von Benutzern, die deine Website besuchen, über sein Netzwerk zu deinem Server, ohne dass dieser direkt dem Internet ausgesetzt ist. Das bedeutet:
- Erhöhte Sicherheit: Keine offenen Ports bedeuten weniger Angriffsfläche.
- Vereinfachte Einrichtung: Keine komplexen Portweiterleitungen mehr.
- Bessere Performance: Profitiere von der globalen Infrastruktur von Cloudflare.
Voraussetzungen
Bevor wir loslegen, stelle sicher, dass du folgende Voraussetzungen erfüllst:
- Ein Cloudflare-Konto (kostenlos oder kostenpflichtig).
- Eine Domain, die bei Cloudflare registriert ist oder über Cloudflare verwaltet wird.
- Einen Server oder eine Anwendung, die du über den Tunnel erreichbar machen möchtest.
- Zugriff auf die Kommandozeile deines Servers.
Schritt-für-Schritt-Anleitung zur Einrichtung des Cloudflare Tunnel
- Installation von cloudflared:
cloudflared
ist ein leichtgewichtiger Daemon, der die Verbindung zwischen deinem Server und dem Cloudflare-Netzwerk herstellt. Lade die passende Version für dein Betriebssystem von der Cloudflare-Website herunter und installiere sie. Die Installationsanweisungen variieren je nach Betriebssystem. Hier ein Beispiel für Linux (Debian/Ubuntu):wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb
Stelle sicher, dass
cloudflared
nach der Installation im Pfad ist. - Authentifizierung bei Cloudflare:
Führe den folgenden Befehl aus, um dich bei deinem Cloudflare-Konto zu authentifizieren:
sudo cloudflared service install
Dies öffnet deinen Webbrowser und leitet dich zur Cloudflare-Website weiter, wo du dich anmelden und die Autorisierung erteilen kannst. Nach der Autorisierung erhältst du eine
cert.pem
Datei. Diese Datei ist wichtig und sollte sicher aufbewahrt werden. - Erstellung eines Tunnels:
Erstelle einen neuen Tunnel mit dem folgenden Befehl:
sudo cloudflared tunnel create mein-tunnel
Ersetze
mein-tunnel
durch einen Namen deiner Wahl für den Tunnel. Der Befehl gibt eine Tunnel-ID (UUID) aus, die du für die nächsten Schritte benötigst. Notiere dir diese ID. - Konfigurationsdatei erstellen:
Erstelle eine Konfigurationsdatei (
config.yml
) im/etc/cloudflared/
Verzeichnis. Diese Datei definiert, wie der Tunnel funktioniert und welche Dienste er exposed. Hier ein Beispiel:tunnel:
credentials-file: /etc/cloudflared/ .json ingress: - hostname: meine-domain.com service: http://localhost:80 - hostname: meine-domain.com/blog service: http://localhost:8080 - service: http_status:404 logfile: /var/log/cloudflared.log loglevel: info Ersetze
durch die Tunnel-ID, die du im vorherigen Schritt erhalten hast. Passe diehostname
undservice
Werte an deine Bedürfnisse an.meine-domain.com
sollte durch deine Domain ersetzt werden, die bei Cloudflare verwaltet wird.http://localhost:80
undhttp://localhost:8080
sind Beispiele für Dienste, die auf deinem Server laufen.Die
ingress
Sektion definiert die Routen. Jede Route ordnet einen Hostnamen oder einen Pfad einem bestimmten Dienst auf deinem Server zu. Das letzte Element in deringress
Sektion (service: http_status:404
) ist ein Catch-All, der einen 404 Fehler zurückgibt, wenn keine andere Route zutrifft.Die `credentials-file` wird automatisch erstellt, wenn der Tunnel gestartet wird.
- Tunnel starten:
Starte den Tunnel mit dem folgenden Befehl:
sudo cloudflared tunnel run
Oder noch besser: Starte den Cloudflared-Dienst, der dann automatisch im Hintergrund läuft und den Tunnel am Leben hält:
sudo systemctl start cloudflared
Überprüfe den Status des Dienstes mit:
sudo systemctl status cloudflared
- DNS-Einträge hinzufügen:
Gehe zu deinem Cloudflare-Dashboard und wähle deine Domain aus. Füge dann einen CNAME-Eintrag hinzu, der auf die Tunnel-ID verweist. Der Name des CNAME-Eintrags sollte mit dem
hostname
in deinerconfig.yml
Datei übereinstimmen.Beispiel:
Typ: CNAME
Name: meine-domain.com
Ziel:.cfargotunnel.com
TTL: AutoAktiviere den Proxy-Status (orange Wolke), damit der Traffic über Cloudflare geleitet wird.
Routes hinzufügen und konfigurieren
Das Hinzufügen von Routes ist entscheidend, um den Traffic gezielt zu lenken. Die ingress
Sektion in der config.yml
Datei ist der Ort, an dem du deine Routen definierst. Wie bereits im Beispiel gezeigt, kannst du Hostnamen und Pfade verwenden, um den Traffic zu verschiedenen Diensten zu leiten.
Beispiele für Routen:
- Weiterleitung des gesamten Traffics einer Domain an einen Webserver:
ingress: - hostname: meine-domain.com service: http://localhost:80
- Weiterleitung des Traffics eines bestimmten Pfades an einen anderen Dienst:
ingress: - hostname: meine-domain.com/blog service: http://localhost:8080
- Weiterleitung des Traffics einer Subdomain an einen anderen Server:
ingress: - hostname: blog.meine-domain.com service: http://192.168.1.100:80
- Verwendung von Wildcard-Subdomains:
ingress: - hostname: "*.meine-domain.com" service: http://localhost:8080
Achtung: Wildcard-Subdomains benötigen ein Enterprise Cloudflare Abo.
Wichtige Hinweise zu Routes:
- Die Reihenfolge der Routen ist wichtig. Cloudflare evaluiert die Routen von oben nach unten und verwendet die erste passende Route.
- Die
hostname
kann ein vollständiger Domainname, eine Subdomain oder ein Pfad sein. - Die
service
kann eine URL zu einem lokalen Dienst (z.B.http://localhost:80
), einer anderen Domain (z.B.https://example.com
) oder einem Fehlercode (z.B.http_status:404
) sein.
Fehlerbehebung
Solltest du Probleme mit deinem Cloudflare Tunnel haben, hier einige Tipps zur Fehlerbehebung:
- Überprüfe die Cloudflare Tunnel Logs: Die Logdatei (definiert in der
config.yml
) enthält wichtige Informationen über den Tunnelstatus und eventuelle Fehler. - Überprüfe die DNS-Einträge: Stelle sicher, dass die DNS-Einträge korrekt konfiguriert sind und auf die Tunnel-ID verweisen.
- Überprüfe die Firewall: Stelle sicher, dass deine Firewall ausgehende Verbindungen zu Cloudflare zulässt.
- Überprüfe die Konfigurationsdatei: Stelle sicher, dass die
config.yml
Datei korrekt formatiert ist und die richtigen Routen enthält. - Starte den cloudflared-Dienst neu: Manchmal hilft ein einfacher Neustart des Dienstes, um Probleme zu beheben.
- Teste die Konnektivität: Verwende Tools wie
curl
oderping
, um die Konnektivität zu deinem Server zu testen.
Fazit
Der Cloudflare Tunnel ist eine leistungsstarke und sichere Möglichkeit, deine Server und Anwendungen über das Internet erreichbar zu machen, ohne das Risiko offener Ports einzugehen. Mit der Möglichkeit, Routes hinzuzufügen und zu konfigurieren, kannst du den Traffic gezielt steuern und eine flexible und skalierbare Infrastruktur aufbauen. Probiere es aus und profitiere von den Vorteilen des Cloudflare-Netzwerks!