ubuntuusers.de

Physischen Server automatisch starten wie mit inetd lokal?

Status: Gelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

hanswurst666

Anmeldungsdatum:
5. September 2016

Beiträge: 2

Ein Home-Server soll nicht 24/7 laufen, sondern nur bei Bedarf aufwachen.

Vorhanden ist ein kleiner OpenWRT-Router und ein Desktoprechner der als Server dienen soll. Die Idee ist jetzt den Server schlafen zu legen (S3-Modus) wenn er nicht gebraucht wird. Wenn nun aber ein Client versucht eine Verbindung aufzubauen, dann soll der Server vom Router automatisch wieder aufgeweckt werden (W-o-L) um anschließend die Netzwerkverbindung weiter zu leiten.

inetd und xinetd funktionieren zwar bei lokalen Server-Prozessen, jedoch habe ich keine Möglichkeit gefunden sie für Forwaring im Netzwerk zu verwenden und dabei ein Shell-Script einzusetzen.

Bisher dachte ich daran auf dem Router eine virtuelle Netzwerkschnittstelle einzurichten, welche für die Clients als Server-Adresse dient. Wenn dann ein Client versucht mit dem Server verbindung aufzunehmen soll der Router die Verbindung halten und prüfen (ping) ob der Server erreichbar ist und ihn ggf. aufwecken (Wake-on-LAN). Ist der Server dann erreichbar, soll die Netzwerkverbindung an den Server weitergeleitet werden.

Ich vermute mal, dass soetwas vielleicht mit iptables möglich ist, komme aber nicht auf die Lösung.

Die Konfiguration findet zwar hautsächlich auf einem OpenWRT-Router statt, aber es geht ja primär um die allgemeine Problemlösung.

Danke im Vorraus.

hanswurst666

(Themenstarter)

Anmeldungsdatum:
5. September 2016

Beiträge: 2

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Ich habe sowas noch nicht gemacht, denke aber nicht, dass das on-the-fly geht. Du kannst natürlich auf dem OpenWRT-Router eine Möglichkeit schaffen, deinen Desktop-Rechner zu starten (Webserver mit entsprechendem Skript oder per SSH). Aber dass eine Verbindung ankommt, und so lange gehalten wird bis dein Server bereit ist, halte ich für schwierig. Mir würde zumindest keine fertige Lösung einfallen.

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Wohnort: Österreich

Falls du programmieren kannst:

Mit nftables kannst du mit „ct state“ und „ip daddr“ startende Verbindungen zum Server abfangen. Dieses leitest du in den Userspace weiter. Im Userspace prüfst du ob der Server in den letzten X Minuten eine Anfrage erhalten hat. Wenn nicht sendest von dort ein WoL-Paket, wartest ~1 Sekunde und lässt das Paket dann durch. Wenn doch lässt du das Paket sofort durch.

Das ganze lässt du auf dem Router laufen.

Antworten |