Wake on Lan über VPN?
Hallo,
gibt es generell etwas zu beachten wie man ein wake on lan einrichtet?
Also ich denke mal im BIOS muss das eingestellt sein und der PC muss es unterstüzen.
Die Sache ist die, wir wollen alle PCs per script am Abend ausschalten.
Gewisse Leute müssen sich aber per VPN vom Home Office auf ihre Rechner im Office in der früh verbinden können.
Diese können sie natürlich nicht manuel einschalten und wir wissen nicht wann wer wie wo drauf muss/will.
Also ein "alle wake" in der früh würds nicht bringen.
Das weckt nur alle auf die garnicht geweckt werden müssen.
Die Sache ist die, was wenn ein PC in den sleep modus geht.
Wie weckt man so einen PC auf wenn er im hybernate oder sleep ist über VPN!?
Welcher Wake-Up befehl ist der sauberste?
gibt es generell etwas zu beachten wie man ein wake on lan einrichtet?
Also ich denke mal im BIOS muss das eingestellt sein und der PC muss es unterstüzen.
Die Sache ist die, wir wollen alle PCs per script am Abend ausschalten.
Gewisse Leute müssen sich aber per VPN vom Home Office auf ihre Rechner im Office in der früh verbinden können.
Diese können sie natürlich nicht manuel einschalten und wir wissen nicht wann wer wie wo drauf muss/will.
Also ein "alle wake" in der früh würds nicht bringen.
Das weckt nur alle auf die garnicht geweckt werden müssen.
Die Sache ist die, was wenn ein PC in den sleep modus geht.
Wie weckt man so einen PC auf wenn er im hybernate oder sleep ist über VPN!?
Welcher Wake-Up befehl ist der sauberste?
Please also mark the comments that contributed to the solution of the article
Content-ID: 3995454164
Url: https://administrator.de/contentid/3995454164
Printed on: December 13, 2024 at 11:12 o'clock
13 Comments
Latest comment
Wir haben das so gelöst:
um 20:00 läuft ein Skript, welches prüft welche Rechner an sind, speichert dies in einer CSV-Datei und fährt dann alle Rechner runter.
Morgens um 6 läuft wieder ein Skript, welches alle Rechner, die in der CSV-Datei stehen per WoL wieder hochfährt.
Die Mac-Adressen bekommt dieses Skript aus einer CSV, die von Lansweeper täglich exportiert wird.
WakeOnLan Powershellmodul
Zusätzlich haben wir eine Webseite, die per Powershell erstellt wird, auf der alle PCs mit Onlinestatus gelistet werden und von der man die PCs auch per WoL starten kann (Dahinter steckt ein hässliches Konglomerat aus Powershell, JS und Python)
um 20:00 läuft ein Skript, welches prüft welche Rechner an sind, speichert dies in einer CSV-Datei und fährt dann alle Rechner runter.
Morgens um 6 läuft wieder ein Skript, welches alle Rechner, die in der CSV-Datei stehen per WoL wieder hochfährt.
Die Mac-Adressen bekommt dieses Skript aus einer CSV, die von Lansweeper täglich exportiert wird.
WakeOnLan Powershellmodul
Zusätzlich haben wir eine Webseite, die per Powershell erstellt wird, auf der alle PCs mit Onlinestatus gelistet werden und von der man die PCs auch per WoL starten kann (Dahinter steckt ein hässliches Konglomerat aus Powershell, JS und Python)
Wir haben ein eigenes Web-Portal dafür in dem die User ihre zugewiesenen Maschinen nach SSO-Anmeldung per Button bei Bedarf wieder aufwecken können.
Damit die Maschinen aufgeweckt werden können müssen diese natürlich das Aufwecken in den entsprechenden States auch unterstützen S4/S5.
Cheers
certguy.
Damit die Maschinen aufgeweckt werden können müssen diese natürlich das Aufwecken in den entsprechenden States auch unterstützen S4/S5.
Cheers
certguy.
Geht alles per plain PHP und fsockopen um das Magic packet zu schicken. Das Frontend schickt die MAC dann an das PHP-Backend und das löst das Magic Packet aus.
Einfaches reduziertes Beispiel (hier ohne Filter wer welchen Rechner wecken darf)
Einfaches reduziertes Beispiel (hier ohne Filter wer welchen Rechner wecken darf)
<?php
function wakeUp($macHex, $broadcastAddress, $port = 9){
$sock = null;
try{
$macHex = preg_replace('/:/','',$macHex);
// check if mac is valid
if (!ctype_xdigit($macHex)) {
throw new Exception('Mac address invalid, only 0-9 and a-f are allowed');
}
$macBinary = pack('H12', $macHex);
$magicPacket = str_repeat(chr(0xff), 6).str_repeat($macBinary, 16);
$sock = socket_create(AF_INET,SOCK_DGRAM, SOL_UDP);
socket_set_option($sock,1,6,True);
if (socket_sendto($sock,$magicPacket, strlen($magicPacket),0,$broadcastAddress,$port) === false){
$ecode = socket_last_error($sock);
throw new Exception("Error sending magic packet, Error: [$ecode] - " . socket_strerror($ecode));
}
} finally {
if ($sock != null){
socket_close($sock);
}
}
}
$MAC = isset($_POST['MAC']) ? $_POST['MAC'] : '';
if ($MAC !== ''){
try{
wakeUp($MAC,"192.168.1.255");
echo "Magic packet sent for MAC: $MAC.";
}catch (Exception $ex){
echo "Error: " . $ex->getMessage();
}
}else{
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>WOL</title>
</head>
<body>
<form method="post">
<p>
<button name="MAC" type="submit" value="00:11:22:33:44:55">Wecke Rechner A</button>
</p>
<p>
<button name="MAC" type="submit" value="99:88:77:66:55:44">Wecke Rechner B</button>
</p>
</form>
</body>
</html>
<?php } ?>
Das Thema hatten wir doch neulich erst...
Wake On LAN Probleme im Firmenumfeld mit MAC Authentifizierung
Zum Thema routebares WoL ist hier alles beschrieben:
https://www.heise.de/ct/artikel/Wake-on-WAN-221718.html
@3803037559
Das PHP Script oben erzeugt übrigens einen "Permission denied" Socket Error. Siehe dazu auch hier.
Besser, weil konfigurierbar, ist das Teil hier und funktioniert auf Anhieb:
https://github.com/AndiSHFR/wake-on-lan.php
Wake On LAN Probleme im Firmenumfeld mit MAC Authentifizierung
Zum Thema routebares WoL ist hier alles beschrieben:
https://www.heise.de/ct/artikel/Wake-on-WAN-221718.html
@3803037559
Das PHP Script oben erzeugt übrigens einen "Permission denied" Socket Error. Siehe dazu auch hier.
Besser, weil konfigurierbar, ist das Teil hier und funktioniert auf Anhieb:
https://github.com/AndiSHFR/wake-on-lan.php
Diese Praxis mit VPN von Zuhause aus und dann RDP auf den Büro-PC ist leider auch bei uns sehr verbreitet. In 99% aller Fälle besteht aber keine Notwendigkeit für einen im Büro laufenden Computer, da nur Office-Apps und Fileserver-Zugriff erfolgt. Meist ist es weil "ich habe alle meine Dateien und Verknüpfungen auf dem Desktop habe".
Wenn der Anwender dann durch "Zufall" statt auf Abmelden auf Herunterfahren klickt, ist dann wieder das Geschreie groß, dass er seinen Büro-Computer nicht erreichen kann.
Wir werden diese "Zwei-Rechner-Kultur" sukzessive abschaffen und nur noch Laptops ausgeben. Für ganz spezielle Fälle haben wir VMs auf dem ESXi-Cluster laufen und ein RDP-Pool für ERP.
Wenn der Anwender dann durch "Zufall" statt auf Abmelden auf Herunterfahren klickt, ist dann wieder das Geschreie groß, dass er seinen Büro-Computer nicht erreichen kann.
Wir werden diese "Zwei-Rechner-Kultur" sukzessive abschaffen und nur noch Laptops ausgeben. Für ganz spezielle Fälle haben wir VMs auf dem ESXi-Cluster laufen und ein RDP-Pool für ERP.
Wenn's das denn nun war bitte nicht vergessen deinen Thread dann auch als erledigt zu markieren!
Zitat von @aqui:
@3803037559
Das PHP Script oben erzeugt übrigens einen "Permission denied" Socket Error.
Nö, hier nicht, indem Fall hat dein PHP Prozess zu wenig Rechte.@3803037559
Das PHP Script oben erzeugt übrigens einen "Permission denied" Socket Error.
und welche habe ich vergessen aufzulisten?
Aus reiner Netzwerksicht gibt es doch nur 2 Arten!! Einmal die auf einem reinen Layer 2 Frame via Mac Adresse (nicht routebar). Und einmal die mit einem IP Header. (meist UDP 9 (Discard) und routebar mit UDP Forwarder)Ob du diese Pakete mit PHP, SCCM oder wie auch immer erzeugst ist für die WoL Funktion an sich doch völlig irrelevant.
Vielleicht solltest du statt rumraten einmal einen Wireshark zur Hand nehmen der dir dann sofort die Augen öffnet!!
Mac:
UDP:
Du kannst die beiden unterschiedlichen Versionen kinderleicht und schnell einmal generieren und auf dein Ziel loslassen.
- Krame deinen Raspberry Pi aus der Bastelschublade und installiere die beiden Tools etherwake und wakeonlan (apt install ...)
- etherwake -b -i eth0 01:02:03:04:05:06 sendet ein nacktes Layer 2 WoL Paket im AMD Magic Packet Format.
- wakeonlan 01:02:03:04:05:06 sendet es mit einem UDP Port 9 Header und all Network Broadcast
- wakeonlan -i 192.168.178.255 01:02:03:04:05:06 sendet es mit einem spezifischen IP Netzwerk Broadcast im 192.168.178.0/24 Segment.
Mit letzterer Option, dem Netzwerk spezifischen Boradcast, sogar mit Test ob es über Routergrenzen mit einem UDP Helper geforwardet wird. 😉
Ich weiß noch nicht ob es einfach am Port-Forwarding liegt bzw ob es an der FW geblockt wird
Das solltest du aber wissen, denn das ist zwingende Voraussetzung das es über Routergrenzen funktioniert!- Du benötigst dafür einen UDP Helper auf dem Router Port für Port UDP 9 (discard)
- Im Regelwerk einer Firewall müssen diese Pakete dann passieren dürfen
Series: weitere Fragen aufgetaucht
Wake on Lan über VPN? (german)13