Remote Wake-on-LAN Server-Installation (Docker + Python)

Zurueck zum Verbindungsleitfaden

Diese Anleitung erklaert, wie Sie den Remote Wake-on-LAN (WOL) Server installieren und ausfuehren, der von Turn Off PC verwendet wird.

Dieser Server fungiert als Bruecke zwischen dem VPN und dem lokalen Netzwerk und ermoeglicht es Geraeten ausserhalb des Heimnetzwerks, Computer per Wake-on-LAN aufzuwecken.

Der Dienst ist als Python HTTP-Server implementiert, der in einem Docker-Container laeuft.


Was dieser Server tut

Der WOL-Server:


Voraussetzungen

Stellen Sie vor der Installation des Remote Wake-on-LAN Servers sicher, dass folgende Komponenten bereits auf dem Host-Geraet installiert und funktionsfaehig sind:

Das Host-Geraet muss:


Resultierende Projektstruktur

Nach Abschluss dieser Anleitung wird die Verzeichnisstruktur wie folgt aussehen:

wol-server/
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── wol_server.py

Schritt 1: Das Projektverzeichnis erstellen

Erstellen Sie ein Verzeichnis fuer den WOL-Server und wechseln Sie hinein:

mkdir -p ~/wol-server
cd ~/wol-server

Schritt 2: Das Python-Server-Skript erstellen

Erstellen Sie das Haupt-Python-Skript:

nano wol_server.py

Fuegen Sie folgenden Code ein:

from flask import Flask, request
import os

app = Flask(__name__)

@app.route("/wake", methods=["POST"])
def wake():
    data = request.get_json()
    mac = data.get("mac")

    if not mac:
        return "No MAC address provided", 400

    os.system(f"wakeonlan {mac}")
    return f"Magic packet sent to {mac}", 200

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

Speichern und beenden: Ctrl + O -> Enter Ctrl + X


Schritt 3: Die Python-Abhaengigkeitsdatei erstellen

Erstellen Sie die requirements.txt-Datei:

nano requirements.txt

Fuegen Sie die erforderliche Abhaengigkeit hinzu:

Flask==2.3.3

Speichern und beenden: Ctrl + O -> Enter Ctrl + X


Schritt 4: Das Dockerfile erstellen

Erstellen Sie das Dockerfile:

nano Dockerfile

Fuegen Sie folgenden Inhalt ein:

FROM python:3.11-slim

RUN apt-get update && \
    apt-get install -y wakeonlan && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt .
COPY wol_server.py .

RUN pip install --no-cache-dir -r requirements.txt

EXPOSE 5000

CMD ["python3", "wol_server.py"]

Speichern und beenden: Ctrl + O -> Enter Ctrl + X


Schritt 5: Die Docker Compose-Datei erstellen

Die Verwendung von Docker Compose vereinfacht die Verwaltung und stellt sicher, dass der Container automatisch neu gestartet wird.

Erstellen Sie die Datei:

nano docker-compose.yml

Fuegen Sie folgende Konfiguration ein:

version: "3"

services:
  wol-server:
    build: .
    network_mode: "host"        # Verwendet das Host-Netzwerk (erforderlich fuer Broadcast)
    cap_add:
      - NET_ADMIN               # Erlaubt das Senden von Broadcast-Paketen
    restart: unless-stopped

Speichern und beenden: Ctrl + O -> Enter Ctrl + X

Warum network_mode: host erforderlich ist Wake-on-LAN verwendet Broadcast-Pakete.

Das Standard-Bridge-Netzwerk von Docker kann Broadcast-Pakete nicht korrekt senden. Die Verwendung von Host-Networking ermoeglicht es dem Container:

Direkt auf das physische Netzwerk zuzugreifen

WOL-Pakete an das lokale LAN zu senden

Sich wie ein nativer Dienst zu verhalten


Schritt 6: Den Container erstellen und starten

Fuehren Sie aus dem wol-server-Verzeichnis heraus aus:

docker compose up -d

Docker wird:

Das Image erstellen

Abhaengigkeiten installieren

Den Server im Hintergrund starten


Schritt 7: Ueberpruefen, ob der Server laeuft

Laufende Container ueberpruefen:

docker ps

Sie sollten eine Ausgabe aehnlich der folgenden sehen:

CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS         PORTS     NAMES
4XXXXXX31ba4   wol-server-wol-server   "python3 wol_server.py"  4 minutes ago   Up 4 minutes             wol-server-wol-server-1

Wenn der Container laeuft, ist der Server aktiv.

Wie der Server verwendet wird Der Server hoert auf:

http://<SERVER_IP>:5000/wake Er erwartet eine HTTP POST-Anfrage mit JSON-Daten:

{
  "mac": "AA:BB:CC:DD:EE:FF"
}

Schritt 8: Remote WOL in Turn Off PC aktivieren (Mobile-App)

Oeffnen Sie Turn Off PC auf Ihrem Telefon

Gehen Sie zur Bearbeitung Ihres Geraets

Aktivieren Sie Remote WOL

Geben Sie die Raspberry Pi IP im Feld fuer die externe Server-IP ein

Speichern Sie die Konfiguration

Das war's. Remote Wake-on-LAN ist jetzt aktiviert.