WOL bei Zugeiff?

1 Antwort

Wie Du das WOL am besten realisierst, hängt natürlich davon ab, wie Du auf den Pi zugreifest. "Anfrage auf Pi" kann alles oder nichts sein. Du könntest das mit dem sogenannten Port Knocking machen. Dabei musst Du mit einem zu definierenden Protokoll auf einen oder mehrere Ports zugreifen, dabei wird ein Befehl ausgeführt. Dazu musst Du das Paket knockd installieren. Die Konfigurationsdatei könnte so aussehen:

nano /etc/knockd.conf
[openSSH]
    sequence    =22   
    seq_timeout = 5
    command     = /usr/bin/wakeonlan MAC_des_Servers
    tcpflags    = syn

Natürlich muss das Paket wakeonlan ebenfalls installiert sein. MAC_des_Servers ersetzt Du auch sinngemäß. Bei einem Zugriff per SSH auf den Pi wird ein Magic Packet gesendet, der Server startet. Natürlich kannst Du auch einen anderen Port für den Zugriff auf den Pi verwenden. Und natürlich gibt es sicher noch viele weitere Möglichkeiten, um den Server zu starten.

Die Weiterleitung des Ports erledigst Du am besten mit iptables, welches bei Raspbian zum Lieferumfang gehört:

Zunächst musst Du IP Forwarding aktivieren:

echo 1 > /proc/sys/net/ipv4/ip_forward

Dann konfigurierst Du iptables:

iptables -t nat -A PREROUTING -d IP_des_Pi -p tcp --dport 445 -j DNAT --to IP_des_Servers
iptables -t nat -A POSTROUTING -d IP_des_Servers -j SNAT --to IP_des_Pi

IP_des_Servers und IP_des_Pi musst Du natürlich durch die passenden IP-Adressen der beiden Geräte sinngemäß ersetzen. IP Forwarding und die Konfiguration von iptables überleben einen Neustart nicht. Du kannst die genannten Befehle in ein Shell-Script verpacken, welches beim Hochfahren des Pi aufgerufen wird. Oder aber Du installierst iptables-persistant und machst einen Eintrag in der /etc/sysctl.conf. https://itwelt.org/anleitungen-howto/linux-740817696/267-ip-forwarding-aktivieren-debian-etch und Google hilft da weiter.

Zum Abschluss noch ein Hinweis: Ich habe das nicht getestet, sondern nur aus dem Kopf nach bestem Wissen und Gewissen aufgeschrieben.