Weiterleiten eines Magic Pakets (WOL)

Status
Für weitere Antworten geschlossen.

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Hallo,

weiß jemand wie/ob ich mit der Diskstation ein WOL Paket das an einem festgelegten Port ankommt per Ethernet bradcasten kann.

Also z.B. sowas:

192.168.1.3:9000 -> 192.168.1.255:9
(Disksation) (Netzwerk Broadcast)

Das eigentliche problem ist, dass mein Linksys Router (WAG300N) keine Portweiterleitung an die Broadcast-Adresse zulässt. Also meine Idee: Ich leite das Paket an die fixe IP von der Diskstation und die soll dann daraus einen Broadcast machen. Mit Linux drauf kann die ja eh fast alles, nur bin ich nicht so fit in sachen linux.

Telnet-Zugriff auf die Diskstation hab ich, da ich den lighttpd bereits installieren musste.

Ich wäre sehr dankbar wenn mir da jemand helfen könnte.
Gruß Ingemar
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Lösung

Also ich bin zu folgender Lösung gekommen

1. wakelan installieren
Rich (BBCode):
ipkg install wakelan

2. folgendes Script erstellen (/usr/bin/httpWakeUp)
Rich (BBCode):
#!/bin/sh
read request
code="${request#GET /}"
code="${code% HTTP/*}"
if [ "$code" = "wakeup" ]
then
        wakelan -b 192.168.1.255 -m 0018F3EAFC71 -p 9
fi
im Script müssen natürlich Brodcastadresse und MAC-Adresse angepasst werden
3. Rechte des Scripts anpassen:
Rich (BBCode):
chmod +x /usr/bin/httpWakeUp
4. Eintrag in /etc/inetd.conf anhängen
Rich (BBCode):
httpWakeUp stream tcp nowait root /usr/bin/httpWakeUp httpWakeUp

5. Eintrag in /etc/services
Rich (BBCode):
httpWakeUp  9321/tcp
Der port kann natürlich angepasst werden

6. inetd neustarten

7. Am Router Port-Durchleitung einrichten
z.B. so:
Externer Port: 9321
Interner Port: 9321
Protokoll: TCP
IP-Adresse: 192.168.1.30 (hier natürlich die IP der Diskstation)

8. durch Aufruf von http://domain.dyndns.org:9321/wakeup sollte nun ein Magic Paket verschickt werden
 

Bill

Benutzer
Mitglied seit
25. Nov 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
How To

Hallo Ingemar

Ich bin genau auf der Suche was du diesem Beitrag geschrieben hast. Mittels einer Webseite den Computer via WOL aufstarten.

Nun bin ich aber im Telnet nicht ganz so gut. Mir kommt das etwas Spanisch vor. Wie kann ich z.B. ein Script erstellen, wie wird das File für das Script erstellt oder wie wird ein directory erstellt. All das wäre notwendig um deinem Beschrieb folgen zu können.

Das IPKG WakeLAN konnte ich installieren. Weiter bin ich nicht mehr gekommen.

Könntest du mir dies etwas genauer "ausdeutschen". Vielen Dank

Gruss Bill
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Schau doch mal in unser Wiki. Da findest Anleitungen zur Kommandozeile.

itari
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Hallo Bill,

ich bin mittlerweile auf eine andere Lösung umgestiegen. Die ist vielleicht auch leichter zu installieren:

Da du das wakelan Paket bereits installiert hast, ist eigentlich das schwierigste schon geschafft.

1. Du must im Web-Frontend deiner Diskstation die Web-Station Aktivieren, damit ein Webserver auf der Station läuft. Nun solltest du eine weitere Dateifreigabe (\\<diskstation>\web) erhalten, evtl. musst du die Benutzerrechte noch anpassen.

2. Als nächstes enpackst du die angehängte zip-Datei (leider kann man Hier im Forum keine ZIPs hochladen, also einfach die Dateiendung in .zip ändern) und kopierst den gesamten Ordner auf die Diskstation in die neue Freigabe.

3. Nun muss noch die Konfigurationsdatei angepasst werden:

Benutzername und Passwort kannst du selbst festlegen.

Optional kannst du beliebig viele Rechner zum Aufwecken vorkonfigurieren. Dazu musst du eine beliebige Bezeichnung und die MAC-Adresse angeben (ohne Doppelpunkte oder Bindestriche!) . Evtl. noch die Broadcast Adresse deines netzwerks anpassen. Der Port ist in den meisten fällen 9.

conf.php:
PHP:
<?php
$username = "benutzername";
$password = "secret";
$defaultProfiles = array(
						array("name" => "Bezeichnung PC1", "mac" => "FFFFFFFFFFFF", "broadcast" => "192.168.1.255", "port" => "9"),
						array("name" => "Bezeichnung PC2", "mac" => "FFFFFFFFFFFF", "broadcast" => "192.168.1.255", "port" => "9")
					);
$wakelanCall = "/opt/bin/wakelan -b %s -m %s -p %s";
$logFileName = "log.txt";
?>

4. jetzt solltest du unter http://<deine Diskstation IP>/httpWakeUp/ das Tool benutzen können.

Wenn du noch fragen hast, dann meld dich einfach nochmal

Gruß, Ingemar
 

Anhänge

  • httpWakeUp.txt
    2,8 KB · Aufrufe: 66

_TokTok_

Benutzer
Mitglied seit
18. Nov 2007
Beiträge
1.310
Punkte für Reaktionen
0
Punkte
0
Hallo Ingemar,

super, dass Du diese Lösung hier geposted hast. Ich denke das könnte auch für eine Reihe anderer User interessant sein. Deshalb wäre es klasse, wenn Du diese Anleitung ins Wiki einstellen könntest.

LG

_TokTok_
 

Bill

Benutzer
Mitglied seit
25. Nov 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Wol

Hallo Ingemar

Das ist ja unglaublich wie schnell es hier geht. Vielen Dank für die Antworten.

Die Lösung II von Ingemar scheint mir sehr Sympatisch. Es klappt auch schon fast. Einzig wenn ich ein WOL Packet senden möchte gibt es ganz oben eine Fehlermeldung in Linie 43 des httpWakeUp.php Files. Wenn ich das File anschaue hat es aber nur 4 Zeilen. Wie ist die Fehlermeldung überhaupt möglich? Kannst du vielleicht das php File via TXT File nochmals posten?

Danke

Gruss Bill
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die Lösung II von Ingemar scheint mir sehr Sympatisch. Es klappt auch schon fast. Einzig wenn ich ein WOL Packet senden möchte gibt es ganz oben eine Fehlermeldung in Linie 43 des httpWakeUp.php Files. Wenn ich das File anschaue hat es aber nur 4 Zeilen. Wie ist die Fehlermeldung überhaupt möglich?
Zum ersten Teil: Der Wortlaut der Fehlermeldung wäre ganz aufschlussreich
Zum Zweiten: Über include() resp require() Statements können externe Dateien eingebunden werden. Diese "verlängern" dann den Code der einbindenden Datei um so viele Zeile wie eingebunden werden.
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Eigentlich sollte die Datei schon mehr als 4 Zeilen haben. Aber da PHP einen Fehler in Zeile 43 meldet hat sie das bei dir bestimmt auch. Kannst du mir mal die genaue Fehlermeldung mal Posten?

am besten auch deine Konfigurationsdatei (conf.php)

Prüf doch mal ob dein wakelan korrekt installiert ist:

Gib dazu mal per telnet folgenden Befehl ein
Rich (BBCode):
/opt/bin/wakelan -h
 

Bill

Benutzer
Mitglied seit
25. Nov 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Wol

Hallo Ingemar

Die Fehlermeldung lautet wie folgt:

Warning: exec() [function.exec]: PHP exec disable. in /volume1/web/httpWakeUp/httpWakeUp.php on line 43


Das conf.php hatte am Anfang auch nicht geklappt. Habe es dann aus deinem vorderen Tread rauskopiert und das Original conf.php damit überschrieben. Danach habe ich noch die Anpassungen gemacht.

Bei der Eingabe von /opt/bin/wakelan -h kommt die Hilfe Anleitung.

Der PC lässt sich via Telnet über den Befehl /opt/bin/wakelan -b 192.168.2.255 -m 0000000000 -p 9 starten (macadresse verändert).

Gruss Bill
 
Zuletzt bearbeitet:

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Da hab ich noch eine Kleinigkeit vergessen.

Du must per telnet die php.ini bearbeiten

Rich (BBCode):
vi /usr/syno/etc/php.ini

In der php.ini must du folgende Zeile ändern:


von:
Rich (BBCode):
safe_mode_execdir = /usr/syno/bin

nach
Rich (BBCode):
safe_mode_execdir =
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
und danach den httpd neustarten oder gleich die ganze Diskstation, damit die neue php.ini geladen wird
 

Bill

Benutzer
Mitglied seit
25. Nov 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Wol

Hallo Ingemar

Mit dem ersten Befehl kann ich der Inhalt der Datei php.ini sehen. Muss mich aber jetzt noch schlau machen wie ich diese Zeile editieren kann.

Danke für den Support.

Gruss Bill
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
vi ist für linux-Neulinge immer ein wenig kompliziert. Aber hier mal das wichtigste:

In den Einfügemodus wechseln: [einfg]-Taste
Einfügemodus verlassen: [esc]-Taste

Editor beenden ohne zu speichern: [esc]-Taste drücken und ":q!" (ohne Anführungszeichen) eingeben dann [enter]

Editor beenden mit speichern: [esc]-Taste drücken und ":x" eingeben dann [enter]
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0

Bill

Benutzer
Mitglied seit
25. Nov 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Wol

Hallo Ingemar und Co.

Vielen Dank für die Hilfe. Das WOL läuft nun Prima und entspricht so ziemlich meinen Vorstellungen. Kurz, Einfach und Wirkungsvoll.

Dank Euch habe ich innert weniger Stunden das WOL umsetzten können.

Gruss Bill
 

ingemar

Benutzer
Mitglied seit
15. Jul 2008
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
So falls das ganze heir noch jemanden interessiert: Ich hab dazu einen Wiki-Artikel verfasst.

Link ...
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Super! Ein ganz herzliches Dankeschön für den tollen Wiki-Artikel!

Trolli
 

h1otox

Benutzer
Mitglied seit
26. Jul 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallo, ich kriege folgende Fehlermeldungen wenn ich die Seite aufrufe, weiß jemand woran das liegt?

Rich (BBCode):
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /volume1/web/wakelan/conf.php:10) in /volume1/web/wakelan/index.php on line 4

Rich (BBCode):
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /volume1/web/wakelan/conf.php:10) in /volume1/web/wakelan/index.php on line 4
 

Chrunchy

Benutzer
Mitglied seit
05. Mrz 2007
Beiträge
470
Punkte für Reaktionen
0
Punkte
16
Hallo h1otox,
in Zeile 10 deiner Datei conf.php wird ein Output generiert.

Ich kenne die Dateien nicht, kann also nicht genau sagen wo der Fehler liegt, eine Ausgabe sollte dort aber wohl nicht erfolgen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat