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.

BetriebssystemMicrosoft Windows Server 2019
CPU6 CPU vCore
Arbeitsspeicher12 GB
Festplatte400 GB NVMe
Netzwerk1 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

This post is also available in: Deutsch Englisch

Schreibe einen Kommentar