WakeOnLan Broadcast

Eggert

Neuer User
Mitglied seit
20 Feb 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich kann in meiner 7240 leider nicht Port 9 an 192.168.178.255 weiterleiten, weil er diese IP nicht zulässt. Mit meinem alten Zyxel ging das.

Ich möchte meinen PC mit einem einfachen Skript per PHP starten können, aber es sieht so aus, als würde das nicht funktionieren.

Gibt es irgendwie Abhilfe und was für Unsicherheiten hat man, wenn man der .255 Ports zuweist?

Ich möchte mich nicht über ein Interface einloggen müssen, um zu starten. Das Risiko, dass jemand anderes den Link ausführt nehme ich gerne in Kauf.

Danke + Gruß
 
Wie überrede ich die FB (eventuell) mit Freetz, den Port DOCH weiterzuleiten?
 
Im internet findest Du mehrere Beiträge über "port forwarding to broadcast address". Z. B. auch hier: klick
 
Leider gibt es den Befehl vom Link auf der Fritz!Box nicht.

Gibt es eine andere Möglichkeit?

Kann man die interne WOL-Funktion irgendwie direkt ansprechen, also ohne Anmeldung in das Fernwartungs-Menü?
WOL muss so komfortabel wie möglich sein, sonst ist es für mich sinnlos, dann lasse ich den PC lieber einfach an (was doof wäre!)

Danke!
Eggert
 
Ähm, nein... :)
Dann funzt es mit dem :ip arpadd... ?
 
Das kann ich z. Zt. nicht sagen.
Ich sehe hier ein Widerspruch zwischen deiner Aussage im Beitrag #3 (betr. Freetz), und deinem Wunsch nach einem komfortablen WOL.
 
Ich habe ebenfalls lange nach einer Lösung gesucht, um die Fritz!Box (bei mir die Fritz!Box Fon WLAN 7050) dazu zu bringen, meinen PC über das Internet zu starten. Möglichkeiten wie Login über SSH oder Wake on Call, die ich per Google gefunden habe, waren mir zu umständlich für den täglichen Gebrauch. Daher habe ich mich selber rangesetzt und eine Lösung gefunden, um Broadcasting auf der Fritz!Box zu realisieren - ich hoffe, dass es dem ein oder anderen hilft.

Benötigt wird das Programm socat, mit welchem einfach alle Pakete, die per UDP auf Port 9 reinkommen, als Broadcast ins lokale Netz geschickt werden. Man kann sich mit Freetz ein Image erstellen, das socat bereits enthält, doch da der Speicher auf der 7050 scheinbar sehr begrenzt ist und ich kaum ein passendes Image erstellen konnte, habe ich socat selber kompiliert und zusammen mit den nötigen Libraries hochgeladen - damit kann ich die originale Firmware weiterbenutzen und muss nur ein paar Anpassungen in der ar7.cfg und der debug.cfg machen. Dieses Paket habe ich hier angehängt, das muss dann auf einen eigenen Server hochgeladen werden (ne, ihr dürft es nicht von meinem runterladen :p). Wer socat bereits mithilfe von Freetz auf der Box hat, braucht das natürlich nicht zu tun.


Also, kommen wir zum Wesentlichen:

Es muss zunächst dafür gesorgt werden, dass socat die Pakete auch bekommt und sie nicht vorbeirauschen. Dazu kommt folgende Portweiterleitung in die ar7.cfg unter "forwardrules":
Code:
"udp 0.0.0.0:9 0.0.0.0:9 0 # WOL";

Dann kommt folgendes Script ans Ende der debug.cfg:
Code:
sleep 120

cd /var/tmp
wget -qO wol.tar http://YOUR.SERVER.COM/wol.tar
tar -x -f wol.tar
rm wol.tar
chmod +x socat
LD_LIBRARY_PATH='/var/tmp' /var/tmp/socat -T2 -u UDP-LISTEN:9,fork UDP-DATAGRAM:192.168.178.255:9,broadcast
Der Sleep ist nur da, um sicherzugehen, dass eine Verbindung zum Internet besteht. Wer socat schon per Freetz hat, braucht nur die letzte Zeile in angepasster Form:
Code:
socat -T2 -u UDP-LISTEN:9,fork UDP-DATAGRAM:192.168.178.255:9,broadcast
In beiden Fällen gilt, IP eventuell an das eigene Netzwerk anpassen.


Das wird nun also gespeichert, dann noch ein Neustart der Box, und wenn alles gut gegangen ist, leitet die Box nun UDP-Pakete von Port 9 als Broadcast in euer Netzwerk weiter 8)

Viel Spaß damit :)
 

Anhänge

  • wol.tar
    1.5 MB · Aufrufe: 54
Zuletzt bearbeitet:
Bei 7050 könntest du sonst Downloader benutzen, wenn es nicht ins Flash passt. Mit dem Downloader könntest du dann gleich dein tolles Programm herunterladen, anstatt Klimmzüge mit debug.cfg und wget zu machen.

Das was du realisiert hast wäre schon paketwürdig für FREETZ, wenn es denn wirklich funktioniert. Dafür hätten wir allerdings eher Quellen als Binaries gebraucht. Denn deine Binaries laufen vermutlich nur auf einer 7050.

Außerdem, wofür liegen da noch die crypto-Libs bei? Und so setzt du das auf einer 7050 ein? Ist es nicht ein bisschen weit gegriefen, SSL wegen einer solchen Sache da einzusetzen?

Welche Pakete werden denn da über Port 9 versendet? Wie sprichst du dann deine PCs von extern an? Ich kenne das nur so, dass man als WOL-Parameter die MAC-Adresse benutzt. Gibt etherwake z.B. überhaupt die Möglichkeit neben MAC noch IP zu definieren? Oder wie funktioniert es dann?

MfG
 
Das was du realisiert hast wäre schon paketwürdig für FREETZ, wenn es denn wirklich funktioniert. Dafür hätten wir allerdings eher Quellen als Binaries gebraucht. Denn deine Binaries laufen vermutlich nur auf einer 7050.
Die Binaries sind einfach das kompilierte socat 1.6.0, welches auch mit Freetz mitgeliefert wird. Die Binaries habe ich wie gesagt erstellt, weil ich nicht extra ein ganzes Image erstellen wollte.

Ob das nun paketwürdig ist, weiß ich nicht, prinzipiell ist es ja nur eine Portweiterleitung auf die Box selber sowie ein Einzeiler mit socat . Bei mir funktioniert es :)
Außerdem, wofür liegen da noch die crypto-Libs bei? Und so setzt du das auf einer 7050 ein? Ist es nicht ein bisschen weit gegriefen, SSL wegen einer solchen Sache da einzusetzen?
SSL ist mit dabei, weil das Programm danach verlangt, wenn man es ohne startet - eigentlich hatte ich beim Kompilieren SSL deaktiviert, aber irgendwie kam es dann doch rein und ich war dann zu faul, es neu zu kompilieren und habe einfach die libcrypto mitreingepackt. Prinzipiell wird es aber nicht gebraucht. Aber doch, so setze ich es bei mir (erfolgreich) ein.
Welche Pakete werden denn da über Port 9 versendet? Wie sprichst du dann deine PCs von extern an? Ich kenne das nur so, dass man als WOL-Parameter die MAC-Adresse benutzt. Gibt etherwake z.B. überhaupt die Möglichkeit neben MAC noch IP zu definieren? Oder wie funktioniert es dann?
Das Prinzip ist ganz einfach: Über das Internet wird per UDP ein MagicPacket an den Router auf Port 9 geschickt (also ist die Ziel-IP die öffentliche IP, die man vom Provider bekommt). Das Paket enthält 6x die Folge FF (Hex) und die 16x die Mac-Adresse des PCs, der geweckt werden soll (siehe auch Wikipedia). Dieses Paket lässt sich mittels eines PHP-Scripts ganz einfach erstellen, solche gibt es auch schon zuhauf im Internet.
Das Script im Router fungiert nun eigentlich nur wie eine Portweiterleitung auf die Broadcastadresse: Es lauscht nach ankommenden UDP-Paketen auf Port 9 und leitet diese an die Broadcastadresse des LANs, ebenfalls per UDP auf Port 9, weiter. Dadurch erhalten alle PCs, die mit dem Router verbunden sind, das Paket. Nur der PC, dessen MAC-Adresse im Paket eingetragen ist, reagiert allerdings darauf und wird gestartet, sofern der PC entsprechend vorbereitet wurde und Saft hat. Der Broadcast ist eben nötig, weil der PC im ausgeschalteten Zustand keine IP hat, an die der Router das Paket schicken könnte. Aber solche Broadcasts sind mit herkömmlichen Bordmitteln der Fritz!Box eben nicht möglich, daher das Script ;)

Dadurch reduziert sich alles auf das Ansteuern eines PHP-Scripts im Web mit der IP-Adresse des Routers (bzw. einer DynDNS-Adresse) und der MAC-Adresse. Das lässt sich auch als Lesezeichen erstellen, somit ist der PC mit einem Klick gestartet, ganz ohne SSH oder Telefon :)
 
Zuletzt bearbeitet:
Danke für die Beschreibung. Vielleicht sollte man darüber nachdenken socat als eine Option in WOL-CGI-Paket anzubieten.
Auf der anderen Seite verstehe ich nicht, warum man deine Umwege über externe Server und PHP nicht lieber in WOL-CGI verwirklichen kann? Zugegeben, die jetzige WOL-CGI ist nicht direkt dafür zugeschnitten, per URL angesteuert zu werden (obwohl es rein theoretisch ginge), aber wer verhindert uns daran im Web-IF unter dem 82-Interface eine spezielle CGI anzulegen, die bestimmte URL-Anfragen in einer vereinfachten Form in die magic-pakete umwandelt?

MfG
 
Natürlich könnte man auch auf bestimmte URL-Anfragen ein eigenes MagicPacket mittels etherwake erzeugen, das wäre natürlich noch einfacher. Ich habe die Broadcast-Variante gewählt, weil dabei die Box nicht großartig modifiziert werden muss. Zudem muss dann die MAC-Adresse nicht extra aus der URL bzw. dem Paket extrahiert werden, wobei das bei einem CGI natürlich wesentlich einfacher zu bewerkstelligen wäre als auf Kommandozeilenebene.
Auf jeden Fall dachte ich, dass ich meine Erkenntnisse mal hier poste, da es ja anscheinend genug andere gibt, die vor demselben Problem standen bzw. stehen. Was nun für Freetz letztendlich zweckmäßiger ist, müsst ihr entscheiden ;)
 
Wie gesagt, auch auf eine 7050 kann man mit ein bisschen Mühe FREETZ drauf bekommen. Bevor man aber seine Mühe verschwendet, um FREETZ in eine 7050 reinzuquetschen (rechnen wir mal mit 20 Euro/Stunde), kann man fürs Geld wenigstens eine 7170 bei EBAY ersteigern. Da würde die Welt schon etwas anders aussehen, als bei einer 7050.
Ich sehe schon, dass du ziemlich experimentierfreudig bist. Da würde die Investition sich lohnen und wir hätten einen Sachkündigen mehr in unserer Gemeinde.

MfG
 
schuldigung wenn ich dass jetzt hier mal rauskrame, aber ich habe ein Problem ich kann die von Cillean angebotene Version nicht nutzen, da ich es nicht gestartet bekomme, denn es bricht immer mit der Fehlermeldung ab, das es die bibliothek libutil.so.0 nicht finden kann:
Code:
# /var/tmp/socat 
/var/tmp/socat: can't load library 'libutil.so.0'
Wie kann ich es bewerkstelligen, dass ich die Lösung verwenden kann.

Achso was ich noch sagen sollte, ist das ich nicht Freetz habe und auch nicht installen möchte, denn mein Vater möchte das nicht ...:eek::eek:
und ich habe die libs auch nirgents zum laden gefunden
 
Zuletzt bearbeitet:
hmm das kann auch sein...
aber ich dachte, dass es gehen würde das ich nur die eine lib bekomme und dann einfach das Programm benutzen kann. liege ich da falsch ?
also wenn du freetz hast kanst du mir mal bitte das senden ?
denn er hat mir immerhin keinen anderen Fehler rausgehaune pls
 
Du kannst dir das Ding durchaus selber bauen. Wie das geht, steht hier im Forum oder Wiki.
 
hmm jetzt habe ich mir nen image gemacht.
Aber eig wollte ich eig nur eine lib haben, wäre es möglich, dass du mir die lib schickst ?
 
Wenn Du vernünftig schreiben würdest, könnte man darüber nachdenken.

Aber wenn Du das Image schon fertig hast, dann hast Du auch schon die Library.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.