Linux und Windows HelpDesk

Linux - mehrere DynDNS Anbieter nutzen (auch mit Fritzbox).

AVM wird es wohl nicht mehr begreifen oder will es nicht, dass es noch andere Anwender gibt als "Tante Hilde", die Ihren Router mit den vorkonfigurierten Kabeln von Ihrem Neffen anschließen und hinter die Couch schmeißen lässt und nichts weiter braucht, als eine Telefonleitung und ein wenig Internet per WLAN auf dem Tablet.
Das leidige Problem der nicht änderbaren Domain "fritz.box" ist nur eines aber eben so, dass ohne Umwege bis Heute nur eine DynDNS Umleitung eingerichtet werden kann.

Nun fragt sich manch einer womöglich, "wofür braucht man das"?
Als ein Beispiel sei dieses genannt. Man hat seit Jahren einen Account bei einem DynDNS Betreiber, möchte nun aber zu einem anderen Betreiber wechseln. Eine Möglichkeit ist, auf der alten Domain ein 301 Redirect auf die neue Domain einzurichten. Dafür müssen einige Zeit beide Domain weiter arbeiten, was auch für die Domain-Übertragung bei Google wichtig ist.

Geht es wie in diesem Beispiel nur um eine kurz- oder mittelfristige Sache möchte man evtl. nicht extra eine alternative Firmware auf seine Fritzbox aufspielen um mehrere Einträge vornehmen zu können.
Betreibt man einen Linux-Server, kann man DynDNS Update(s) recht einfach mit einem Script ausführen lassen.

Dazu erstellt man sich mit dem Editor seiner Wahl zunächst folgendes Script und speichert es z.B. als dyndns.sh ab.
Das Script ruft die externe IP ab und vergleicht, ob sie sich seit dem letzten Abruf geändert hat. Nur wenn dem so ist, wird ein Update beim jeweiligen Anbieter ausgeführt.

#!/bin/bash
# ---------------------------------------------------------------
# IP Update für dyndns Anbieter
# ---------------------------------------------------------------
# set -x
#
IPDATEI="/tmp/ip.txt"

UPDATE=false
IPNOW=$(/usr/bin/curl -s https://ipv4.icanhazip.com/)

if [ ! -f $IPDATEI ]; then
    UPDATE=true
else
    IPOLD=$(cat $IPDATEI)
    if [ "$IPOLD" != "$IPNOW" ]; then
        UPDATE=true
    fi
fi

if $UPDATE; then
    echo "$IPNOW" >$IPDATEI
    /usr/bin/curl -s 'https://www.ddnss.de/upd.php?user=[user]&pwd=[pass]&host=all&myip='"$(cat $IPDATEI)"
fi

Die hier angegebene Update-URL ist nur ein Beispiel von vielen. Diese muss natürlich für jeden Anbieter individuell angepasst werden. Jeder Anbieter gibt die nötige Update-URL für gewöhnlich in der Hilfe oder den FAQ an.
Möchte man mit diesem Script ein Update bei mehreren Anbietern ausführen, fügt man nach der Zeile mit der Update-URL die selbe Zeile natürlich mit abgewandelter URL ein weiteres mal ein.

Um nun dafür zu Sorgen, dass ein Update bei veränderter IP auch durchgeführt wird, muss man einen Cronjob erstellen.

# Crontab -e

Ich bevorzuge auch hier Einträge inkl. Kommentar um später noch zu wissen, welcher Job für was verantwortlich ist.

# IP-Update für dyndns.online
*/5 * * * * /root/dyndns.sh > /dev/null

Dieser Eintrag führt das Script alle 5 Minuten aus. Zeit, Pfad, Dateiname können natürlich individuell angepasst werden.
Der Zusatz " > /dev/null" sorgt dafür, dass beim Update keine Rückmeldungen per Mail versendet werden. Zum überprüfen ob alles funktioniert, sind die Nachrichten sicher sinnvoll, später braucht man sie nicht mehr.