re:oyd (7): Dynamisches DNS@Pogoplug v2

Damit unsere Server bei wechselnder IP-Adresse (aufgrund der 24h Zwangstrennung) von außen erreichbar bleibt, bietet es sich an, einen Anbieter von DDNS Services zu nutzen. Der wohl bekannteste, DynDNS bietet leider keine kostenlosen Accounts mehr an. Es gibt aber Alternativen, etwa DNSdynamic. Glück hat, wer einen Router sein eigen nennt, der mit entsprechenden kostenlosen Anbietern zusammenarbeitet. Mein Netgear DGND3800B kennt leider bisher nur DynDNS. Eine Anfrage beim Support stellt zwar in Aussicht, dass ein zukünftiges Firmeware-Update weitere Anbieter hinzufügen wird, aber bis dahin muss Abhilfe geschaffen werden. Da der pogoplug als Server ja sowieso den ganzen Tag läuft, kann er auch gleich die IP-Adresse bei DNSdynamic auf dem aktuellen Stand halten. Dafür brauchen wir nur ein Account, ein bisschen bash-Programmierung und eine cron-job.

  1. Als erstes richten wir unseren Account bei DNSdynamic ein: Accoutname: „MEIN@ACCOUNT.DE“, Passwort: „PASSWORT“, URL: „royd.dnsd.me“ – ist doch gut zu merken ;-)
  2. Eine Datei myDNSdynamic.ip ohne Inhalt und eine Datei updateIP.sh mit folgendem Inhalt im Verzeichnis „/usr/sbin“ erstellen:
    #!/bin/sh
    FILE="/usr/sbin/myDNSdynamic.ip"; #DATEI IN DER DIE JEWEILS LETZTE IP GESPEICHERT WIRD
    MYOLDIP=`head -n 1 $FILE`;
    MYIP=$(wget -O - -q icanhazip.com); #AKTUELLE IP ABRUFEN
    if [ "$MYIP" != "$MYOLDIP" ]  #WENN SICH IP GEÄNDERT HAT, BEI DNSDYNAMIC AKTUALISIEREN
            then
            echo $MYIP > $FILE; 
            URL="https://www.dnsdynamic.org/api/?hostname=royd.dnsd.me&myip="${MYIP};
            wget -O - -q --user MEIN@ACCOUNT.DE --password PASSWORT $URL;
    fi 
    
  3. Die gerade erstellte Datei ausführbar machen:
    chmod +x /usr/sbin/updateIP.sh
  4. Und jetzt noch einen cron-job erstellen, der die Datei alle 5 Minuten aufruft:
    crontab -e

    Folgenden Inhalt einfügen:

    */5 * * * * /bin/sh /usr/sbin/updateIP.sh

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert