DynDNS mit Linux Homeserver (ddclient) und Strato nutzen.

Wer kennt es nicht – man möchte sich einen netten Homeserver für die eigene Cloud oder andere Projekte einrichten, und möchte auch von ausserhalb des eigenen Netzwerkes darauf zugreifen. Der eleganteste Weg ist die eigene .de-Domain. Aber wie kann man jetzt diese Domain auf den eigenen Server zu Hause umlenken? Mit dem ddclient und einem Hoster, der DynDNS anbietet, ist das gar kein Problem!

Strato bietet ab Hosting Basic (8 EUR / Monat) die Nutzung von DynDNS an. Im Folgenden erkläre ich, wie man relativ simpel den ddclient auf bspw. Ubuntu 22.04 einrichtet und nutzt.

Als erstes muss ddclient installiert werden:

sudo apt update
sudo apt install ddclient

Während der Installation wirst du aufgefordert einige Informationen und Details einzugeben. Das kannst du getrost ignorieren und immer nur auf weiter gehen. Wir passen die Config manuell an.

Nach der Installation bearbeiten wir die ddclient-Konfigurationsdatei mit einem Texteditor, z.B. mit Nano:

sudo nano /etc/ddclient.conf

Lösche den gesamten Inhalt und füge nun folgendes ein:

daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dyndns.strato.com/nic/update
protocol=dyndns2
login=DEIN_STRATO_BENUTZERNAME
password='DEIN_STRATO_PASSWORT'
domain.de, subdomain.domain.de, domain2.de

Für eine gleichzeitige Aktualisierung von IPv4 und IPv6 benutze folgende Konfiguration:
Danke an gaston für dein Feedback in den Kommentaren!

daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dyndns.strato.com/nic/update
protocol=dyndns2
login=DEIN_STRATO_BENUTZERNAME
password='DEIN_STRATO_PASSWORT'
domain.de, subdomain.domain.de, domain2.de

# IPv6
use=if, if=eth0
usev6=yes
protocol=dyndns2

Ersetzen Sie DEIN_STRATO_BENUTZERNAME und DEIN_STRATO_PASSWORT durch deine Strato-Anmeldeinformationen. Setze um das Passwort die einzelnen ‘Hochkommas’. Dies stellt sicher, dass der ddclient das Passwort korrekt interpretiert, insbesondere wenn es Sonderzeichen oder Leerzeichen enthält. In der letzten Zeile gibst du alle Domains und Subdomains (domain.de, subdomain.domain.de, domain2.de) mit Komma getrennt nacheinander an.

Speicher die Änderungen und schließe den Texteditor (in nano: Ctrl+X, Y, Enter). Anschließend Start den ddclient-Dienst neu:

sudo systemctl enable ddclient

Der ddclient überprüft alle 5 Minuten (300 Sekunden) deine öffentliche IP-Adresse, wie in der Konfigurationsdatei unter daemon=300 angegeben. Er sendet jedoch nur dann eine Aktualisierungsanfrage an Strato, wenn sich die IP-Adresse tatsächlich geändert hat. In anderen Worten: ddclient führt regelmäßig Überprüfungen durch, aber die DNS-Einträge bei Strato werden nur aktualisiert, wenn eine Änderung der IP-Adresse festgestellt wird.

Im letzten Schritt müsst ihr nun nur noch das DynDNS in Strato selbst aktivieren. Wechselt zu Domains > Domainsverwaltung > Auf's Zahnrad der entsprechenden Domain > Tab 'DNS' > DynDNS Verwalten. Hier könnt ihr das DynDNS dann an- und auschalten.

Kommentare


