Ä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
- „Files“
- „Compose“
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.