DynDNS-Dienst „DuckDNS“

Änderungsstand: 2023-07-05

Der Ordner appdata wurde bei mir mittels Sharerootfs eingebunden. Deshalb kann ich diesen direkt als /appdata/ verwenden. Wer den Ordner appdata auf die ext. Platte legt, muss dann dort den kompletten Pfad zur Festplatte eingeben!

Der Dienst DuckDns sorgt dafür, dass der Server aus dem Internet immer mit dem Domainnamen erreichbar ist. Auch nach einer Trennung des Internets und einer Neuvergabe der Internet-IP-Adresse durch den Router. Aller 5 Minuten wird die IP-Adresse abgecheckt. Es kann also passieren, dass im schlimmsten Fall Euer Server nach einem IP-Reset, 5 Minuten nicht erreichbar ist. Damit kann man leben.

Zuerst wird ein DuckDNS Account benötigt, den man hier registrieren kann. Nach der Registrierung hat man die Möglichkeit, bis zu 5 Domains anzulegen. Mind. eine angelegte Domain und das Token werden später benötigt.

Jetzt 2 Möglichkeiten, DuckDNS einzurichten. Einmal mit einem Docker und einmal über einen Cronjob.

Hierbei nur eine Variante verwenden!

Variante Docker:

  • „Dienste“
    • „Compose“
      • „Files“
        • + Erstellen

Name: duckdns

Folgendes im Feld „File“ eingeben:

version: "2"
services:
  duckdns:
    image: lscr.io/linuxserver/duckdns:latest
    container_name: duckdns
    environment:
      - PUID=1001
      - PGID=1000
      - TZ=Europe/Berlin
      - SUBDOMAINS=troubadix
      - TOKEN=das_erstellte_duckdns_token
      - LOG_FILE=true
    volumes:
      - /appdata/duckdns:/config
    restart: unless-stopped

Speichern –> Konfigurationsänderungen anwenden –> Ja

duckdns selektieren und „up“ klicken (Pfeil nach oben)

Wenn fertig, schließen.

.

Quelle: https://hub.docker.com/r/linuxserver/duckdns

Zur Erklärung.

  • Zeile 7: Die UID
  • Zeile 8: Die Gid
  • Zeile 10: Die angelegte Domain
  • Zeile 11: Das Token ist auf der Login-DuckDNS-Webpage ersichtlich
  • Zeile 14: Das Konfigurationsverzeichnis vom erstellten DuckDNS-Docker

Es erfolgt nach ca. 1 Minute ein Abgleich der IP-Adresse, welche im Benutzermenu von DUCKDNS auch angezeigt wird, wenn man das Browserfenster aktualisiert.

Variante Cronjob:

Login im Terminal als root (Raspi-User setzen hier ein sudo su nach dem Login)

apt install curl -y
cd && mkdir duckdns
cd && cd duckdns && nano duck.sh

Folgendes eintragen. troubadix mit der eigenen Domain und die X mit dem Token ersetzen.

echo url="https://www.duckdns.org/update?domains=troubadix&token=xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx&ip=" | curl -k -o ~/duckdns/duck.log -K -

Strg-x, y, Enter

chmod 700 duck.sh
crontab -e

Gegebenenfalls die 1 drücken, für nano als Editor

Folgendes am Ende der Datei eintragen (# am Ende nicht vergessen):

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
#

STRG-x, y, Enter

Zum Testen des Scriptes folgendes eingeben:

./duck.sh

Erscheint nach dem folgendem Befehl ein OK, hat es funktioniert. KO bedeutet Fehler!

cat duck.log

Es erfolgt auch umgehend ein Abgleich der IP-Adresse, welche im Benutzermenu von DUCKDNS auch angezeigt wird, wenn man das DuckDNSBrowserfenster aktualisiert oder auf „update ip“ klickt.

Nachzulesen ist das auf der DuckDNS-Website. Dort in der oberen Leiste auf „install“ und „linux cron“ wählen. Unten die Domain eintragen (Dropdownmenu) und die volle Beschreibung wird angezeigt. Dort wäre dann auch der Befehl für die Script-Datei, zum Kopieren, vorhanden.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten