In diesem How-To wird beschrieben, wie man einen DynDNS-Dienst für eine bei Cloudflare gehostete Domain einrichtet:
Vorraussetzungen:
– Linux Server mit installiertem Docker und Docker-Compose
– Docker Kenntnisse
– Eingerichtete Subdomain bei Cloudflare mit beliebiger IP-Adresse
Schritt 1:
Ein Cloudflare API-Token erstellen. Dazu im Cloudflare-Account auf folgenden Link klicken:
Jetzt die Vorlage zum „Zonen-DNS bearbeiten“ auswählen:
Anschließend mit den folgenden Einstellungen das API-Token erstellen:
Schritt 2:
Ein Docker-Compose Script erstellen:
mkdir ~/ddclient
cd /ddclient
nano docker-compose.yml
Folgenden Inhalt in die yml-Datei einfügen (Der Volumepfad und die Timezone können bei Bedarf angepasst werden):
---
services:
ddclient:
image: lscr.io/linuxserver/ddclient:latest
container_name: ddclient
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /home/ddclient/config:/config
restart: unless-stopped
Schritt 3:
Nun wird das Compose Script einmal gestartet:
sudo docker-compose up -d
Schritt 4:
Nun sollte im Config-Volume eine Config-Datei erstellt worden sein.
nano /home/ddclient/config/ddclient.conf
Nun kann der gesamte Inhalt der Datei gelöscht und durch folgende Zeilen ersetzt werden.
Die Zeilen „zone, password und die Domainnamen“ müssen natürlich angepasst werden.
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
pid=/var/run/ddclient.pid # record PID in file
ssl=yes # use TLS
use=web # get IP with website below
web='https://cloudflare.com/cdn-cgi/trace'
web-skip='ip=' # IP address above is after 'ip='
protocol=cloudflare, \
zone=mydomain.tld, \
ttl=1,
password='cloudflare-api-token',
mydomain.tld,subdomain.mydomain.tld
Schritt 5:
Jetzt kann der Docker Container neugestartet werden
sudo docker-compose down
sudo docker-compose up -d
Jetzt sollte die richtige IP-Adresse in den Einstellungen der Subdomain stehen und bei jeder Aktualisierung angepasst werden.
Troubleshooting:
Falls die IP-Adresse nicht aktualisiert wird, könnt ihr euch mit diesem Befehl die ddclient-Logs ausgeben lassen:
sudo docker logs -f ddclient
Quellen:
https://hub.docker.com/r/linuxserver/ddclient
https://www.davidschlachter.com/misc/cloudflare-ddclient