DDNSS per Script

Änderungsstand: 2023-05-29

Hier ein einfaches Script, ohne viel Aufwand:

  • Einstellungen
    • User Scrips
      • „ADD NEW SCRIPT“
      • Namen vergeben
#!/bin/bash
#
# Update DynDNS (DDNSS.de)
#
wget -q -O- "https://ddnss.de/upd.php?key=azfdfa2e30b59238gc845b4jhfbd85aj6&host=troubadix.myserver.de"
wget -q -O- "https://ddnss.de/upd.php?key=azfdfa2e30b59238gc845b4jhfbd85aj6&host=tidufix.myserver.de.de"

Natürlich die eigenen Werte eintragen 🙂 .

Schedule „Custom“ und 53***

Täglich um 03:05 wird das Script ausgeführt. Das reicht für mich im Normalfall, da mein Router um 03:00 Uhr seinen Reset setzt.

Änderungsstand: 2021-01-26

Wer z.B. Nextcloud über das Internet erreichbar machen möchte, benötigt wahrscheinlich als Erstes einen DynDNS-Dienst. DuckDNS bietet sich da in den meisten Fällen an. Ich zeige das Beispiel eines DynDNS-Dienst bei https://www.ddnss.de. Diesen Dienst kann man hervorragend in der Fritz!Box als DynDNS-Dienst verwenden. Doch was ist, wenn man keine Fritz!Box hat oder man das nicht auf seinem Router sondern explizit auf dem Server haben möchte? Dafür verwende ich ein automatisiertes Script auf meinem Unraid-Server.

Zuerst erstelle ich einen neuen Ordner unter Appdata. Entweder über SMB oder wie in diesem Beispiel im Terminal:

mkdir /mnt/user/appdata/dyndnss_script

Dann in der Unraid-Web-UI:

  • Einstellungen
    • User Scripts
      • „ADD NEW SCRIPT“
        • Namen vergeben (ich verwende ddnss.de)

Jetzt auf das Zahnrad des neu erstellten Scripts klicken und „Edit Script“ wählen. Dort verwende ich folgenden Code:

#!/bin/bash

KEYAUTH="UPDATE KEY"
HOSTNAME="DER ERSTELLTE HOSTNAME"
PFAD="/mnt/user/appdata/dyndnss_script"
ALLHOST="all" # Alternativ Hostname

DATUM=`date +%Y-%m-%d\ %H:%M:%S`
IP=`wget -q -O - https://www.ddnss.de/meineip.php| grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`
UPDIP=`cat $PFAD/updip.txt`
echo "Aktuelle IP=$UPDIP"

if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM - IP is gleich - KEIN UPDATE" >> $PFAD/log.txt
else
echo "$DATUM - Neue-IP: $ip / Alte-IP: $UPDIP - UPDATE!" >> $PFAD/log.txt
echo $IP > $PFAD/updip.txt
wget -q -O - 'https://www.ddnss.de/upd.php?key='$KEYAUTH'&host='$HOSTNAME'&host='$ALLHOST''>> $PFAD/log.txt
echo " " >> $PFAD/log.txt
echo "Update ..."
fi

Der „Update Key“ steht auf der eingeloggten Website von ddns.de. Die Werte in den Zeilen 3-6 müssen zwischen den beiden “ “ stehen! Die Pfadangabe in Zeile 5 muss identisch des erstellten Ordners sein. Wurden die Grün-markierten Zeilen angepasst, kann man das Script testen, indem man auf „Run Script“ klickt. Aber Achtung! Das Script muss EINMALIG, 2 Mal gestartet werden, da beim ersten Start des Scriptes die benötigten Dateien angelegt werden. Klickt man das zweite Mal auf „Run Script“ wird erkannt, dass alles Benötigte vorhanden ist und die aktuelle IP-Adresse wird angezeigt. Ab jetzt funktioniert das Script.

Nun kann man das automatisieren, indem man die Schedule einrichtet. Achtung! Ist der Intervall kleiner als 5 Minuten, entspricht das nicht den Richtlinien des Anbieters und der Account kann daraufhin gelöscht werden. Ich verwende in meinem Beispiel ein Intervall von 10 Minuten. Da bin ich jedenfalls auf der sicheren Seite.

*/10 * * *

Somit habe ich max. eine 10-Minuten Downtime, wenn eine neue IP-Vergabe des Routers getätigt wird. Damit kann ich leben, da mein Router zwischen 03:00 Uhr und 04:00 Uhr seine IP automatisch neu bezieht. Und da schlafe ich im Normalfall und greife sowieso nicht auf meine Nextcloud zu 🙂 .

Rein theoretisch würde sogar eine Schedule ausreichen, die von 03:00 Uhr bis 05:00 aller 8 Minuten ein Update startet. Aber das ist mir zu unsicher, da auch tagsüber das Internet ausfallen kann (z.B. Providerfehler etc.) und ich dann erst am nächsten Tag wieder Zugriff auf meiner Nextcloud bekäme. So würde das aussehen: */8 3-5 * *

Übrigens: Die Fritz!Box aktualisiert DynDNS ca. aller 30 Minuten, verwendet man diesen Dienst dort.

Quelle(n):

https://www.ddnss.de/info.php (CRON & Bash Script)

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten