Automatisches Wake On Lan mit Freetz bei Zugriff auf bestimmte IP

ipf.de

Neuer User
Mitglied seit
15 Apr 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hey Leute,

da ich ein Problem bzw. eine Vorstellung habe dich glaube lösen zu können in dem ich Freetz verwende habe ich mich mal hier im Forum angemeldet und
sage erst mal Hallo an alle!:huhu:

Folgendes: Ich habe ein Windows Home Server 2011 den ich aufgrund nicht mehr vorhanden Gründen nun nicht mehr 24 h laufen lassen muss. Hierzu habe ich auf dem Server das Add-In "Lights-Out" installiert, welches automatisch nach meinen Vorgaben den Server in Ruhezustand schickt, was auch sehr gut funktioniert. Nun gibt es für Windows-Clients die Möglichkeit diese so einzustellen, dass
automatisch bei Start des z. B. Laptops ein WOL-Signal an den Server gesendet wird und dieser dann eben hochfährt.

Nun habe ich aber auch nich Windows Clients, wie z. B. Apple TV 2 oder ein TV-Receiver die den Server als Streamingquelle verwenden.
Mein Gedanke/Wunsch ist nun, dass eben das Wake on Lan des Servers an einem zentralen Punkt, in diesem Fall meine FritzBox 7390, für alle Clients geregelt wird. Also wenn, egal welcher Client, über die
FritzBox auf den Server zugreifen möchte, soll die Fritzbox automatisch ein WOL-Signal mitsenden. Dazu sei gesagt, dass die Windows-Clients via LAN an die Fritzbox angeschlossen sind und die Apple TVs und
TV-Receiver via WLAN über die Fritzbox auf den Server zugreifen. Der Server ist ebenfalls mit LAN an der Fritzbox angeschlossen.

Nun habe ich schon etwas im Internet recherchiert, leider nichts passendes zu meinem Problem gefunden. Soweit ich das gesehen habe und auch schon durch das Fritzbox-Menü geklickt habe, ist das
mit der Standard-Firmware der Fritzbox wohl nicht möglich. Deshalb dachte ich gleich an Freetz. Bei DD-WRT habe ich eine ähnliches Problem gefunden, was dort über dnsmasq (oder so ähnlich) gelöst wurde.

Kann ich mein geschildertes Problem und die gewünschte Lösung mit Freetz realisieren? Wenn ja, welche Packages etc, benötige ich dafür? Bin Neuling auf dem Gebiet, deshalb bitte ich etwas um nachsicht,
wenn ich länger benötige etwas zu verstehen oder auch dumm Frage.

Schon einmal vielen Dank im Voraus für die Lösungsvorschläge und etwaige Hilfestellungen.

Gruß und Dank
ipf.de
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Die Frage kommt immer wieder mal. Ich weiß aber nicht, ob es schon eine Lösung dafür gibt.

Generell könnte es funktionieren, auf ARP-Pakete zu reagieren, die den Server suchen.
Wenn es bei DD-WRT schon eine Lösung dafür gibt, wäre es sinnvoll, dort mal nachzusehen, wie das funktioniert, und dies auf Freetz zu übertragen.
 

Spoon3er

Neuer User
Mitglied seit
2 Feb 2012
Beiträge
192
Punkte für Reaktionen
0
Punkte
16
Habe bei mir einen Debian Server laufen der nachts schlafen geht. Bevor der Server sich schlafen legt starte ich per ssh mein script auf der frtizbox:

Code:
#!/bin/sh


# Config
IP="192.168.XXX.XXX"  #IP des Servers
WOLMAC="XX:XX:XX:XX:XX:XX"  #Mac-Adresse Server
LOG="/var/media/ftp/uStor01/logs/poweron.log"
ABHOEREN="/var/media/ftp/uStor01/external/tcpdump" #pfad tcpdump

 
echo -e `date`":\tWakeUp-Script wurde automtaisch vom Server gestartet..." > $LOG
sleep 60

while !(ping -c 1 -q "$IP" > /dev/null); do                                     # Solange ping zum Server nicht erfolgreich                                                     
    $ABHOEREN -p -i eth0 -c 1 -n -l arp dst host "$ip" > /dev/null
    /usr/bin/ether-wake $WOLMAC                                                 # etherwake starten und WOL packen an die mac adresse schicken
     echo -e `date`":\tWOL Packet an $WOLMAC mit der IP: $ip gesendet" >> $LOG
     sleep 60                                                                    # 60 sekunden warten (ca die zeit, die der server zum hochfahren braucht
done                                                                             # solange kein ping erfolgreiche wieder von vorne
  echo -e `date`":\tPing an: $IP erfolgreich. Server up!!" >> $LOG                   # ping war erfolgtreich      
exit 0
Sobald ich mit einem meiner Streamer, Windows oder was auch immer auf den Server zugreifen möchte wird mittels tcpdump die request "who is 192.168.xxx.xxx" abgefangen und da der server nicht zu pingen ist ein wol-packet mittels etherwake (weil in busybox schon vorhanden) gesendet....
Funktioniert hier mittlerweilen seit einem Jahr ohne probleme. Benutze zZ eine Fritzbox 7390.
 

