DLNA über Tunnel

Yuuri

Fleet Admiral
Registriert
Okt. 2010
Beiträge
13.928
Hallo zusammen,

da sich SMB wunderbar über SSH tunneln lässt und ich somit meinen Server quasi bei mir stehen hab (100 MBit-Leitung sei Dank), wollte ich mal ein wenig weiter gehen und nachfragen, ob da jemand vielleicht mehr Infos für mich hat DLNA über nen SSH Tunnel laufen zu lassen. Sinn und Zweck: TV daheim mit Filmen/Musik/Bildern füttern, die auf dem Server liegen.

Hab mich bereits ein wenig belesen und entdeckt, dass DLNA TCP, UDP und Multicast nutzt. UDP über TCP tunneln sollte ja gehen, Multicast ebenso. Ne richtige Spezifikation oder nen guten Umriss hab ich bisher aber nicht gefunden, weswegen ich da noch nichts probiert habe.

Jemand zufällig Infos/Erfahrung?



LG
 
Hi,

das klingt mir fast ein wenig nach einem X-Y Problem.
Du willst X machen, glaubst dass Y die Lösung ist und fragst nach Y.

Was hast du denn vor? Bzw was hast du an Geräten.

Wenns z.B darum geht dass du von außerhalb z.B mit dem Notebook auf deine Mediathek kommst, installier dir Plex. Für viele Smart TVs usw. gibts fertige Apps. Dort loggst du dich mit deinem Account ein und kannst von überall aus deine Filme streamen. Incl. transcoding für langsame Leitungen oder z.B Handys.

Wenn du allerdings z.B ne Art Internet-Radio hast kannst du z.B mit einem Rasperry Pi (oder nem anderen Server) einen reverse-SSH Tunnel aufmachen.

Das heißt dann dass auf dem Client der Port xyz aufgemacht wird, und alles was dort ankommt wird auf den Server auf Port abc weitergeleitet. Das ist allerdings keine Standardconfig und muss extra beim ssh-daemon eingestellt werden.

Wenn du uns allerdings mehr Infos gibst welche Geräte du hast und was genau du machen willst - das würde das leichter machen.

Weiterführendes, z.B dass der Server wie im eigenen Netz ist - dafür braucht du dann keinen SSH Tunnel sondern sowas wie OpenVPN dass dir mehr weiterleitet und nicht nur einzelne Ports.

Ich z.B hab bei mir zuhause ne NAS mit Plex laufen. Zuhause läuft das ganze mit direktem Streaming ohne Transcoding und z.B bei meiner Freundin oder im Ausland rennt das ganze dann übers Transcoding und ist auch bei einer 6-Mbit Leitung absolut perfekt.
 
Zuletzt bearbeitet:
Könntest du nicht einfach einen VPN Tunnel nutzen?
 
Zeroflow schrieb:
Was hast du denn vor?
DLNA übers Internet, ganz einfach.
Zeroflow schrieb:
Bzw was hast du an Geräten.
Beliebige Endgeräte, die DLNA können. Egal was.
Zeroflow schrieb:
Für viele Smart TVs usw. gibts fertige Apps.
Keine Apps oder sonstige Drittanbieter-Software. Die Geräte können bereits DLNA, warum dann noch Weiteres draufpacken, was es evtl. nicht mal fürs Endgerät gibt? Bspw. hat ein Kumpel ein WLAN-Radio mit DLNA-Funktionalität. Da kann ich nichts drauf installieren. Auch hat er nen relativ aktuellen Sony TV, aber da will ich nicht erst ne App installieren und mich dann per Fernbedienung einloggen usw.

@ Ebrithil: Nein fällt aus. Mein Netz (via Router) oder der gesamte PC (als Gateway) kommen nicht ins VPN.

Die Frage ist hier wirklich nur, ob DLNA über ein SSH Tunnel läuft. DLNA selbst bietet ja keinerlei Sicherheit (Authentifizierung, Verschlüsselung, ...), fällt ergo sowieso raus und ist praktisch auch nur im eigenen Netzwerk nutzbar.
 
Die ersten Antworten waren jetzt mal _überhaupt_ nicht hilfreich.

Aber zum Glück beantwortest du das ganze einen Absatz weiter unten.
Es ging mir nur eben darum nachzufragen ob DLNA wirklich das ist was du suchst oder ob es eine bessere Lösung gibt.

Z.b. mit dem WLAN-Radio von deinem Kumpel - das ist genau das was ich hören wollte.
Sprich das Ziel ist dass dein Kumpel mit dem vorhandenen WLAN-Radio und seinem Sony Smart TV auf deine Mediathek kommt.

Das große Problem dabei ist nun einfach dass DLNA UDP Broadcasts braucht um zu funktionieren.
Nun müsstest du da eben mit VPN und ziemlich aufwändigen Regeln die ganzen Ports beschränken / freigeben.

Allerdings: wie wäre eine andere Idee, und zwar die könnte mit SSH gehen.

- Dein Kumpel bekommt nen SSH Zugang
- Du gibst deine Netzwerk-Shares über das Protokoll deiner Wahl (SMB, NFS, ...) frei
- Über den SSH-Tunnel mountet er das Laufwerk
- Er installiert sich lokal einen DLNA Server. Content kommt über den Tunnel, das ganze UDP Broadcast Discovery Zeug läuft einzig und allein in seinem Netz ab.

Damit würdest du dir es ersparen einzeln die Ports freizugeben bzw. umständlich UDP Broadcasts über 3 Netze hin und her zu schaufeln (Kumpel - Tunnel - Deins).
Noch dazu kannst du bei openssh mit der "PermitOpen" Direktive genau angeben welche Ports zu welchen Adressen er öffnen kann.

Edit: Hier steht recht gut beschrieben wie du einzelnen Usern in der sshd config die PortForward rules geben kannst. https://www.itefix.net/content/openssh-tunnels-allow-deny-single-users

Ich würde dir auch raten das ganze über Zertifikate zu machen. Dann kann sein Server sich von selbst bei dir einklinken ohne dass er jedes mal beim starten ein Passwort eingeben muss. Und durch die sshd config ist es seinem User eben nicht erlaubt sich an ner shell einzuloggen, aber er kann den einen Port für die Freigaben weiterleiten.
 
Zuletzt bearbeitet:
Es ist übrigens ein Windows Server. Cygwin läuft da nicht (mehr), da der OpenSSH Server zu viele Probleme macht - Verschlüsselung ist unmöglich, teilweise sind Daten unlesbar (oder nur von Cygwin/sshd selbst kann sie lesen) und die Transferrate ist der größte Witz mit gerade mal 2,x MB/s. Da läuft momentan ein Bitvise, mit dem es bei all dem keine Probleme gibt und problemlos 12 MB/s übertragen werden, inkl. Key Authentication und Privilege Elevation.

Der Umweg über SMB wäre eine Notlösung, würde aber funktionieren. Einzige Voraussetzung wäre dann natürlich, dass ein DLNA bereits läuft und er die Freigabe irgendwo mountet, wo der DLNA ran kommt und das weiter verteilen kann.

Einen direkten Weg, sodass kein weiterer Server laufen muss, kennst du aber auch nicht was?

Ausprobieren wäre da die Devise, nur leider weiß ich nicht, was alles für Ports benötigt werden und auf welchen UDP, Broadcast/Multicast (IPv4/v6), TCP usw. läuft. Zudem hab ich auch keine Erfahrung, wie gut das tunneln von UDP und Broadcasts über TCP funktioniert. Hab mal bei Plex ne Hilfeseite gefunden, aber da standen auch nur die Port Nummern ohne Bedeutung oder Protokoll.
 
Windows-Server ändert das ganze natürlich ein wenig. Ich selbst hab keinen Win Server am laufen und kann dir dazu natürlich keine direkten Tools o.ä. vorschlagen sondern nur generelle Konzepte.

Einen direkten Weg, sodass kein weiterer Server laufen muss, kennst du aber auch nicht was?

Das ganze passt auch nicht ganz zu deiner Frage - für jegliche Art von Tunnel brauchst du auf der Gegenseite einen Server.
(Es sei denn z.B das Web-Radio erlaubt es sich darauf einzuloggen und den Tunnel direkt zu machen, aber davon hätte ich noch nie gehört)

Einzige Voraussetzung wäre dann natürlich, dass ein DLNA bereits läuft und er die Freigabe irgendwo mountet, wo der DLNA ran kommt und das weiter verteilen kann.

Dafür würde z.B ein Einplatinen-Computer wie ein Raspberry Pi ausreichen. DLNA selbst braucht nicht viel CPU Power.

Zudem hab ich auch keine Erfahrung, wie gut das tunneln von UDP und Broadcasts über TCP funktioniert.

UDP Tunnels über SSH sind auch nicht unbedingt etwas dass man ohne weiteres hinkriegt. Man kann sich zwar mit Unix-Tools wie nc behelfen, aber das ist keine gute Lösung.
 
Zurück
Oben