Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Fritzbox per CS-Server neustarten

LuckyLongi

Ist gelegentlich hier
Registriert
21. April 2012
Beiträge
55
Reaktionspunkte
27
Punkte
38
Einen wunderschönen guten Abend wünsche ich :)

Ich hab einen Raspberry mit OSCAM hinter einer Fritzbox hängen. Der Zugriff der Clients läuft über eine DynDNS und Portfreigabe. Nun kommt es sporadisch immer wieder zu dem Fehler dass der CCAM-Port nicht auf den Raspberry durchgeroutet wird. Dies klappt erst wieder nachdem ich die Fritzbox neu gestartet habe.

Daher hab ich ein kleines Skript für einen cronjob zusammen geklappert das auf den offenen Port prüft. Ist er "geschlossen" soll die Fritzbox neu gestartet werden.

Wie könnte ich diesen Neustart realisieren?

Code:
#!/bin/bash

function checkPort {
   return `nmap ${1} -p ${2} | grep open > /dev/null`;
}

checkPort $1 $2
if [ $? -eq 0  ]; then
   echo Port $2 auf $1 ist offen
else
   echo Port $1 auf $1 ist geschlossen
fi
exit $?

Kann ich vom Raspberry irgendwie auf die Fritzbox zugreifen oder vllt das Skript direkt auf der Box laufen lassen?
 
Zuletzt bearbeitet von einem Moderator:
Der Befehl eine Fritzbox mit Freetz neu starten zu lassen ist
Code:
/sbin/reboot
 
Also ist die Lösung praktisch freetz :) Schau ich mir am Wochenende mal näher an!

Wobei mir an sich eine Lösung mit originaler Firmware lieber wäre...

Ideen?
 
Zuletzt bearbeitet:
Ist am einfachsten. Ausser du bekommst Telnet an, an deiner Box ohne Freetz
 
Das ist das gleiche "Problem" ist ne 7490 - also ohne "spezial Firmware" geht da nix :(

Vielleicht über das WEB-IF per PHP?

Oder CURL wie hier:
 
Zuletzt bearbeitet:
stad jedes mal die fritzbox neu zu starten , suche mal nach dem fehler wieso dein cs port blokiert wird
ich hab meine fritzbox seit mehr als halbes jahr nicht neu gestartet , wozu auch , und der cs port ist immer der selbe den ich eingetragen habe
 
Hehe, so schlau war ich auch :) Konnte nur leider keinen Fehler finden. Kommt zudem auch nur sporadisch. Mit einer anderen funzt es...

Hat sich erledigt, hab was passendes gefunden :)

Code:
#!/bin/bash

_BOXURL="http://fritz.box"
_USERNAME=""
_PASSWORD="GEHEIM"

_CHALLENGE=$(curl -s ${_BOXURL}/login.lua | grep "^g_challenge" | awk -F '"' '{ print $2 }')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE="${_CHALLENGE}-${_MD5}"
_SID=$(curl -i -s -k -d 'response='${_RESPONSE} -d 'page=' -d "username=${_USERNAME}" "${_BOXURL}/login.lua" | grep "Location:" | grep -Poi 'sid=[a-f\d]+' | cut -d '=' -f2)

# Box rebooten
echo 'Reboot in progress ... please allow up to 2 minutes for the box to come up!'
curl -s "${_BOXURL}/reboot.lua?sid=${_SID}&extern_reboot=1&ajax=1" >/dev/null

Vielleicht kann es ja noch jemand brauchen...
 
Zuletzt bearbeitet von einem Moderator:
Sporadisch und nicht reproduzierbar. Nach einem IP-Wechsel funzt alles wunderbar. Ein Watchdog der die DYNDNS prüft und ggf. zusätzlich zur Fritzbox aktualisiert läuft auch auf dem Raspberry.

Ein manuelles Update der IP, ein OSCAM oder Raspberry Neustart oder Reconnect der Fritzbox behebt das Problem nicht. Nur ein Neustart der Box.
 
Hat sich erledigt, hab was passendes gefunden :)

Code:
#!/bin/bash

_BOXURL="http://fritz.box"
_USERNAME=""
_PASSWORD="GEHEIM"

_CHALLENGE=$(curl -s ${_BOXURL}/login.lua | grep "^g_challenge" | awk -F '"' '{ print $2 }')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE="${_CHALLENGE}-${_MD5}"
_SID=$(curl -i -s -k -d 'response='${_RESPONSE} -d 'page=' -d "username=${_USERNAME}" "${_BOXURL}/login.lua" | grep "Location:" | grep -Poi 'sid=[a-f\d]+' | cut -d '=' -f2)

# Box rebooten
echo 'Reboot in progress ... please allow up to 2 minutes for the box to come up!'
curl -s "${_BOXURL}/reboot.lua?sid=${_SID}&extern_reboot=1&ajax=1" >/dev/null

Vielleicht kann es ja noch jemand brauchen...

Ich denke nicht das dieses Script noch mit aktuellen Fritz OS Versionen läuft.
*.lua gibt's da nicht mehr.
 
Also dann doch mehr während eines IP wechsels?
Mir ist schon mal aufgefallen, das Client Geräte schneller neu verbinden, die die DNS von Opendns (208.67.222.222) verwenden. Selbst googls 8.8.8.8 liest noch sehr lange aus dem Cache. Wohl möglich gibts da ein Schupser. Testet mal.
 
Zuletzt bearbeitet von einem Moderator:
Ne ne, da hab ich mich wohl etwas unglücklich ausgedrückt :)

Der normale Zwangs-CUT ist so gegen 4:45 Uhr. Das Update der IP beim DynDNS-Dienst durch die Fritzbox klappt auch. Mein Watchdog muss da nicht eingreifen bzw. meldet keine Probleme.

Der Port wird auch durchgeroutet und falls ein Client online sein sollte, bekommt er auch seine CCWs. Hab das vor der Arbeit mehrfach selbst geprüft :)

Der Fehler oder auch das Problem tritt irgendwann im Laufe des Tages auf und lässt sich erst dadurch beheben dass ich nach Feierabend die Fritzbox neu starte.

Rufe jetzt erstmal das Portcheck-Script per cronjob auf und lass es loggen wenn der Problem auftritt.

Ein neu flashen der Fritzbox und ein Wechsel des LAN-Ports hatte leider nichts gebracht :(

Also dann doch mehr während eines IP wechsels?
Mir ist schon mal aufgefallen, das Client Geräte schneller neu verbinden, die die DNS von Opendns (208.67.222.222) verwenden. Selbst googls 8.8.8.8 liest noch sehr lange aus dem Cache. Wohl möglich gibts da ein Schupser. Testet mal.

Hab die DNS eben mal eingetragen... wenn jetzt die nächsten Wochen das Problem nicht mehr auftritt, dann war dass die Lösung :)

Wie gesagt, Fehler kommt sporadisch. 1x in der Woche, 1x im Monat oder auch nur 1x im Jahr ;)
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben