Ein Blog über Code, Hardware und Co

Kurz notiert

Ports mit kleinem Proxy weiterleiten

Oder: Wie du mittels Docker einzelne Ports einer virtuellen Maschine im Synology VMM weiterleitest.

Es gibt Fälle, da muss man von einer Linux Maschine (oder einer VM) einzelne Ports weiterleiten. Das geht in der Regel am bequemsten über den davor geschalteten Router.
In manchen Fällen kommt aber nur eine Weiterleitung im Router nicht weiter. Dann hilft eine Weiterleitung über einen kleinen Proxy, den man direkt in Docker aufsetzen kann.

Ausgangssituation: VPN-Gateway in virtualDSM

Für den Betrieb einiger Dienste, wie z.B. Storj-Nodes benötige ich auf meinem Server (Synology Diskstation) mehrere “Anschlüsse” mit unterschiedlichen /24-IP-Netzen.
Das realisiere ich über separate, statische IPs von feste-ip.net, die ich im Synology-DSM über VPN als Netzwerkschnittstelle einrichte. Leider lässt sich in jeder DSM-Instanz aber nur eine VPN-Verbindung gleichzeitig aufbauen.

Die Lösung ist, für jedes /24-Netz eine eigene DSM-Instanz in einer virtuellen Maschine (vdsm) laufen zu lassen (Achtung, je virtualDSM wird eine Lizenz benötigt, eine ist kostenfrei bei jeder Diskstation dabei). Dort kann dann jeweils eine feste-IP mittels VPN als Netzwerkschnittstelle eingestellt werden.

Über einen lokalen Proxy in der VM werden dann alle Anfragen an den Host weitergeleitet, auf dem die eigentlichen Storagenodes laufen (alle Storagenodes laufen auf einem Host).

Das Einrichten des Proxys geht wie folgt

Anbei eine Anleitung, wie ich die Weiterleitung in meinen VMs (virtualDSM) realisieren. Analog (nur mit weniger Klicki-Bunti ;)) lässt sich das Ganze auch mit normalen Linux Systemen in den VMs realisieren.

1. Docker Paket in der VM installieren

Grundlage für den Proxy ist ein docker-container, daher muss natürlich das Docker-Paket im DSM installiert sein.

2. TCP-Proxy-Image vom Docker-Hub laden

Wir nutzen das Docker-Image “hpello/tcp-proxy” vom Docker-Hub. Wir nehmen die latest-Version.
Also suchen wir das Image direkt über “Registrieren” und laden es herunter.

3. Startbefehl anpassen, Port eintragen und starten

Jetzt können wir das Image auswählen und “starten”.
Damit der Proxy auch den Port weiterleitet, müssen wir den Startbefehl anpassen. Der Startbefehl des Proxys “tcp-proxy” ist schon vorbelegt.
Wir ergänzen den Befehl um die folgenden Parameter:
– Die IP-Adresse/der Host zu dem/der weitergeleitet werden soll
– Der Port, zu dem weitergeleitet werden soll (der Port VON, auf dem gelauscht wird, ist default der gleiche, wie zu dem weitergeleitet wird)


Außerdem muss noch unter den Port-Einstellungen des Containers der Port eingestellt werden, den man weiterleiten möchte (Lokaler und Containerport sind identisch, Protokoll ist in der Regel TCP).

4. Mehrere Gateways aktivieren

Damit die Weiterleitung von unserer VPN-Verbindung, die als Netzwerkschnittstelle eingerichtet ist, funktioniert, müssen wir noch unter “Systemsteuerung” – “Netzwerk” – “Allgemein” auf “Erweiterte Einstellungen” klicken und “Mehrere Gateways aktivieren” anhaken.

Schreibe eine Antwort