Update am 25.06.2024: Seit dem Schreiben dieses Artikels hat jemand ein Script dafür geschrieben, das ihr hier findet: https://github.com/K0p1-Git/cloudflare-ddns-updater . Danke für die Info an tesztszerverem.hu!

 

Bei einem Heimserver, wenn man den jeweiligen Dienst auch aus dem Internet erreichen möchte (z. B. OpenVPN), sollte man einen dynamischen DNS-Eintrag einrichten. Dieser Artikel beschreibt die kombinierte Einrichtung von Cloudflare und ddclient.

Zuerst erstellen wir einen ‘A’-Eintrag mit einer falschen IP-Adresse (um später zu sehen, ob das Update erfolgreich war) sowie mit einer TTL von 5 Minuten.

Auf dem Raspberry Pi laden wir einen Fork des Programms „ddclient„ herunter, ein Daemon, der im Hintergrund läuft und (im Standardfall) alle 5 Minuten die öffentliche IP-Adresse abfragt und die Änderungen über die Cloudflare-API dorthin pusht.

 

Installieren wir die erforderlichen Pakete:

apt-get install perl libdata-validate-ip-perl
apt-get install libjson-any-perl

Die neueste Version von ddclient finden wir hier. Diese herunterladen, entpacken und in den Ordner wechseln:

wget https://github.com/ddclient/ddclient/archive/v3.9.0.tar.gz
tar -xzvf v3.9.0.tar.gz
cd ddclient-3.9.0

Danach kopieren wir das ausführbare Programm an seinen üblichen Ort:

cp ddclient /usr/sbin/

Erstellen wir die erforderlichen Ordner, kopieren die Konfigurationsdateien und beginnen mit der Bearbeitung:

mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
vim /etc/ddclient/ddclient.conf

In der Konfigurationsdatei können wir die Mail-bezogenen Zeilen auskommentieren (mail= & mail-failure=), und am Ende Folgendes einfügen und mit unseren eigenen Daten ergänzen:

use=web
ssl=yes
protocol=cloudflare,
server=api.cloudflare.com/client/v4,
zone=teszt-elek.hu,
login=tesztelek@cloudflarefiok.com
password=CloudflareGlobalAPIkey
dynamischereintrag.teszt-elek.hu,

Den API-Schlüssel können wir auf der Cloudflare API-Token-Seite einsehen, es muss kein neuer Token erstellt werden, wir benötigen den „Global API Key“. Danach überprüfen wir, ob die Konfiguration korrekt ist, mit folgendem Befehl:

ddclient -daemon=0 -debug -verbose -noquiet

Danach richten wir den ddclient-Daemon als Systemdienst ein, damit er automatisch startet und seine Aufgaben im Hintergrund erledigt:

cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
update-rc.d ddclient defaults
systemctl start ddclient
systemctl status ddclient

Wenn wir damit fertig sind, überprüfen wir, ob der DNS-Eintrag auf der Cloudflare-Seite aktualisiert wurde?