Strato Windows-V-Server als Plex-Media-Server
Wie bereits in früheren Beiträgen dargestellte, lässt sich Plex auf NAS-Systemen einrichten und so lokal im LAN nutzen. Dabei ist die Nutzung außerhalb des lokalen Netzwerkes des Servers stark von Upload des Internetanschlusses abhängig. Um dies zu umgehen, kann für den Plex Media Server ein VPS, Virtual Private Server, genutzt werden. Dieser wird in einem Rechenzentrum gehostet, das über eine gute Internet-Anbindung verfügt, und so eine uneingeschränkte Nutzung des Remote-Zugriffs ermöglicht. Für die Umsetzung kommen verschiedene Anbieter in Frage. Für Deutschland bietet Strato als größter Anbieter eine einfache Möglichkeit an, eine günstige virtuelle Maschine einzurichten.
Im Vergleich zur Performance auf einem ARM-QNAP-NAS bietet die folgende Konfiguration bereits mehr Möglichkeiten im Bereich Transcoding, dass für die Kompatibilität zu verschiedenen Endgeräten verbessert.
Betriebssystem | Microsoft Windows Server 2019 |
CPU | 6 CPU vCore |
Arbeitsspeicher | 12 GB |
Festplatte | 400 GB NVMe |
Netzwerk | 1 GBit/s synchron |
Installation
Einrichtung im Kundencenter
Die Beauftragung erfolgt im Kundencenter und ist innerhalb von 30 min. abgeschlossen. Bei Beauftragung wird das Administrator-Passwort abgefragt, mit dem die Remote-Desktop-Sitzung zum Server aufgebaut werden kann.
VirtIO-Treiber
Die virtuellen Windows Server laufen bei Strato auf einer Red Hat VirtIO Plattform. Nach der Einrichtung müssen daher zunächst die entsprechenden Treiber installiert werden. Als Windows-Setup werden diese von Proxmox bereitgestellt und können unter folgenden Adressen heruntergeladen werden:
Eine Aktualisierung der Treiber muss dabei mit der „Manual Installation“ erfolgen, da das Setup ggf. nicht korrekt ausgeführt wird.
Netzwerk-Konfiguration
Mit der Installation erhält der Server einen Netzwerk-Adapter, dem eine öffentliche IP zugewiesen ist. Da die Einrichtung von virtuellen Maschienen auf einem bereits virtuellen Server nicht mehr möglich ist, kann der Plex-Media-Server nicht in einer solchen mit privater IP betrieben werden.
Über die Einrichtung eines zweiten (Loopback-) Adapters können jedoch der IP-Adressbereich und eine Portweiterleitung für den Remote-Zugriff umgesetzt werden. Damit ergeben sich folgende Vorteile gegenüber einer Nutzung mit öffentlicher IP.
- Installation ist konform mit der Anforderung, dass der Plex-Media-Server nur in (privaten) Netzen der RFC-1597 bzw. RFC-1918 betrieben werden darf
- der Port, über den der Remote-Zugriff erfolgt ist nicht auf 32400 beschränkt
- der Remote-Zugriff ist auch aus Gäste-Netzwerken möglich, wenn der (öffentliche) Port 80 oder 443 ist
Einrichtung des Loopback-Adapters
Die Einrichtung des Loopback-Adapters ist über den Geräte-Manger möglich.

Im Menü „Aktion“ kann mit „Legacyhardware hinzufügen“ der entsprechende Assistent aufgerufen werden.

Dieser führt dann durch die weitere Installation.

Der entsprechende Treiber muss manuell ausgewählt werden.

Zu finden ist der Treiber „Microsoft KM-TEST Loopback Adapter“ unter „Netzwerkadapter“ und …

… Hersteller Microsoft.


Nach Abschluss der Installation ist dann der neue Adapter in der Systemsteuerung bei den Netzwerkverbindungen zu finden und sollte hier in „Loopback“ umbenannt werden, um diesen später leicht identifizieren zu können.

