Du steigst in den ICE nach München. Drei Stunden Fahrt, du hast eine Netflix-Folge offline, aber du erinnerst dich, dass auf deinem Heim-Jellyfin eine komplette Staffel „Severance" in 1080p wartet. Du verbindest dich mit dem Bord-WLAN, öffnest die Jellyfin-App auf dem Handy. Die ersten acht Sekunden laufen sauber. Dann Buffering. Bitrate fällt von 8 Mbps auf 2. Von 1080p auf 480p. Ben Stillers Gesicht wird zum JPEG-Mosaik. Pause, Restart - dasselbe. WireGuard? Noch schlechter, weil Verschlüsselung und MTU-Fragmentierung dazukommen. Du fällst zurück auf das offline Netflix. Die meisten Methoden für Remote-Streaming sind schlicht kaputt - und das ist nicht die Schuld deines WLAN.
Warum Jellyfin schwerer zu streamen ist als HA oder Nextcloud#
Home Assistant schickt ein paar Kilobyte Telemetrie und gelegentlich einen Kameraschnappschuss. Nextcloud-Sync läuft einmal am Tag und kann warten. Jellyfin muss einen konstanten Stream mit garantiertem Throughput liefern, ohne Frame-Drops und ohne Pause länger als der Player-Buffer (typisch 10 Sekunden).
Bandbreite ist eine gnadenlose Gleichung. 4K HDR HEVC = 25 Mbps Dauertransfer. 1080p H.264 = 8 Mbps. WireGuard + UDP-Fragmentierung + Retransmits = realer Overhead von 20-30% end-to-end. Dein 50-Mbps-Upload zu Hause wird plötzlich nutzbare 35 Mbps - kritisch nah an den 25 Mbps für 4K.
HTTPS ist von modernen Playern zwingend gefordert. Chromecast verweigert seit 2023 das Casten von HTTP-Streams. Jellyfin Mobile (iOS/Android) verlangt TLS für Background-Playback. Jellyfin Web in Chrome blockt Mixed Content. Ohne HTTPS - funktioniert nur Desktop-Browser mit --disable-web-security. Also nichts.
Cloudflare Tunnel hat ein Streaming-Limit fest in den ToS - Section 2.8 des Self-Serve Subscription Agreement verbietet die Nutzung kostenloser Dienste für „caching or serving disproportionate amounts of non-HTML content". In der Praxis: über ~50 GB/Monat Video gibt's erst eine Warnung, dann Subdomain-Bann. Jellyfin mit Familie, die nach Feierabend Serien schaut = 200 GB/Monat ohne Probleme.
DLNA / uPnP setzt lokales UDP-Broadcast auf Port 1900 voraus. Geht nicht über VPN, geht nicht über HTTP-Tunnel - DLNA bei Remote-Zugriff vergiss komplett.
4 Wege zum Jellyfin-Fernzugriff - brutales Ranking#
1. Portweiterleitung 8096#
Wie es funktioniert: Du öffnest Port 8096 (HTTP) oder 8920 (HTTPS) am Router und leitest auf die Jellyfin-Maschine. DynDNS einrichten (meinflicks.duckdns.org), Let's-Encrypt-Cert via certbot oder Reverse Proxy generieren, fertig - Jellyfin unter öffentlicher Adresse.
Vorteile: keine externen Abhängigkeiten, volle Kontrolle, niedrigste Latenz (1 Hop).
Nachteile:
- Kein HTTPS by default - Port 8096 ist Plain HTTP, du musst Caddy/Nginx + LE separat aufsetzen.
- Du legst das Jellyfin-Admin-Panel ins öffentliche Internet. CVE-2023-49096 (Path Traversal) und Ähnliches kommen regelmäßig.
- Funktioniert nicht hinter CGNAT (Mobilfunk, manche Glasfaseranbieter). Prüfe die Router-IP - beginnt sie mit
100.64.x.xbis100.127.x.x, sitzt du hinter CGNAT. - Shodan-Bots finden dein Jellyfin innerhalb von 6 Stunden nach Portöffnung.
Verdikt: wie HA per Portweiterleitung - unsicher und ohne HTTPS by default.
2. WireGuard VPN#
Wie es funktioniert: WG am Router (UniFi, MikroTik, OpenWRT) oder im separaten Container aufsetzen. Jedes Familiengerät hat die WG-App und Peer-Config. Sie verbinden sich, als wären sie zu Hause, Jellyfin liegt im LAN (http://192.168.1.50:8096).
Vorteile: starke ChaCha20-Verschlüsselung, null Jellyfin-Exposition, Zugriff auch auf andere Heim-Dienste.
Nachteile:
- App auf jedem Gerät. Deine Frau soll WireGuard starten, bevor sie sonntags eine Serie schaut? Viel Glück. Kinder auf der Switch? Da gibt's kein WG.
- Chromecast / Smart-TVs unterstützen kein WG. Keine native App = kein Streaming auf den großen Bildschirm im Hotel.
- 20-30% Overhead auf HD/4K-Throughput.
- Funktioniert nicht hinter CGNAT auf Server-Seite - dein Router hinter CGNAT = externe Clients erreichen den WG nicht.
Verdikt: okay für Solo-Entwickler am Laptop. Schlecht für Familien und große Bildschirme.
3. Cloudflare Tunnel#
Wie es funktioniert: cloudflared auf der Jellyfin-Maschine installieren, Tunnel autorisieren, im CF-Panel meinflicks.deinedomain.de → http://localhost:8096 mappen. HTTPS automatisch über das Cloudflare-CDN.
Vorteile: kostenlos, läuft hinter CGNAT, eigene Domain, integrierter DDoS-Schutz.
Nachteile, die die Docs verschweigen:
- ToS Section 2.8 verbietet Video-Streaming > ~50 GB/Monat auf dem Free Tier. Cloudflare bannt Subdomains nach Erkennung - mal nach einem Monat, mal nach einem Jahr, Lotterie.
- Unvorhersehbares Throttling. CF beginnt irgendwann, deinen Video-Traffic zu drosseln, Bitrate fällt, der Player puffert ohne ersichtlichen Grund.
- 100 MB pro HTTP-Request-Limit im Free Plan - manche Jellyfin-Operationen (initialer Library-Scan mit Metadata-Bildern) können scheitern.
- WAF blockt manchmal legitime Player-Requests (HLS-Chunks, Range Requests) - Debugging wird zu „warum streamt die Serie von 2009 nicht".
Verdikt: kostenlos, ABER Cloudflare ToS verbietet Streaming > ~50 GB/Monat - sie bannen. Ausführlicher Vergleich.
4. Reverse-SSH-Tunnel (SmartHomeEntry)#
Wie es funktioniert: ein Agent auf der Jellyfin-Maschine öffnet einen ausgehenden SSH-Tunnel zu einem Relay-Server. Das Relay exponiert dein Jellyfin unter einer stabilen HTTPS-Subdomain, z. B. meinflicks.smarthomeentry.com. Null offene Ports bei dir.
Vorteile:
- Kein Transcoding-Overhead - das Relay forwardet nur TCP, dekodiert kein Video. Bitrate ohne Verluste.
- Keine ToS-Probleme - keine Limits auf Video-Transfer.
- Funktioniert mit jeder Client-App - Jellyfin Web, Jellyfin Mobile, Findroid, Streamyfin, Chromecast, Apple TV, Smart-TV (per Browser).
- Stabile HTTPS-Subdomain, automatisches LE-Cert auf Relay-Ebene.
- Funktioniert hinter CGNAT (ausgehender Tunnel).
Nachteile:
- Abhängigkeit vom Relay (Managed Uptime).
- Kostenpflichtig - ab 6,90 €/Monat für den Hobby-Plan.
Verdikt: für die meisten Jellyfin-Nutzer - bestes Verhältnis aus Qualität, Komfort und Sicherheit.
| Methode | Hinter CGNAT | HTTPS | ToS-Limit | Familien/TV-Apps | Setup |
|---|---|---|---|---|---|
| Portweiterleitung 8096 | nein | manuell | keins | ja | schwer |
| WireGuard | nein | n/v | keins | nein | mittel |
| Cloudflare Tunnel | ja | auto | ~50 GB/Mon | ja | mittel |
| Reverse SSH (SHE) | ja | auto | keins | ja | 60 Sek |
Setup Jellyfin + SSH-Tunnel in 60 Sekunden#
Ich nehme an, dass Jellyfin lokal unter http://192.168.1.50:8096 oder http://jellyfin.local:8096 läuft. Falls nicht - erst der HA-Pillar zur Self-Hosted-Installation (Prozess ist analog).
-
Lege ein SmartHomeEntry-Konto an und wähle eine Subdomain (z. B.
meinflicks.smarthomeentry.com). Bei der Registrierung allokieren wir einen eindeutigen Relay-Port und binden die Subdomain an deinen Tunnel-Datensatz. -
Lege die lokale Adresse von Jellyfin fest im Dashboard (Feld „Lokale Adresse" im Onboarding). Das ist die Adresse, unter der Jellyfin in deinem Netzwerk lauscht - dorthin leitet der Agent den Tunnel-Verkehr weiter. Jellyfin läuft standardmäßig auf Port 8096, trage also
localhost:8096ein. Der Feld-Standardwert istlocalhost:8080, und damit funktioniert der Tunnel nicht. Prüfen auf dem Jellyfin-Host:sudo ss -tlnp | grep 8096 -
Hole den Install-Befehl aus dem Dashboard und füge ihn im Jellyfin-Host-Terminal ein:
curl -sSL https://api.smarthomeentry.com/api/install/DEIN_TOKEN | sudo bashDas Script installiert den Agent als Systemd-Service, lädt den SSH-Key über ein Einmal-Install-Token (TTL 15 Min), schreibt die lokale Adresse nach
/etc/smarthomeentry/agent.envund öffnet den Tunnel zum Relay. -
Bearbeite
/etc/jellyfin/network.xml- füge die Subdomain inBaseUrl(leer = Root) und die Relay-IP inKnownProxiesein, damit Jellyfin die echte Client-IP korrekt aus X-Forwarded-For liest:<NetworkConfiguration> <BaseUrl></BaseUrl> <RequireHttps>false</RequireHttps> <EnableHttps>false</EnableHttps> <KnownProxies> <string>relay.smarthomeentry.com</string> </KnownProxies> <PublishedServerUriBySubnet> <string>external=https://meinflicks.smarthomeentry.com</string> </PublishedServerUriBySubnet> </NetworkConfiguration> -
In Jellyfin Dashboard → Networking setze:
- Public HTTPS port:
443 - External Domain:
meinflicks.smarthomeentry.com - Enable automatic port mapping: OFF (überflüssig, das Relay erledigt es)
- Public HTTPS port:
-
Restart Jellyfin (
systemctl restart jellyfin) und öffnehttps://meinflicks.smarthomeentry.com. Du solltest den Jellyfin-Login-Screen über HTTPS sehen - keine Zertifikatswarnung, keine Router-Konfiguration.
Cloudflare Tunnel Free Tier verbietet in ToS Section 2.8 explizit Video-Streaming > ~50 GB/Monat. Jellyfin mit Familie sprengt das in der ersten Woche. Der Subdomain-Bann kommt ohne Vorwarnung - du verlierst den Zugriff auf alle Tunnel des Kontos auf einmal.
Best Practices nach dem Setup#
Tunnel läuft, du kannst aus dem Hotel schauen. Jetzt fünf Minuten Hygiene, damit du in einem halben Jahr nicht wieder ran musst.
- Server-seitiges Transcoding deaktivieren (Dashboard → Playback → Transcoding), außer du hast Hardware-Acceleration NVENC (Nvidia), QSV (Intel) oder VAAPI (AMD). CPU-Transcoding 4K → 1080p frisst 100% der Cores und schafft trotzdem kein Realtime.
- Max-Bitrate pro User setzen (Dashboard → Users → User wählen → Playback → Internet streaming bitrate). 4 Mbps für die Eltern, 20 Mbps für dich. Schützt vor „Kind startet 4K im 100-GB-Mobilfunktarif und brennt ihn in 8 Stunden ab".
- HTTPS-only Redirect aktivieren in Jellyfin (Dashboard → Networking → Require HTTPS für externe Verbindungen).
- DLNA deaktivieren (Dashboard → DLNA → alles OFF). Über Tunnel funktioniert es eh nicht, lokal ist es ein Angriffsvektor (CVEs in SSDP-Discovery).
- Library-Backup: nur Metadata-DB, keine Mediendateien. Backup
/var/lib/jellyfin/data/library.db+metadata/per Borg / Restic. Petabyte an.mkvtunnelst du nicht zum Backup - der Tunnel ist für Streaming, nicht für Offsite-Backup. - Jellyfin monatlich updaten - Security-Patches für die Web-UI (XSS in Filmbeschreibungen ist ein Klassiker).
Hast du eine Intel-CPU ab 7. Generation, aktiviere QSV-Transcoding (Dashboard → Playback → Hardware acceleration → Intel QuickSync). Single-Pass HEVC-Encode bei 4K → 1080p braucht ~3% CPU statt 100%. Verändert die Ökonomie von Remote-Streaming auf einem Laptop-Server komplett.
Setze die Jellyfin-Logs (/var/log/jellyfin/) in Produktion auf Level Information, nicht Debug. Debug protokolliert jeden HLS-Chunk und jeden Seek - ein paar Stunden Streaming = hunderte MB Logs pro Tag und unnötige Disk-IO.
FAQ#
| Frage | Antwort |
|---|---|
| Funktioniert 4K-Streaming über den Tunnel? | Ja, aber du brauchst einen Heim-Upload > 25 Mbps Dauerleistung. Speedtest-Upload zur Prime Time prüfen, nicht um 3 Uhr morgens. Realistisch sind 30-35 Mbps nötig, um Reserve für TCP- + SSH-Overhead zu haben. |
| Funktionieren Chromecast und TV-Apps? | Ja - https://meinflicks.smarthomeentry.com als Server-Adresse in Jellyfin Mobile eintragen, Cast läuft über die HTTPS-Subdomain. Smart-TVs (LG, Samsung, Android TV) öffnen Jellyfin Web im Browser. |
| Live-TV / DVR über den Tunnel? | Ja, aber der DVB-T/DVB-C-Tuner bleibt physisch zu Hause (USB an die Jellyfin-Maschine). Der Tunnel forwardet den Tuner-Stream genau wie aufgenommene Dateien. Aufnahmen werden auch lokal gespeichert, nicht in der Cloud. |
| Was ist mit Untertiteln / HDR? | Der Tunnel ist transparent - er forwardet den Stream Bit für Bit. SRT, ASS, VobSub, PGS, HDR10, HDR10+, Dolby Vision (sofern der Player es kann) - unverändert. |
| Plex vs. Jellyfin über den Tunnel - Unterschiede? | Plex Remote hat ein eingebautes Relay über plex.tv (Transcoding auf deren Seite, Konto erforderlich), läuft ohne Setup, ist aber im Free Tier bandwidth-throttled und braucht Plex Pass für manche Features ($120 lifetime). Jellyfin hat kein eingebautes Remote - du musst es selbst per Tunnel/VPN/Port-Fwd exponieren. Vorteil: volle Kontrolle, kein Drittkonto, FOSS. |
| Kann ich auch andere Dienste von derselben Maschine tunneln? | Ja. Ein Agent bedient viele Subdomains - meinflicks.smarthomeentry.com → Jellyfin, cloud.smarthomeentry.com → Nextcloud, ha.smarthomeentry.com → Home Assistant. |
Verdikt#
Der Reverse-SSH-Tunnel ist die beste Wahl für Jellyfin, wenn du willst: Streaming ohne Cloudflare-ToS-Lotterie, Betrieb hinter CGNAT, HTTPS für jede Client-App (Chromecast, Mobile, TV), volle Library-Kontrolle und kein plex.tv-Lock-in. Plus: deine Familie öffnet einen Link im Browser - keine VPN-App zu installieren.
Alternative? Plex Remote, wenn du dir keine Mühe geben willst und ein plex.tv-Konto plus deren Throttling akzeptierst. WireGuard, wenn du allein schaust. Portweiterleitung nur, wenn IT dein Beruf ist und du täglich auth.log liest. Für alle anderen - Jellyfin + SmartHomeEntry - Link im Browser, läuft überall, 60-Sekunden-Setup.



