Cloudflared und
Nginx-Proxy-Manager

Der Nginx-Proxy-Manager bietet eine benutzerfreundliche Oberfläche zur Verwaltung von Nginx-basierten Reverse-Proxies. In Verbindung mit Cloudflared, einem Dienstprogramm von Cloudflare, können zusätzliche Sicherheits- und Leistungsvorteile erzielt werden.


Cloudflared ermöglicht die Einrichtung von Cloudflare Tunnels, die eine sichere und verschlüsselte Verbindung zwischen deinem Webserver und den Servern von Cloudflare herstellen. Diese Tunnel leiten den Webverkehr über das weltweite Netzwerk von Cloudflare und bieten zusätzliche Sicherheits- und Leistungsvorteile.

Im Zusammenhang mit Dual-Stack Lite und wechselnden IP-Adressen spielen Cloudflare Tunnels eine entscheidende Rolle:


Dual-Stack Lite (DS-Lite): DS-Lite kann die Bereitstellung von Webdiensten erschweren, da IPv4-Adressen durch IPv6-Adressen getunnelt werden. Cloudflare Tunnels bieten eine Lösung, da Cloudflare sowohl IPv4- als auch IPv6-Konnektivität unterstützt. Dadurch können Webdienste problemlos über beide Protokolle bereitgestellt werden, ohne auf eine bestimmte IP-Version beschränkt zu sein.


Wechselnde IP-Adressen: Wenn dein Internetanbieter regelmäßig die IP-Adresse ändert, kann dies die Erreichbarkeit deiner Webdienste beeinträchtigen. Cloudflare Tunnels bieten eine stabile Verbindung zu deinem Webserver, unabhängig von den sich ändernden IP-Adressen des Internetanbieters. Durch die Verwendung eines Tunnels wird die IP-Adresse des Webservers für externe Benutzer unsichtbar gemacht, was bedeutet, dass deine Webdienste weiterhin erreichbar sind, auch wenn sich die IP-Adresse ändert.


Durch die Nutzung von Cloudflare Tunnels mit dem Nginx-Proxy-Manager und Cloudflared erhältst du eine zuverlässige und sichere Möglichkeit, deine Webdienste in Umgebungen mit komplexen Netzwerkkonfigurationen wie DS-Lite oder wechselnden IP-Adressen bereitzustellen.

Einrichtung und Verknüpfung

Um Cloudflared zu nutzen, benötigst du zunächst ein Konto bei Cloudflare. Sobald du dich bei Cloudflare registriert hast, kannst du die Cloudflare-Dienste, einschließlich Cloudflared, verwenden.

Hier sind die grundlegenden Schritte, um Cloudflared einzurichten:
Cloudflare-Konto: Melde dich bei Cloudflare an oder erstelle ein neues Konto, falls du noch keines hast.

Domain hinzufügen: Füge die Domain, für die du Cloudflare Tunnels verwenden möchtest, zu deinem Cloudflare-Konto hinzu. Dies geschieht in der Regel durch das Ändern der Nameserver deiner Domain, um Cloudflare als DNS-Provider zu verwenden.

Wenn du Cloudflared nutzen möchtest, um eine sichere Verbindung zwischen deinem Webserver und den Cloudflare-Servern herzustellen, folge diesen Schritten. Beachte jedoch, dass je nach deiner Umgebung und den spezifischen Anforderungen möglicherweise zusätzliche Schritte notwendig sind, um die Konfiguration abzuschließen.

Installation des Cloudflare Tunnels

Cloudflare Tunnel erstellen:

  • Gehe zum Cloudflare Zero Trust Dashboard: Networks -> Tunnels -> Create a Tunnel.
  • Gib dem Tunnel einen beliebigen Namen (der Name ist nicht entscheidend).
  • Im Abschnitt Install and run a connector findest du die Anweisungen zur Installation von Cloudflared. Befolge die dort bereitgestellten Schritte, um Cloudflared direkt auf deinem System zu installieren. Dies könnte Folgendes beinhalten:
    • Laden der Cloudflared-Binärdatei für dein Betriebssystem.
    • Einrichtung des Verzeichnisses und Hinzufügen der Datei.
    • Konfiguration des Daemons.