13 Kommentare

  1. Also zu aller erst mal sehr geil das ist genau das was ich suche für meine Strato DynDNS Adresse da mein Asus Router das nicht kann.

    Nun zu meinem Problem das ich habe.
    wenn ich den Status vom ddclient prüfe stehe ich mit folgender Fehlermeldung im Wald.
    ddclient.service: Can’t open PID file /run/ddclient.pid (yet?) after start: No such file or directory

    Ordner geprüft und die Datei ist vorhanden. Komisch ist auch das er auf das /run/ddclient.pid zeigt obwohl in der Config /var/log/ddclient.pid steht.

    1. Zuerst solltest du die Systemd-Service-Datei (/etc/systemd/system/ddclient.service oder /lib/systemd/system/ddclient.service) überprüfen. Es ist möglich, dass dort ein anderer Pfad für die PID-Datei angegeben ist, als du in deiner Konfiguration verwendet hast. Ändere diesen gegebenenfalls auf /var/run/ddclient.pid.

      Überprüfe auch die Berechtigungen im Verzeichnis /var/run, um sicherzustellen, dass ddclient die Datei dort erstellen kann.
      Wenn der Dienst immer noch versucht, auf /run/ddclient.pid zuzugreifen, könntest du als temporäre Lösung einen Symlink erstellen: ln -s /var/run/ddclient.pid /run/ddclient.pid.

      Vergiss nicht, die ddclient-Konfigurationsdatei noch einmal zu überprüfen, um sicherzustellen, dass dort keine widersprüchlichen Einträge sind. Nach Änderungen an der Systemd-Service-Datei musst du den Systemd-Daemon mit “sudo systemctl daemon-reload” neu laden und dann den Dienst mit “sudo systemctl restart ddclient.service” neu starten.

      Schau dir außerdem die Systemprotokolle und ddclient-Logs an, um weitere Hinweise zu finden (journalctl -u ddclient.service und cat /var/log/syslog | grep ddclient).

      Ich hoffe, das hilft dir, dein Problem zu lösen.

  2. Guten Tag,
    ich habe irgendwie das Problem das Strato die IP nicht aktuallisiert. Der ddclient an sich funktioniert, das testen führt auch zu folgender Nachricht:
    SUCCESS: ********.**: skipped: IP address was already set to ***.***.***.***. Die Angezeigte IP ist auch die aktuelle, allerdings wird die IP bei strato nicht aktuallisiert (Im Dashboard steht eine andere und die Website ist auch nicht erreichbar).

    Das ist meine Konfiguration.

    GNU nano 4.8 /etc/ddclient.conf
    # Configuration file for ddclient generated by debconf
    #
    # /etc/ddclient.conf
    deamon=300
    pid=/var/run/ddclient.pid
    protocol=dyndns2
    use=web, web=checkip.dyndns.com/, web-skip=’IP Address’
    ssl=yes
    server=dyndns.strato.com/nic/update
    login=*****
    password=’*******’
    *****

    1. Was mir auf die Schnelle auffällt ist, dass es daemon=300 sein muss, nicht deamon. Am Besten auch nochmal alles auf Tippfehler durchsehen. Versuch auch mal bei der Domain in Strato das DynDNS zu deaktivieren, den A-Record auf die aktuelle eigene IP zu stellen, kurz warten und dann DynDNS wieder aktivieren. Anschließend den Homeserver bzw den ddclient einmal neustarten.
      Prüfe auch mal vom Terminal aus, ob Strato vom Homeserver aus erreichbar ist. Probier es mit ping dyndns.strato.com und curl -v https://dyndns.strato.com

  3. Hallo und guten Abend,

    bei mir klappt das ganze nur mit einer Domain ich habe bei mehreren Domain bei Strato DynDNS aktiviert, sowie ich aber eine weitere als eine eintrage funktioniert das ganze nicht mehr bei mir.

    1. Das sollte aber eigentlich gehen. Wichtig ist eigentlich nur, dass jede Domain und jede Subdomain bei Strato als DynDNS eingetragen ist, und die Domains ohne www. in der config kommagetrennt aufgelistet sind: domain.de, subdomain.domain.de, andere-domain.de

      Was manchmal helfen kann ist, dass man bei Strato zunächst das DynDNS der Domain deaktiviert, den A-Record auf die eigene IP-Adresse stellt, und anschließend wieder auf DynDNS.

      Prüfe auch den Status vom ddclient mit: sudo /etc/init.d/ddclient status

      1. Ohne diese beiden Zeilen läuft es

  4. Hallo Guido, vielen Dank für die schnelle Antwort! Die Konfiguration für eine gleichzeitige Aktualisierung beider IPs, die du mir empfohlen hast, hatte ich bereits ausprobiert, leider hat sie bei mir nicht funktioniert. Stattdessen wurde nur die IPv6 aktualisiert. Ich habe dann Chatopenai konsultiert, der mir als Lösung empfohlen hat, nur Folgendes zu schreiben, da das zweimalige Schreiben der Anmeldedaten zu Konflikten führen könnte:

    # IPv6
    use=if, if=eth0
    usev6=yes
    protocol=dyndns2′.

    Ich habe das umgesetzt, und jetzt funktioniert es, beide IPs werden gleichzeitig aktualisiert.

    Das heißt, meine Konfiguration sieht so aus:

    # /etc/ddclient.conf

    daemon=300
    syslog=yes
    mail=root
    mail-failure=root
    pid=/var/run/ddclient.pid
    ssl=yes
    use=web, web=checkip.dyndns.com/, web-skip=’IP Address’
    server=dyndns.strato.com/nic/update
    protocol=dyndns2
    login=*********
    password=’**********’
    Mein_Domain

    # IPv6
    use=if, if=eth0
    usev6=yes
    protocol=dyndns2

    1. Prima, das freut mich, dass es geklappt hat, und vielen Dank für dein Feedback! Ich habe den Beitrag mit deiner Hilfe aktualisiert.

  5. Hallo, die vorgeschlagene Konfiguration ermöglicht nur die Aktualisierung der IPv4, nicht jedoch der IPv6. Wie sieht eine Konfiguration aus, bei der sowohl IPv4 als auch IPv6 simultan aktualisiert werden können? Danke im Voraus für Ihre Antwort

    1. dclient unterstützt die gleichzeitige Aktualisierung beider IP-Versionen, aber dies erfordert in der Regel zwei separate Konfigurationseinträge – einen für IPv4 und einen für IPv6.

      daemon=300
      syslog=yes
      mail=root
      mail-failure=root
      pid=/var/run/ddclient.pid
      ssl=yes

      # IPv4
      use=web, web=checkip.dyndns.com/, web-skip=’IP Address’
      server=dyndns.strato.com/nic/update
      protocol=dyndns2
      login=DEIN_STRATO_BENUTZERNAME
      password=’DEIN_STRATO_PASSWORT’
      domain.de, subdomain.domain.de, domain2.de

      # IPv6
      usev6=if, if=eth0
      # if=eth0 oder if=wlan0, je nach Netzwerkadapter
      server=dyndns.strato.com/nic/update
      protocol=dyndns2
      login=DEIN_STRATO_BENUTZERNAME
      password=’DEIN_STRATO_PASSWORT’
      domain.de, subdomain.domain.de, domain2.de

      Teste das mal, das sollte funktionieren.

  6. Hallo, ich stoße entweder auf das Problem, dass ddclient nicht auf die Datei zugreifen kann, oder, wenn ich den Weisungen im Netz folgend der Datei mit `sudo chmod 600 /etc/ddclient.conf` die entsprechenden Berechtigungen vergebe, diverse andere Permission denied Fehler auftreten.

    1. Die Datei “/etc/ddclient.conf” muss die Rechte für den Nutzer haben, unter dem der ddclient läuft.
      Unter welchem user läuft denn der ddclient und wem gehört die conf Datei?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.