In den Eigenschaften sollte das IP-Protokoll (v4) laut RFC-1597 bzw. RFC-1918 konfiguriert werden. Beispielsweise lassen sich folgende Werte nutzen. Diese sind unabhängig von der tatsächlichen öffentlichen IP des Servers nutzbar.
- IP-Adresse: 192.168.0.1
- Subnetzmaske: 255.255.255.0
- Standardgateway: 192.168.0.254
- DNS-Server: 192.168.0.254

An den so erstellten Loopback-Adapter kann der Plex-Media-Server nun für den Fernzugriff gebunden werden. Die Einstellung dafür ist in den Optionen unter Netzwerk zu finden. Der „Bevorzugte(r) Netzwerkadapter“ muss hier auf „Loopback (192.168.0.1)“ gesetzt werden. Der Name ergibt sich dabei aus den zuvor konfigurierten Werten (und kann ggf. abweichen).

Über diesen läuft nur der Fernzugriff der Clients, der Server kann unabhängig von diesem Adapter trotzdem auf die Metadatenserver von Plex zugreifen. Dies erfolgt weiterhin über den (öffentlichen) Ethernet-Adapter.
Portweiterleitung einrichten
Damit der Fernzugriff über einen abweichenden Port laufen kann, muss nun eine Portweiterleitung für Plex eingerichtet werden. Diese leitet den Datenverkehr vom gewünschten öffentlichen Port (des Ethernet-Adapters) an den internen Port 32400 des Loopback-Adapters weiter. Die Einrichtung erfolgt über folgende Befehl in der Komandozeile:
netsh interface portproxy add v4tov4 listenport=<öffentlicher Port> listenaddress=<öffentliche IP des Ethernet-Adapters> connectport=32400 connectaddress=<private IP des Loopback-Adapters>
Mit konkreten Werten sieht das dann beispielsweise so aus:
- <öffentlicher Port des Ethernet-Adapters> – 80
- <öffentliche IP des Ethernet-Adapters> – 93.137.2.234 (fiktiv)
- <private IP des Loopback-Adapters> – 192.168.0.1
netsh interface portproxy add v4tov4 listenport=80 listenaddress=93.137.2.234 connectport=32400 connectaddress=192.168.0.1
In den Plex-Netzwerkeinstellungen muss dann noch der <öffentliche Port des Ethernet-Adapters> und die Upload-Geschwindigkeit angegeben werden.

Da über den Loopback-Adapter kein Upload möglich ist zeigt Plex irreführender Weise einen nicht funktionierenden Fernzugriff an. Unabhängig davon können die Clients trotzdem auf die Inhalte des Servers zugreifen.

Einschränkungen bei Nutzung des Loopback-Adapters
Neben der eben erwähnten irreführenden Kennzeichnung des Fernzugriffs als nicht funktionsfähig gibt es noch eine zweite Einschränkung, die ggf. nicht erwünscht ist. Im Dashboard wird die Bandbreite der Netzwerkverbindung nicht mehr dargestellt.

Domain-Namen für Netzwerkfreigaben aktivieren
Sollen die Mediatheken über UNC-Pfade angesprochen werden, um diese ggf. leichter verschieben oder für DirectPlay über Kodi zu nutzen, muss die gewünschte Domäne als alternativer Name des Servers registriert werden. Ansonsten ist nur der direkte Servername ohne Domain gültig.
Die Änderung ist mit folgendem PowerShell-Skript möglich.
$altNames = @("KUMO","KUMO.dachs.blog")
$hostName = "KUMO"
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name DisableLoopbackCheck -PropertyType DWord -Value 1
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 -Name BackConnectionHostNames -PropertyType MultiString -Value $altNames
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters -Name OptionalNames -PropertyType MultiString -Value $altNames[0]
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters -Name DisableStrictNameChecking -PropertyType DWord -Value 1
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters -Name DnsOnWire -PropertyType DWord -Value 1
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.