Oder: Wie ich lernte, das Port-Forwarding zu vergessen und die Cloud zu lieben đ
Einleitung
Liebe Funkamateure! Seid ihr es leid, mit den Port-Forwarding-Einstellungen eures Routers zu kĂ€mpfen? Genervt von DynDNS-Diensten, die im ungĂŒnstigsten Moment ihren Geist aufgeben? Wollt ihr euer groĂartiges OpenWebRX+ Setup mit der Welt teilen, ohne euer Heimnetzwerk den dunklen Ecken des Internets auszusetzen?
Dann schnappt euch euer LieblingsgetrĂ€nk (bei mir ist’s die Braunsche Röhre, 73!), und lasst mich euch zeigen, wie ich einen Cloudflare Tunnel auf meinem Raspberry Pi eingerichtet habe. Es ist kostenlos, sicher und das Beste daran â kein Port-Forwarding erforderlich!
Was ihr braucht:
- Einen Raspberry Pi mit OpenWebRX+ (oder einem anderen Webdienst)
- Einen Domain-Namen, der bei Cloudflare registriert ist (kostenloses Konto funktioniert perfekt)
- SSH-Zugang zu eurem Pi
- Etwa 20 Minuten Zeit
- Geduld (die gleiche Art, die man beim Warten auf bessere Ausbreitungsbedingungen braucht)
Warum Cloudflare Tunnels?
Stellt euch einen Cloudflare Tunnel als sichere, verschlĂŒsselte „Röhre“ zwischen eurem Pi und Cloudflares Servern vor. Der gesamte Datenverkehr flieĂt durch diese Röhre, was bedeutet:
- â  Kein Port-Forwarding – Euer Router bleibt dicht verschlossen
- â Â Kostenloses SSL/HTTPSÂ – Automatische VerschlĂŒsselung fĂŒr eure Seite
- â  DDoS-Schutz – Cloudflare schĂŒtzt euch vor Angriffen
- â  Statischer Zugang – Keine DynDNS-Kopfschmerzen mehr
- â  Mehrere Dienste – Verschiedene Services auf unterschiedlichen Subdomains
Es ist wie eine permanente, sichere QSO-Verbindung zu eurer Heimstation, nur im Internet!
Schritt 1: Installation von cloudflared
Zuerst verbinden wir uns per SSH mit dem Raspberry Pi. Sobald ihr eingeloggt seid, mĂŒssen wir herausfinden, welche Architektur euer Pi verwendet.
Systemarchitektur prĂŒfen:
bash
uname -m
Die meisten modernen Pis zeigen aarch64 (64-bit) oder armv7l/armhf (32-bit) an.
FĂŒr 32-bit ARM Systeme (armhf):
Das ist, was ich verwenden musste. Es erfordert den direkten Download der Binary, da die Paket-Repositories… sagen wir mal „temperamentvoll“ sein können.
bash
# ARM Binary herunterladen
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm
# AusfĂŒhrbar machen
chmod +x cloudflared-linux-arm
# In den Systempfad verschieben
sudo mv cloudflared-linux-arm /usr/local/bin/cloudflared
# ĂberprĂŒfen, ob es funktioniert
cloudflared --version
FĂŒr 64-bit ARM Systeme (aarch64):
bash
# ARM64 Binary herunterladen
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
# AusfĂŒhrbar machen
chmod +x cloudflared-linux-arm64
# In den Systempfad verschieben
sudo mv cloudflared-linux-arm64 /usr/local/bin/cloudflared
# ĂberprĂŒfen, ob es funktioniert
cloudflared --version
Ihr solltet etwas wie cloudflared version 2025.11.1 sehen â die genaue Version ist egal, solange es lĂ€uft!
Schritt 2: Authentifizierung bei Cloudflare
Jetzt kommt der spannende Teil â das Login bei Cloudflare. FĂŒhrt diesen Befehl aus:
bash
cloudflared tunnel login
Im Terminal erscheint eine lange URL. Da ihr per SSH verbunden seid, könnt ihr nicht einfach draufklicken (naja, könnt ihr schon versuchen, aber euer Terminal wird euch komisch anschauen).
Kopiert die gesamte URL und fĂŒgt sie in einen Browser auf eurem Computer ein. Ihr werdet zum Cloudflare Dashboard weitergeleitet, wo ihr:
- Euch in euer Cloudflare-Konto einloggt
- Die Domain auswĂ€hlt, die ihr verwenden möchtet (z.B.Â
webrx.at) - Auf „Authorize“ (Autorisieren) klickt
Nach der Autorisierung geht zurĂŒck zu eurer SSH-Sitzung. Ihr solltet eine Erfolgsmeldung sehen, die bestĂ€tigt, dass eure Zugangsdaten in /home/radio/.cloudflared/cert.pem gespeichert wurden.
Pro-Tipp: Wenn ihr spĂ€ter eine Fehlermeldung bekommt, dass die cert.pem-Datei nicht gefunden wurde, ist dieser Schritt nicht ordentlich durchgelaufen. FĂŒhrt einfach den Login-Befehl nochmal aus!
Schritt 3: Tunnel erstellen
Zeit, den eigentlichen Tunnel zu erstellen! Denkt daran wie an die Etablierung eures Rufzeichens fĂŒr diese spezielle Verbindung.
bash
cloudflared tunnel create my-pi-tunnel
Ihr werdet eine Ausgabe sehen, die ungefÀhr so aussieht:
Tunnel credentials written to /home/radio/.cloudflared/1d7cebf0-2297-4eb3-abba-5d9606d8e3cb.json
Created tunnel my-pi-tunnel with id 1d7cebf0-2297-4eb3-abba-5d9606d8e3cb
WICHTIG: Kopiert diese UUID (die lange Zeichenfolge aus Zahlen und Buchstaben). Ihr braucht sie im nĂ€chsten Schritt. Meine war 1d7cebf0-2297-4eb3-abba-5d9606d8e3cb â eure wird anders sein!
Schritt 4: Tunnel konfigurieren
Jetzt mĂŒssen wir dem Tunnel sagen, wohin er den Traffic leiten soll. Zuerst finden wir heraus, auf welchem Port OpenWebRX lĂ€uft.
PrĂŒfen, ob OpenWebRX auf Port 80 lĂ€uft:
bash
curl http://localhost:80
Wenn ihr HTML-Ausgabe seht, prima! Wenn nicht, versucht:
bash
curl http://localhost:8073
Sobald ihr den Port kennt, erstellen wir die Konfigurationsdatei:
bash
# System-Konfigurationsverzeichnis erstellen
sudo mkdir -p /etc/cloudflared
# Konfigurationsdatei erstellen und bearbeiten
sudo nano /etc/cloudflared/config.yml
Diese Konfiguration einfĂŒgen (Werte wie angegeben ersetzen):
yaml
tunnel: EURE-TUNNEL-UUID-HIER
credentials-file: /etc/cloudflared/EURE-TUNNEL-UUID-HIER.json
ingress:
- hostname: eure-subdomain.euredomain.com
service: http://localhost:80
- service: http_status:404
Zum Beispiel, so sah meine aus:
yaml
tunnel: 1d7cebf0-2297-4eb3-abba-5d9606d8e3cb
credentials-file: /etc/cloudflared/1d7cebf0-2297-4eb3-abba-5d9606d8e3cb.json
ingress:
- hostname: oe8yml.webrx.at
service: http://localhost:80
- service: http_status:404
Ersetzen:
EURE-TUNNEL-UUID-HIER mit eurer tatsÀchlichen Tunnel-UUID (an beiden Stellen!)eure-subdomain.euredomain.com mit eurer tatsÀchlichen Domain/Subdomainhttp://localhost:80 mit dem richtigen Port, falls eurer anders ist
Datei speichern (Strg+X, dann Y, dann Enter).
Jetzt die Credentials-Datei an den Systemstandort kopieren:
bash
sudo cp ~/.cloudflared/EURE-TUNNEL-UUID-HIER.json /etc/cloudflared/
Zum Beispiel:
bash
sudo cp ~/.cloudflared/1d7cebf0-2297-4eb3-abba-5d9606d8e3cb.json /etc/cloudflared/
Schritt 5: DNS einrichten
Jetzt mĂŒssen wir eure Domain auf den Tunnel zeigen lassen. Dies erstellt einen CNAME-Eintrag in Cloudflares DNS, der den Traffic zu eurem Tunnel routet.
bash
cloudflared tunnel route dns my-pi-tunnel eure-subdomain.euredomain.com
Zum Beispiel habe ich verwendet:
bash
cloudflared tunnel route dns my-pi-tunnel oe8yml.webrx.at
Ihr solltet sehen:
INF Added CNAME oe8yml.webrx.at which will route to this tunnel
Falls ihr einen Fehler bekommt, dass der Eintrag bereits existiert, kein Problem! Einfach:
- Geht zu https://dash.cloudflare.com
- WĂ€hlt eure Domain aus
- Geht zu DNS â Records
- Löscht den existierenden Eintrag fĂŒr eure Subdomain
- Versucht den Befehl nochmal
Schritt 6: Tunnel testen
Bevor wir ihn permanent machen, testen wir erstmal! FĂŒhrt aus:
bash
cloudflared tunnel run my-pi-tunnel
Ihr solltet Logs vorbeirollen sehen, einschlieĂlich Zeilen wie:
INF Connection registered
INF Registered tunnel connection
Jetzt öffnet einen Browser und besucht eure Domain (z.B. https://oe8yml.webrx.at). Ihr solltet eure OpenWebRX-OberflÀche sehen!
Wenn es funktioniert: GlĂŒckwunsch! DrĂŒckt Strg+C, um den Tunnel zu stoppen, und geht zum nĂ€chsten Schritt.
Wenn ihr eine Cloudflare-Fehlerseite seht: PrĂŒft folgendes:
- LĂ€uft OpenWebRX ĂŒberhaupt? (
sudo systemctl status openwebrx) - Habt ihr den richtigen Port in eurer Config verwendet?
- Könnt ihr lokal darauf zugreifen? (
curl http://localhost:80)
Schritt 7: Als Systemdienst installieren
Jetzt machen wir den Tunnel permanent, damit er automatisch beim Booten des Pi startet. Kein manuelles Starten mehr!
bash
# Service installieren
sudo cloudflared service install
# Starten
sudo systemctl start cloudflared
# Beim Booten automatisch starten
sudo systemctl enable cloudflared
# PrĂŒfen, ob er lĂ€uft
sudo systemctl status cloudflared
Ihr solltet etwas sehen wie:
â cloudflared.service - cloudflared
Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled)
Active: active (running) since...
Dieses grĂŒne „active (running)“ ist, was ihr sehen wollt!
Fertig! đ
Euer OpenWebRX ist jetzt weltweit ĂŒber eure eigene Domain erreichbar, mit HTTPS-VerschlĂŒsselung, ohne Port-Forwarding und mit automatischem Start beim Booten!
Teilt euren Link mit anderen Funkamateuren, fĂŒgt ihn zu eurer QRZ-Seite hinzu und genieĂt es, DX-Stationen aus der ganzen Welt zuzuschauen, wie sie sich einklinken.
Euer Tunnel wird:
- Automatisch beim Booten des Pi starten
- Automatisch neu starten, wenn er abstĂŒrzt
- Weiter laufen, auch wenn sich eure Heim-IP-Adresse Àndert
- Euer Netzwerk vor direkter Exposition ins Internet schĂŒtzen
NĂŒtzliche Befehle fĂŒr spĂ€ter
Hier sind einige praktische Befehle, die ihr euch merken solltet:
Live-Logs anzeigen:
bash
sudo journalctl -u cloudflared -f
Service neu starten:
bash
sudo systemctl restart cloudflared
Service stoppen:
bash
sudo systemctl stop cloudflared
Service starten:
bash
sudo systemctl start cloudflared
Tunnel-Status prĂŒfen:
bash
sudo systemctl status cloudflared
Alle Tunnel auflisten:
bash
cloudflared tunnel list
Fehlerbehebung hÀufiger Probleme
„Cannot determine default configuration path“
Eure Config-Datei ist am falschen Ort. Stellt sicher, dass sie in /etc/cloudflared/config.yml liegt und nicht in eurem Home-Verzeichnis.
„Cloudflare Tunnel error“ beim Besuch eurer Domain
Der Tunnel-Service lĂ€uft nicht. PrĂŒft mit sudo systemctl status cloudflared und schaut euch die Logs an mit sudo journalctl -u cloudflared -n 50.
Tunnel startet, aber die Seite lÀdt nicht
- ĂberprĂŒft, ob euer lokaler Service lĂ€uft:Â
curl http://localhost:EUER-PORT - PrĂŒft, ob die Port-Nummer in eurer Config mit eurem Service ĂŒbereinstimmt
- Schaut in die Tunnel-Logs nach Verbindungsfehlern
„package architecture does not match system“
Ihr habt die falsche Binary heruntergeladen. Nutzt uname -m um eure Architektur zu prĂŒfen und ladet die passende Version herunter (arm vs arm64).
Weitere Dienste hinzufĂŒgen
Wollt ihr mehrere Services freigeben? Einfach! FĂŒgt einfach weitere EintrĂ€ge zu eurer Config-Datei hinzu:
yaml
tunnel: 1d7cebf0-2297-4eb3-abba-5d9606d8e3cb
credentials-file: /etc/cloudflared/1d7cebf0-2297-4eb3-abba-5d9606d8e3cb.json
ingress:
- hostname: sdr.euredomain.com
service: http://localhost:80
- hostname: pihole.euredomain.com
service: http://localhost:8080
- hostname: homeassistant.euredomain.com
service: http://localhost:8123
- service: http_status:404
Dann DNS fĂŒr jeden einzeln routen:
bash
cloudflared tunnel route dns my-pi-tunnel sdr.euredomain.com
cloudflared tunnel route dns my-pi-tunnel pihole.euredomain.com
cloudflared tunnel route dns my-pi-tunnel homeassistant.euredomain.com
Service neu starten:
bash
sudo systemctl restart cloudflared
Sicherheitshinweise
Obwohl Cloudflare Tunnels ziemlich sicher sind, hier einige zusÀtzliche Tipps:
- ErwĂ€gt Cloudflare Access fĂŒr Authentifizierung, wenn ihr sensible Services freigebt
- Haltet euren Pi aktuell:Â
sudo apt update && sudo apt upgrade - Verwendet starke Passwörter fĂŒr euren Pi und alle Web-Interfaces
- Ăberwacht eure Tunnel-Logs gelegentlich auf verdĂ€chtige AktivitĂ€ten
- Gebt keine administrativen Interfaces frei ohne zusÀtzliche Authentifizierung
Schlusswort
Als Funkamateure lieben wir es zu basteln und unsere Stationen mit anderen zu teilen. Cloudflare Tunnels machen das einfacher und sicherer als je zuvor. Kein Kampf mehr mit NAT, CGNAT oder DynDNS-Diensten, die um 3 Uhr morgens wÀhrend eines Contests ausfallen.
Nun geht hinaus und teilt euer SDR mit der Welt! Und denkt daran: Genau wie im Funkverkehr kommt manchmal die beste DX von den unerwartetsten Orten.
Mein persönliches Fazit
Diese Anleitung ist nicht nur Theorie â ich habe sie selbst Schritt fĂŒr Schritt befolgt und damit https://oe8yml.webrx.at eingerichtet. Mein Setup lĂ€uft ĂŒber Starlink, und die Kombination aus Cloudflare Tunnel und Satelliteninternet funktioniert hervorragend! Keine Probleme mit CGNAT (Carrier-Grade NAT), die bei Starlink ĂŒblich wĂ€ren, und die Verbindung ist stabil und schnell.
Das Beste daran? Ich musste mir keine Gedanken ĂŒber die sich stĂ€ndig Ă€ndernde IP-Adresse machen oder komplizierte Netzwerkkonfigurationen durchfĂŒhren. Der Tunnel lĂ€uft einfach, egal ob ich gerade ĂŒber Satellit, Mobilfunk oder Festnetz verbunden bin.
Ich hoffe, diese Anleitung hilft euch genauso wie sie mir geholfen hat. Viel SpaĂ beim Einrichten eures eigenen WebSDR!
73 de OE8YML Michael
P.S. – Wenn euch dieser Guide geholfen hat, gebt mir ein Signal auf eurem Lieblingsband. Ich wĂŒrde gerne von eurem Setup hören! Und natĂŒrlich: Hört rein auf https://webrx.at â dort findet ihr noch mehr WebSDRs aus unserer Community!
ZusÀtzliche Ressourcen
Zuletzt aktualisiert: Dezember 2025
Getestet auf: Raspberry Pi 3/4 mit Raspberry Pi OS (Debian Bullseye)
Lizenz: FĂŒhlt euch frei, diesen Guide zu teilen und zu modifizieren. Quellenangabe wird geschĂ€tzt!

