Cloudflare Tunnel auf Raspberry Pi

Wer einen internen Raspberry Pi im Heimnetz betreibt und diesen ohne viel Aufwand an eine externe Domain binden mag, kann das mit Cloudflare releativ einfach und kostenlos machen. Eine Anleitung dazu in diesem Beitrag.

Voraussetzungen

Cloudflare vorbereiten

Domain hinzufügen

  1. Gehe zu: https://dash.cloudflare.com
  2. Klicke auf “Add a Site”
  3. Gib deine Domain ein (z. B. naturwender.de)
  4. Wähle Free Plan
  5. Cloudflare scannt automatisch bestehende DNS-Einträge → überprüfe sie
  6. Klicke Continue

Nameserver beim Registrar ändern

  1. Logge dich bei deinem Domainprovider ein (z. B. Strato, IONOS, Namecheap)
  2. Finde die Nameserver Einstellungen
  3. Trage die beiden Cloudflare-Nameserver ein, z. B.:
alice.ns.cloudflare.com
bruce.ns.cloudflare.com
  1. Speichern → DNS-Propagation dauert 5–60 Minuten (bis zu 24h)
  2. Im Cloudflare-Dashboard sollte nach einiger Zeit Status: Active erscheinen

DNS-Einträge prüfen / anpassen


Cloudflare Tunnel Subdomain anlegen

4a. Automatisch via CLI

Hinweis: Das geht erst, nachdem der Cloudflare-Dienst auf dem Raspberry eingerichtet ist.

cloudflared tunnel route dns mein-tunnel app.naturwender.de

4b. Manuell im Dashboard

  1. DNS → Add record
  2. Typ: CNAME
  3. Name: app
  4. Target: <TUNNEL-ID>.cfargotunnel.com
  5. Proxy: ON (orange cloud)
  6. Speichern

Cloudflare stellt dann automatisch HTTPS bereit.


Optional: Subdomain prüfen


Tipps


Raspberry Pi vorbereiten

cloudflared installieren

64-bit OS:

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

Check:

cloudflared -v

Bedeutung: Installiert das Cloudflare Tunnel Programm auf dem Pi.


Mit Cloudflare verbinden

cloudflared login

Bedeutung: Authentifiziert den Pi bei Cloudflare.


Tunnel erstellen

cloudflared tunnel create mein-tunnel

Bedeutung: Erzeugt den Tunnel für den sicheren Zugriff.


Tunnel konfigurieren

vi ~/.cloudflared/config.yml

Beispiel:

tunnel: mein-tunnel
credentials-file: /home/pi/.cloudflared/<TUNNEL-ID>.json

ingress:
  - hostname: app.naturwender.de
    service: http://localhost:8080
  - service: http_status:404

Bedeutung: Leitet die Subdomain auf den lokalen Service.


DNS für Tunnel anlegen

Automatisch via CLI:

cloudflared tunnel route dns mein-tunnel app.naturwender.de

Alternativ manuell im Cloudflare Dashboard:

Bedeutung: Macht die Subdomain öffentlich erreichbar.


Tunnel testen

cloudflared tunnel run mein-tunnel

Bedeutung: Startet den Tunnel im Vordergrund, prüft Verbindung.


Tunnel als Dienst aktivieren (Autostart)

sudo cloudflared service install
sudo systemctl enable --now cloudflared
sudo systemctl status cloudflared

Bedeutung: Tunnel startet automatisch beim Booten.


Hinweis: Wenn die Subdomain bereits existiert (A/CNAME-Record), entweder einen neuen Namen verwenden (app.naturwender.de) oder den alten Record löschen, bevor cloudflared tunnel route dns ausgeführt wird.

Zurück
2025-12-07 08:07