ipf.de

Neuer User
Mitglied seit
15 Apr 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hey Spoon3er, danke für dein Beispiel-Skript. Habe jetzt nach einer Recherche auch mehrere Skriptvorschläge gefunden, mit denen mein vorhaben wohl funktioniert.
Werde jetzt die Tage mich mal mit den einzelnen Skripts auseinander setzen und testen.

Verstehe ich das richtig, dass du jedesmal wenn der Server in "Stand-by" geht du dieses Skript starten musst? Lässt sich dies nicht im Dauerlauf betreiben?
Hast du auf der 7390 dann Freetz drauf und mit welchen speziellen Paketen?

Gruß und Dank
ipf.de
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Es sollte kein Problem sein, das Skript dauerhaft laufen zu lassen, dann eben in einer Endlos-Schleife und nicht nur bis zum nächsten Ping.
 

Spoon3er

Neuer User
Mitglied seit
2 Feb 2012
Beiträge
192
Punkte für Reaktionen
0
Punkte
16
Hi,

ja bei mir wird das script jedesmal gestartet, wenn der server sich ausschaltet. tcpdump verbraucht schon einiges an resourcen, deswegen wollte ich das script nur laufen lassen, wenn der server offline ist und somit die resourcen sparen wenn der server noch zu erreichen ist.
Installiert habe ich freetz trunk. Für tcpdump ansich brauchst du nur das standard paket tcpdump (minimal version langt) und falls du etherwake verwenden möchtest noch in der busybox etherwake auswählen. Wenn du nix weiter mit installierst sollte das auch noch ins image passen ohne external.

Code:
#!/bin/sh


# Config
IP="192.168.XXX.XXX"  #IP des Servers
WOLMAC="XX:XX:XX:XX:XX:XX"  #Mac-Adresse Server
LOG="/var/media/ftp/uStor01/logs/poweron.log"
ABHOEREN="/var/media/ftp/uStor01/external/tcpdump" #pfad tcpdump

 
echo -e `date`":\tWakeUp-Script wurde automtaisch vom Server gestartet..." > $LOG
sleep 60

while TRUE; do                                                                     # dauerschleife
if !(ping -c 1 -q "$IP" > /dev/null);  then                                   # wenn ping zum Server nicht erfolgreich                                                     
    $ABHOEREN -p -i eth0 -c 1 -n -l arp dst host "$IP" > /dev/null
    /usr/bin/ether-wake $WOLMAC                                                 # etherwake starten und WOL packen an die mac adresse schicken
     echo -e `date`":\tWOL Packet an $WOLMAC mit der IP: $IP gesendet" >> $LOG
fi
     sleep 60                                                                    # 60 sekunden warten 
done                                                                             # schleife zu ende
schnell mal runtergeschrieben, aber sollte eigentlich passen...
 
Zuletzt bearbeitet:

Solo0815

Mitglied
Mitglied seit
31 Aug 2006
Beiträge
279
Punkte für Reaktionen
0
Punkte
0
[Edit] Was ich vorher geschrieben habe, war quatsch! ;) [/Edit]

Werd ich mal probieren Danke
 
Zuletzt bearbeitet:

mrlcht

Neuer User
Mitglied seit
24 Aug 2005
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchten diesen Thread noch einmal aufleben lassen, ich bin ebenfalls an diesem Thema sehr interessiert. Zunächst einmal stellt sich die Frage ob das Skript funktioniert hat.

Sofern dies der Fall ist, stellen sich für mich weitere Fragen:
- Welche Pakete bzw. Tools müssen im Freetzimage enthalten sein ?
- In welche Datei muss der Code geschrieben werden ?
- Könnte das Skript geändert werden, dass nur bei bestimmten IP-Adressen im Netzwerk der Server gestartet wird ?

Vielen Dank.
 

fighting4fun

Neuer User
Mitglied seit
18 Sep 2013
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Sorry, dass ich diesen Thread wieder ins leben rufe, aber das Thema ist echt interessant. Leider funktioniert das letzt genannte Script nicht und läuft auf einen fehler da er "TRUE" nicht finden kann :S evtl kann mir ja einer von euch helfen.

Was ich möchte:
Wenn mein Fernseher oder Apple TV angeschalten wird soll der PC per WOL geweckt werden.
 

tb2668

Neuer User
Mitglied seit
27 Nov 2015
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Der Thread lebe auf!!!

Hallo Leute,

ich bin jetzt schon länger dabei die von Sponn3er geschilderte Methode umzusetzen.
Auf meiner Fritzbox 7270v3 habe ich Freetz mit den benötigten Paketen und Busybox-Erweiterungen installiert.

tcpdump würde ich gerne (vorerst) durch rc.costum ausführen, weis aber nicht genau wie ich dabei vorgehen muss. Wie mache ich das am besten?

Und wieso kann ich den beschriebenen Pfad "/var/media/ftp/uStor01/external/tcpdump" nicht finden?

Ziel ist es letztendlich, dass mein Server bei Anfragen (FTP, TeamSpeak, usw.) ein Wake on LAN Paket geschickt bekommt.

Grüße
tb2668