TP-Link Geräte automatisch neu starten

Netzwerkgeräte wie WLAN Router, Repeater oder Switches des chinesischen Herstellers TP-Link sind im Privatbereich sehr beliebt. Zum einen, da das Preis- Leistungsverhältnis sehr gut ist, zum anderen da sich viele TP-Link Geräte perfekt eignen, eine freie Router Distribution wie OpenWRT oder DD-WRT zu verwenden. Damit lassen sich Funktionsumfang sowie die Zuverlässigkeit/Sicherheit der Geräte deutlich erhöhen. In meinem heimischen Netzwerk finden sich mittlerweile ausschließlich TP-Link Geräte. Bis auf den managebaren Switch und einen WLAN Repeater den ich leider benötige, läuft alles auf OpenWRT. Bei den erwähnten anderen Geräten läuft die Stock Firmware. Da diese innerhalb des Netzwerkes sind, habe ich mit der halbgaren Herstellerfirmware keine großen Probleme. Was sich allerdings negativ bemerkbar macht, der Repeater verschwindet gelegentlich ins Nirwana und lässt sich nur noch durch einen Kaltstart zum Arbeiten motivieren.


Hier musste also eine Lösung her, damit dieser manuelle Schritt nicht mehr notwendig ist. Über die Firmware lässt sich jedoch kein automatischer Neustart definieren. Eine Zeitschaltuhr davor zu schalten kam für mich nicht in Frage. Es sollte schon etwas halbwegs „Elegantes“ sein. Dafür hat sich das Kommandozeilenwerkzeug „cURL“ angeboten, mit dem sich Daten über URLs verbreiten lassen. Beim Aufruf von cURL müssen ein paar Parameter übergeben werden. Um TP-Link Geräte damit neu starten zu können, muss ein Header mit einem definierten Referer angegeben werden. Damit wird gesagt „Woher komme ich“. Des Weiteren muss der administrative Benutzer samt Kennwort zum authentifizieren und die Ziel URL mit dem Reboot Flag übergeben werden. Folgender Befehl startet einen Repeater mit der IP „192.168.1.00“ dem Benutzer „admin“ und dem Passwort „PASSWORT“ neu.

curl -s --header "Referer: http://192.168.1.100/userRpm/SysRebootRpm.htm" -u "admin:PASSWORT" "http://192.168.1.100/userRpm/SysRebootRpm.htm?Reboot=Reboot" >/dev/null

Die erste Hürde ist somit erledigt und der Router lässt sich aus der Ferne neu starten. Allerdings soll ja der Fehlerfall, dass sich der Router verabschiedet gar nicht mehr auftreten. Also am besten das Gerät regelmäßig automatisch neu starten lassen. Dazu nutze ich meinen WLAN Access Point, auf dem ich per Cron Jobs starten kann.

crontab -e
# reboot wlan ap every day at 04:00 am
00 4 * * * curl -s --header "Referer: http://192.168.1.100/userRpm/SysRebootRpm.htm" -u "admin:PASSWORT" "http://192.168.1.100/userRpm/SysRebootRpm.htm?Reboot=Reboot" >/dev/null

TP-Link Reboot Repeater cURL

Die Zeit und das Intervall lassen sich natürlich an die eigenen Bedürfnisse anpassen. Ab jetzt ist dank Automatisierung wieder ein nerviger manueller Arbeitsschritt entfallen und die Zuverlässigkeit des Netzwerks wurde erhöht. Viel Spaß damit.