Cloudflared Tunnel starten:

  • Verwende das folgende Kommando, um den Tunnel mit dem Token zu starten:

cloudflared tunnel --no-autoupdate run <Tunnel-Name>

Nginx Proxy Manager und den Tunnel verknüpfen

Der NPM sollte bereits installiert und die Grundeinrichtung abgeschlossen sein.
Sollte dies nicht sein, so schließt dies bitte erst ab.
Daher springen wir direkt zu schritt 2


Interne Hostnamen in Docker:
Um Nginx Proxy Manager mit den Internen Diensten zu verknüpfen, müssen wir die Hostname (Containernamen) der Dienste nehmen, um Nginx Proxy Manager, die entsprechende Domain dorthin weiterleiten zu lassen.

Cloudflare Tunnel mit Nginx Proxy Manager verknüpfen:

Gehe in der Tunnel-Konfiguration zu Public Hostname -> Add a public hostname:

  • Subdomain: leer lassen.
  • Domain: deine Domain.
  • Pfad: leer lassen.
  • Service Type: HTTP.
  • URL: die Adresse des Nginx Proxy Managers (IP des Lokalen Hostsystem z.b. 192.168.2.222, gefolgt von :80 (das ist der HTTP-Port).

Wiederhole den Schritt für die Subdomain *.


Reihenfolge der Hostnames sicherstellen:
Stelle sicher, dass der öffentliche Hostname ohne * ganz oben steht.

Private Netzwerke hinzufügen:
In der Tunnel-Konfiguration füge unter Private Network die Docker-Netzwerkadresse, z.b. 172.16.0.0/16 hinzu, um den Zugriff auf das Interne Nginx-Proxy Netzwerk zu ermöglichen.

DNS-Einstellungen für Wildcard-Tunnel

Wildcard-DNS konfigurieren:

Gehe zu den Cloudflare DNS-Einträgen und füge einen Eintrag hinzu:

  • Typ: CNAME.
  • Name: *.
  • Ziel: <deine-tunnel-id>.cfargotunnel.com.
  • Proxied true.


CNAME für deine Domain hinzufügen:

Stelle sicher, dass ein CNAME für deine Domain vorhanden ist:

  • Typ: CNAME.
  • Name: <dein-domain-name>.
  • Ziel: identisch wie im vorherigen Schritt.
  • Proxied: true.

Wildcard-SSL-Zertifikat konfigurieren

Cloudflare API-Token erstellen:
Erstelle ein Cloudflare API-Token, indem du zu Profile -> API Tokens -> Create Token gehst und die Vorlage Edit zone DNS verwendest. Speichere das Token sicher.


SSL-Zertifikat im Nginx Proxy Manager einrichten:

  • Gehe zu SSL Certificates -> Add SSL Certificate.
  • Wähle Let's Encrypt und gib als Domain *.yourdomain.com ein.
  • Aktiviere Use a DNS Challenge und setze den DNS Provider auf Cloudflare.
  • Verwende das zuvor erstellte API-Token, um das Zertifikat zu erstellen.

Hosts hinzufügen

Hosts konfigurieren:

  • Gib die vollständigen Domain-Namen ein (z.B. hello.your-domain.name).
  • Scheme: HTTP.
  • Forward Hostname: Der Hostname des Containers (Containernamen).

Wildcard-SSL-Zertifikat aktivieren:
Wähle im SSL-Tab das Zertifikat aus, das mit * beginnt.


Automatische Erneuerung des SSL-Zertifikats

Der Nginx Proxy Manager erneuert das Zertifikat automatisch, sodass du dir keine Sorgen machen musst. Dein System wird über den Cloudflare Tunnel zugänglich sein, egal wo du es betreibst.