Reboot bei falscher IP??

  • Hallo Leute,
    ich hab ein kleines anliegen. Wahrscheinlich ist das relativ leicht zu lösen, aber ich habe keine Ahnung wie.

    Gibt es die Möglichkeit dass der Raspberry Automatisch immer mal wieder seine Internet IP checkt und wenn dann statt einer 5.xxx.xxx.xxx vorne eine 95.xxx.xxx.xxx auftaucht selbstständig einen Reboot macht?

    Hat jemand eine Idee? würde mich über antworten freuen.

    Lg Raspinerd

  • Aus Interesse: Wofür benötigt man das?

    Fragen dazu:
    IP-Adressen bekommt der Raspi per DHCP?
    Mehrere IP-Adressen per Interface möglich?
    Mehrere Interfaces?

    Viele Grüße
    Olaf

    Wer nicht gekennzeichnete Rechtschreibfehler findet darf sie gerne behalten..

  • Hallo,

    würde mich auch interessieren, wofür man sowas braucht.. ansonsten kannst du die IP ja auch fest einstellen, damit diese nicht über DHCP vergeben wird?

    Gruß

  • Meine OpenVPN Verbindung (Raspberry als OpenVPN Client) wird manchmal nach 7-9 Tagen getrennt und der Raspberry hat dann wieder die Normale Internet IP. So lange geht dann aber das Internet nicht mehr, ist so gewollt und programmiert.

    Kurzer Reboot, alles wieder normal. Das hätte ich gerne automatisiert.

  • Hallo raspinerd,

    ein ähnliches Programm habe ich einmal geschrieben. Es nennt sich hostrepair und kann hier im Forum heruntergeladen werden - wenn Du es denn findest.

    Du musst das Programm aber auf Deine Bedürfnisse anpassen, da meine Version eine ausgefallene Netzwerkverbindung wieder herstellt (LAN, WLAN). Du kannst da aber auch Deine spezielle Geschichte berücksichtigen.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • N'Abend,

    Code
    import socket    
    import os
    
    
    ipadress = socket.gethostbyname(socket.gethostname())
    ipadress_str = str(ipadress)
    if ipadress_str.find("192.", 0) > -1:
           os.system("sudo reboot")

    hätte es nun so mit einem python script gelöst :D (ungetestet)

    bin mir aber nicht sicher, ob es mit socket.get[..] die korrekte IP zurückgeworfen wird..

    die "192." solltest du durch deine IP ersetzen, die der RasPi haben soll. Das Script würde ich über einen Cronjob einbinden und alle 5 min laufen lassen..

    Gruß
    Automatisch zusammengefügt:
    habe einen Fehler gefunden! Bitte die IF Bedingung prüfen! ("not" einfügen)


    N'Abend,

    Code
    import socket    
    import os
    
    
    ipadress = socket.gethostbyname(socket.gethostname())
    ipadress_str = str(ipadress)
    if not ipadress_str.find("192.", 0) < -1:
           os.system("sudo reboot")

    hätte es nun so mit einem python script gelöst :D (ungetestet)

    bin mir aber nicht sicher, ob es mit socket.get[..] die korrekte IP zurückgeworfen wird..

    die "192." solltest du durch deine IP ersetzen, die der RasPi haben soll. Das Script würde ich über einen Cronjob einbinden und alle 5 min laufen lassen..

    Gruß

    Einmal editiert, zuletzt von MaikPI (6. Juli 2015 um 21:34)


  • Meine OpenVPN Verbindung (Raspberry als OpenVPN Client) wird manchmal nach 7-9 Tagen getrennt und der Raspberry hat dann wieder die Normale Internet IP. So lange geht dann aber das Internet nicht mehr, ist so gewollt und programmiert.

    Wie OpenVPN verliert die Verbindung?
    Rein theoretisch kann man konfigurieren, dass OpenVPN die Verbindung wieder automatisch herstellt.

    Oder einfach OpenVPN wieder starten, wenn es die Verbindung nicht mehr gibt. Ist dann auch das Device (tun0) weg?
    Spart den reboot.

    Viele Grüße
    Olaf

    Wer nicht gekennzeichnete Rechtschreibfehler findet darf sie gerne behalten..

  • Ich will nur mal erwähnen das Linux kein Windows ist. Man muss Linux nicht für jeden Mist neu starten... Es gibt einige Tools um Netzwerk Schnittstellen neu zu initialisieren wie zB ifup/ifdown , oder einfach nur den Dienst (openvpn) neu starten...

  • Keine Ahnung warum Du rebooten willst. Ein openvpn restart tut es auch.
    Der folgende Code testet alle Minute ob es noch ein tun gibt (muss u.U. in tap geaendert werden) und restartet openvpn wenn nicht. Das noch in der /etc/init.d/rc.local in den Background mit & geschickt und gut ist.

    Bash
    #!/bin/bash
    while :; do
       sleep 60
       echo "Testing tun"
       if ! ifconfig | grep -q "^tun"; then
          service openvpn restart
       fi
    done

  • Ich Überleg nur was du mit Tap meinst?


    Es gibt verschiedene Möglichkeiten ein vpn aufzusetzen. Der einfachere und eher Normalfall ist dass ein tun Device erzeugt wird. Im anderen Falle ist es ein tap Device. Du kannst das ganze schnell testen mit

    Code
    ifconfig | grep "^t" | cut -f 1 -d " "
  • ja ist es, zeigt tun0.
    Sorry ich hab das Teil vor etwas über einem Jahr in Betrieb genommen. Ich hab keine Ahnung mehr wie ich das eigentlich gemacht hab. Und der Spruch "Never change a running System" ist mir heilig.

  • ... Ich hab keine Ahnung mehr wie ich das eigentlich gemacht hab...


    Geht mir auch immer wieder so. Deshalb schreibe ich mittlerweile irgendwelche Setupsteps auf meiner Webseite nieder. Dann kann ich immer wieder nachsehen bzw suchen wie ich es gemacht habe - und andere Webseitenbesucher profitieren i.d.R. auch davon :)
    Vorschlag: Wenn Du eine Webseite Dein Eigen nennst schreibe es dort doch auch nieder ;)

  • Kurze textuelle Beschreibung was das kleine Codefragment macht:

    1) Mit ifconfig wird nach dem tun Device gesucht
    2) Wenn es existiert ist alles OK
    3) Wenn es nicht existiert wird openvpn restartet

    D.h. das Script funktioniert nicht wenn tun nur seine IP verliert. Das kann man aber auch abfragen. Sind dann aber ein paar Zeilen mehr.

    Hast Du mal untersucht warum openvpn irgendwann nicht mehr funktioniert? Im VPN Log sollte man was finden. Dann kann man den Abbruch genauer im Script abfangen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!