DynDNS-Aktualisierung via Cronjob

logoKürzlich stelle ich mein Netz so um, dass meine FritzBox nur als ein Client des Netzes darstellt. Der Internetzugang wird nun über ein D-Link DSL321B aufgebaut und „vermittelt“. Einen Nachteil hat dieses Modem allerdings: Es bietet keine Möglichkeit, einen DynDNS-Zugang zu aktualisieren, wenn sich die öffentliche IP-Adresse ändert. Dieser und andere Gründe können das Interesse an einer alternativen Lösung wecken, von denen ich eine in diesem Beitrag vorstellen möchte.

 

 

Einleitung und Vorbereitung

In diesem Beitrag erstellen wir uns ein Bash-Script, dass durch einen Aufruf durch einen Cronjob regelmäßig die aktuelle, öffentliche IP-Adresse prüft und diese bei einer Änderung an vorher definierte Dienste mitteilt. In diesem Script nutzen wir hauptsächlich das Tool „curl„, um die zumeist HTTP-basierten Aktualisierungen zu „senden“. Dieses Tool installieren wir mit

 

Script erstellen

Nun erstellen wir ein neues Bash-Script namens „dyndns.sh„, gerne wie in allen anderen Beiträgen, im Ordner „/scripts/„. Dieses Script befüllen wir mit folgendem Inhalt:

 

Dem Script erlauben wir anschließend die Ausführung mit

 

DynDNS-Anbieter eintragen

An dieser Stelle müssen wir die Zeile 21 unseres Scripts editieren und den DynDNS-Anbieter unserer Wahl ein tragen. Dazu habe ich folgend ein paar Beispielhafte Aufrufe aufgelistet:

Hurrican Electric IPv6-Tunnel /usr/bin/curl -4 -s „https://ipv4.tunnelbroker.net/nic/update?username=NUTZERNAME&password=PASSWORT&hostname=TUNNELID“ > /dev/null
DynDNS.org /usr/bin/curl -4 -s „https://NUTZERNAME:PASSWORT@members.dyndns.org/nic/update?hostname=HOSTNAME&myip=$IPNOW“ > /dev/null
No-IP.org /usr/bin/curl -4 -s -u NUTZERNAME:PASSWORT „https://dynupdate.no-ip.com/nic/update?hostname=HOSTNAME“ > /dev/null
Strato /usr/bin/curl -4 -s -u NUTZERNAME:PASSWORT „https://dyndns.strato.com/nic/update?hostname=HOSTNAME“ > /dev/null
Eigener Dienst /usr/bin/curl -4 -s -u „https://dyn.eigenedomain.de/?domain=HOSTNAME&pass=PASSWORT“ > /dev/null

Werte wie „Nutzername„, „Passwort“ oder „Hostname“ müssen natürlich durch eigene Angaben ersetzt werden.

 

Cron-Job

Abschließend erstellen wir einen Cronjob, damit unser Update-Script alle fünf Minuten ausgeführt wird. Wir öffnen den Crontab-Editor durch

und fügen folgende Zeile ein: