_DuckDNS

Änderungsstand: 2023-07-29

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.

Variante Docker:

Wenn noch nicht geschehen, den Hauptordner für die Compose-Dateien erstellen:

sudo mkdir /home/dockervolumes

Nun folgende Befehle im Terminal eingeben ( Ordner wird erstellt und die *.yml wird dort geöffnet).

sudo mkdir /home/dockervolumes/duckdns
cd /home/dockervolumes/duckdns && sudo nano docker-compose.yml

Folgendes dort einfügen (vorher Eure Werte überprüfen). Der Ordner appdata muss vorher angelegt sein. Der Unterordner portainer wird automatisch angelegt, wenn darauf Schreibrechte bestehen:

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 mit Strg-x, y, Enter

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

Anschließend die „yml“ starten mit

cd /home/dockervolumes/duckdns && sudo docker-compose up -d

Das Dockerimage wird heruntergeladen und der Docker mit der eingetragenen Konfiguration gestartet.

Wie testet man, ob alles soweit funktioniert?

Auf der Internetseite https://www.wieistmeineip.de/ kann man schauen, welche IP-Adresse gerade aus dem Internet zugewiesen ist. Diese IP-Adresse MUSS identisch mit der IP-Adresse in den DuckDns-Domains sein. Gibt es da Unterschiede, einfach paar Minuten warten und dann das Browserfenster im DuckDns aktualisieren oder auf „update ip“ klicken. Dann sollte eine Übereinstimmung erfolgen.

Fertig.

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