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 http://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"
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.