Kann ich einen Computer mit nur einem TCP-Paket ausschalten?

471
user7306345

Sie können also auf LAN aufwecken, denn die Ethernet-Kabel sind nicht nur für Daten gedacht, sie übertragen auch Stromstärke. Wenn sie direkt mit dem Motherboard verbunden sind, kann jemand ein Paket werfen und Ihren PC ausschalten. Und ist es unter Windows-Hosts einfacher?

1
Wake-on-LAN funktioniert mit magischen Paketen (keine * Ampere *), PoE (Power over Ethernet) versorgt ein Gerät buchstäblich mit Strom, muss es aber nicht einschalten (es versorgt nur Strom). Um ein Gerät auszuschalten, müssen Sie ein anderes (benutzerdefiniertes) Magiepaket verwenden. Im Fall von PoE muss die Stromzufuhr unterbrochen werden. GiantTree vor 7 Jahren 3
Dies ist tangential, aber im Anschluss an das LAN-Protokoll wird ein magisches Paket definiert als: Das magische Paket ist ein Broadcast-Frame, der irgendwo innerhalb seiner Nutzdaten 6 Bytes von allen 255 enthält (FF FF FF FF FF in hexadezimal), gefolgt von sechzehn Wiederholungen der 48-Bit-MAC-Adresse des Zielcomputers für insgesamt 102 Byte. Ich bin mir nicht sicher, woher der No-Amperage-Kommentar kommt, aber hoffentlich wird das für einige klarer. Argonauts vor 7 Jahren 0
Ich bin nicht sicher, ob Sie eine SSH-Verbindung in einem Paket herstellen können oder nicht, aber eine SSH-Verbindung gefolgt von "Herunterfahren -h jetzt" oder "Herunterfahren -s" für Windows würde funktionieren. Auch Powershell. Ich weiß nicht über ein Paket, aber wahrscheinlich in 2-5. 1. Benutzer senden / übergeben 2. Bestätigung empfangen 3. Herunterfahren cybernard vor 7 Jahren 0
@cybernard SSH ist normalerweise über TCP und TCP erfordert einen Handshake, der ein Paket vom Sender an den Empfänger namens SYN und dann ein Paket vom Empfänger an den Sender namens ACK erfordert. Dann ein Paket vom Sender zum Empfänger, von dem ich glaube, dass es als SYN ACK bekannt ist. Ich weiß nicht, ob oder in welchem ​​Umfang Sie SSH über UDP ausführen können. ZB http://superuser.com/questions/1127871/ssh-connection-under-udp Wie auch immer, SSH wird nicht in einem Paket ausgeführt. Es muss die Verschlüsselung aushandeln. Es hätte nicht einmal eine Chance, wirklich loszulegen. barlop vor 7 Jahren 0
Es könnte sinnvoller sein, dies mit einem UDP-Paket zu tun (da kein 3-Wege-Handshake erforderlich ist), aber möglicherweise erfordert WOL, wie ich vermute, Unterstützung im UEFI / BIOS sowie in der NI (Netzwerkschnittstelle). . barlop vor 7 Jahren 1

1 Antwort auf die Frage

1
Argonauts

Das Gegenteil von dem, worüber Sie fragen, ist sehr verbreitet - Wake On LAN (WOL). Um Ihre Frage zu beantworten, ist es viel einfacher, das zuerst zu erklären.

WOL

Für WOL müssen diese Funktionen vorhanden sein

  1. Das Netzwerk im ausgeschalteten PC muss über eine integrierte Treiberunterstützung verfügen.

  2. Das Motherboard (BIOS) muss einen Energiesparmodus unterstützen, der der NIC immer noch etwas Strom liefert, wenn der PC sonst ausgeschaltet ist.

  3. Eine zweite PC- / Netzwerk-Appliance muss sich im LAN befinden (für dieses vereinfachte Beispiel - Sie können dies über das Internet tun) und über Software verfügen, um ein spezielles Paket zu generieren.

Wenn der PC ausgeschaltet ist, erstellt der PC, der den Befehl zum Einschalten erteilt, ein magisches Paket:

Das magische Paket ist ein Broadcast-Frame, der irgendwo innerhalb seiner Nutzdaten 6 Bytes aller 255 (FF FF FF FF FF in hexadezimal) enthält, gefolgt von sechzehn Wiederholungen der 48-Bit-MAC-Adresse des Zielcomputers für insgesamt 102 Bytes.

Dieses Paket wird an alle im LAN gesendet. Jede Netzwerkkarte überprüft die MAC-Adresse darin. Wenn es eine Übereinstimmung gibt, weist das Motherboard das System an.


Mit einem UDP-Paket

Für deine Frage ist es viel einfacher. Der PC ist in Betrieb und MB / NIC müssen sich nicht über ein spezielles Paket informieren. Ein einfaches Programm oder ein Skript, das ein Programm wie nc verwendet, kann so eingerichtet werden, dass ein UDP-Paket an einem bestimmten Port mit vordefiniertem Inhalt überwacht wird.

Da UDP verbindungslos ist, ist kein Overhead (Transaktionspakete) beteiligt. Ein einzelnes Paket ist ausreichend. Was nach dem Erhalt passiert, kann alles sein - Herunterfahren, ein anderes Programm starten, den Inhalt der Festplatte löschen ...

Sie können dieses Paket von überall aus senden, vorausgesetzt, das richtige Routing ist vorhanden - es ist nur ein normaler Punkt, an dem eine UDP-Nachricht angezeigt wird.

Sie können auch und in Wirklichkeit MUSS Sicherheitsfunktionen in den Paketinhalt einarbeiten, um das Paket zu authentifizieren.

Es wäre eigentlich ein ordentliches Intro-Projekt zur Socket-Programmierung.

TCP-Lösung

Die Verwendung eines TCP-Pakets erfordert Overhead und regelmäßige Nachrichten, um den Socket am Leben zu erhalten, sodass dies nicht Ihren Anforderungen entspricht.

Sie können jedoch eine Firewall-Regel auf dem PC einrichten, indem Sie iptables verwenden, um das TCP-Paket zu identifizieren, und es in eine Form umwandeln, die als Auslöser zum Auslösen eines Programms dient, um die gewünschte Aktivität auszuführen. Ein bisschen kludgey aber völlig machbar.