Raspberry Pi: Homeserver bei Netzwerkaktivität einschalten

Hoeze

Lieutenant
Registriert
Juni 2010
Beiträge
701
Mein alter PC spielt mittlerweile Homeserver und braucht dementsprechend viel Strom.
Weil der aber nicht die ganze Zeit laufen muss, will ich ihn in Standby schicken und bei Bedarf per WakeOnLan aufwachen lassen.

Allerdings hab ich mittlerweile relativ viele Dienste auf dem Server am Laufen und keine Lust, auf allen Clients entsprechende WoL-Routinen einzuprogrammieren.

Deshalb hab ich mir folgendes überlegt:
  1. Server geht schlafen
  2. Raspberry Pi übernimmt dessen IP und wartet auf einen Client, der sich mit dem Server verbinden will
  3. Pi lässt Server-IP fallen und schickt ein WoL-Paket an den Server.
Jetzt hab ich nur noch Bedenken wegen der Anfrage vom Client:
Optimaler Weise müsste der Pi ja irgendwie die Anfragen an den Server weiterleiten sobald dieser weider online ist, damit die Anfrage nicht verloren geht.

Hat jemand sowas schonmal gemacht?
Wie stelle ich das am besten an?
 
Zu verhindern dass eine Anfrage verloren geht wird recht hässlich, wenn es überhaupt möglich ist. Der Server braucht ja auch einiges an Zeit zum starten, bis er dann wirklich Anfragen übers Netzwerk beantworten kann.
Du könntest höchstens den Raspberry-Pi relevante Ports zum Homeserver forwarden lassen und dem R-Pi dann immer die Server-IP geben. Der eigentliche HomeServer hat dann eine andere IP und kommuniziert nur über den R-Pi. Ist aber auch keine Wunderlösung, denn die Anfragen werden da immer noch timeouten.
Wenn man auf den HomeServer zugreift hängt die Anwendung ja dann erstmal die Zeit, bis der HomeServer fertig gebootet hat.

Einfacher ist, wenn R-Pi von vornherein ne eigene IP kriegt und man dann über nen Web-If nur nen großen Knopf "Wake homeserver" hat, der Bescheid sagt sobald die Kiste fertig gebootet hat.

Wenn du Strom sparen willst kannst du stattdessen auch mal gucken ob du die CPU undervolten kannst, ggf. auch underclocken. Gucken, dass alle Festplatten herunterfahren im Leerlauf, man kein überdimensioniertes Netzteil hat, 1 Gehäuselüfter dürfte reichen, u.s.w.
 
Also Webinterface bringt mir nix, dann muss ich ja immer noch manuell "intervenieren".
Und auch wenn ich Strom spare wos geht, 10-20W Leerlauf kostet aufs Jahr gesehen ganz schön Geld.

Ports durchreichen geht leider gar nicht, weil der Pi ja nur ein 100Mbit Interface hat.
Und dann hab ich noch immer das Problem mit den verloren gehenden Anfragen.

Eigentlich sollte ich doch einfach die Requests puffern können und anschließend per TCP/UDP Spoofing an den Server schicken können, die Anfragen sind ja ursprünglich valide von einem Client gesendet worden.
Aber wie stell ich das an?
 
Doch 100Mbit/s reichen ausser du hast Glasfaser GBit Internet.

Nein die Requests kann man nicht einfach puffern weil sie ja auch Antworten erfordern und zwar innerhalb eines Timeouts. Dann hast du noch das Problem mit der Routerkonfiguration. In so einem Fall ist es sehr viel sinnvoller daß der RPi selbst z.B. das DHCP im Netzwerk übernimmt
 
Wenn es ein Windows Server ist, benutze einfach Light's Out
 
HominiLupus schrieb:
Doch 100Mbit/s reichen ausser du hast Glasfaser GBit Internet.

Nein die Requests kann man nicht einfach puffern weil sie ja auch Antworten erfordern und zwar innerhalb eines Timeouts. Dann hast du noch das Problem mit der Routerkonfiguration. In so einem Fall ist es sehr viel sinnvoller daß der RPi selbst z.B. das DHCP im Netzwerk übernimmt

Der Server spielt hauptsächlich Datei- und TV-Server im Heimnetz. Deswegen reichen 100Mbit / 2 einfach nicht.

Wir haben eine Fritzbox 4790 zu Hause. Deren DHCP wollte ich schon länger durch einen RPi ersetzen.
Allerdings sollte das doch gar nicht nötig sein, die Server-IP ist ja fest.

Bis der Server nach WOL wieder aktiv ist, sind max. 5s vergangen, eher weniger.
Wenn ich jetzt SSH auf den Server mache, sollte es doch ausreichen, das TCP-Paket an den eigentlichen Server weiterzuleiten.
Zumindest glaube ich nicht, dass im Fall von SSH der Timeout ein Problem wäre, dauert ja immer eine halbe Ewigkeit, bis SSH checkt, dass ein Host nicht erreichbar ist.

TheNam3less schrieb:
Ich weiß nicht, welchen Router Du daheim stehen hast, die Fritzboxen bieten allerdings eine WoL-Funktion in diese Richtung an.

Ich kann Dir allerdings nicht sagen, wie gut / zuverlässig das funktioniert.

Das ist eine nette Idee, vielleicht mach ich das für Dienste, die von außen drauf kommen müssen.
Allerdings hab ich in die Richtung bisher immer alles mit OpenVPN gelöst...

Hat aber immer noch die Problematik, dass die ersten Pakete wohl verloren gehen.
 
Zuletzt bearbeitet:
Hat aber immer noch die Problematik, dass die ersten Pakete wohl verloren gehen.
OpenVPN versucht es doch immer wieder einen Verbindungsaufbau, wenn ich mich nicht täusche. Da sollten die ersten Pakete kein Problem sein, zumindest bei OVPN.
Bleibt die Weckbarkeit von innen (vom Heimnetz aus).. Würde mich ehrlich gesagt für meinen Heimserver auch interessieren. :D
 
Zuletzt bearbeitet:
Hast du einen Linux Server, oder nutzt du eine Windows Version? Welche Clienten hast du,? Das wäre alles sehr hilfreich zu wissen.
Wie soll man dir weiterhelfen ohne Grundwissen?
 
Sternengucker80 schrieb:
Hast du einen Linux Server, oder nutzt du eine Windows Version? Welche Clienten hast du,? Das wäre alles sehr hilfreich zu wissen.
Wie soll man dir weiterhelfen ohne Grundwissen?


Tut mir leid, ich dachte das wäre selbsterklärend, nachdem wir hier im Linux-Forum sind:
Also ich habe einen Linux - Server (Debian Stretch), den will ich schlafen lassen.
Dazu noch ein Odroid C1 mit Ubuntu 14.04 / Raspberry Pi mit Raspbian, der die IP des Servers übernehmen soll, während dieser schläft.

Clients hab ich alles mögliche, ein RPi im Wohnzimmer mit Kodi/TVheadend + SSHfs drauf, meinen Linux-PC, der damit alles mögliche macht über SSH(fs), Kodi, ..., ein paar Windows-Kisten, die nur Web-Zugriff haben, ein paar Android-Smartphones, ...

Kurzum - überall WoL drauf zu machen ist mir definitiv zu umständlich, da schalte ich noch lieber per Hand ein und aus.

EDIT:

Ich hab jetzt noch einen anderen Ansatz entdeckt, für die, dies interessiert:
Man kann den Server in ein extra VLAN stecken und die Server-IP im default-VLAN an einen Router vergeben. Diesen lässt man dann den Traffic an den eigentlichen Server weiterleiten und bei Bedarf WoL-Pakete senden.

Funktioniert nur dummerweise ohne Freetz nicht. Deswegen mach ich das mit dem Odroid / Raspberry.

Der erste Schritt muss daraus bestehen, dass der Pi / C1 mitbekommt, dass der Server schlafen gegangen ist.
Das könnte ich mit Pings lösen + der Server informiert den Pi, dass er schlafen gehen will.

Aber das Problem ist und bleiben die verloren gegangenen Pakete:
Soll ich die einfach ignorieren und drauf hoffen, dass der Client es einfach nochmal versucht?
 
Zuletzt bearbeitet:
Das ist ja schon mal hilfreich, im Openwrt Forum gab/ gibt es ein Script für einen Router mit Openwrt, das so funktioniert. Müsstest du mal da fragen/suchen.
Da du es ja auf m Pi betreiben willst muss es halt angepasst werden. Mit Scripten kenn ich mich leider nur sehr gering aus. Hatte es aber mal auf einem Linux Cardserver laufen. Im Ubuntu Forum gibt es auch was dazu.
Ging irgendwie in die Richtung, wenn ein bestimmter Port im Netzwerk angesprochen wird, schickt der Router ein WOL Paket an den Server.
Unter Windows mit Light's Out, ist das alles easy. Unter Linux ist das alles mit viel Arbeit verbunden.
Leider, sonst hätte ich keinen WHS 2011 mehr, sondern wieder einen Debianserver
 
Zurück
Oben