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.