Mehr als nur eine DynDNS-Adresse?

Problemstellung

Das Netzwerk soll von außen erreichbar sein, aber aus Gründen, nicht nur über eine Subdomain. Das könnte zB. dann der Fall sein, wenn man privat einige Seiten hosten möchte. Oder wenn nach einer Umstellung nicht gleich alle alten Installationen abgehangen werden dürfen.

Das eigentliche Problem ist dabei meist die beschränkte Einstellmöglichkeit des Routers. Zwar ließe sich theoretisch auch bei der Fritzbox mit einer Manipulation des Configfiles noch etwas mehr raus holen, doch ist das auch Updatesicher? Nicht nur das es ein Update überlebt, sondern sich dann auch noch editieren lässt… Zu viel Unsicherheit für einen Service, der ggf. dann ausfällt, wenn man ihn gerade dringend braucht, oder am wenigstens dran kommt ums zu fixen (meist eher zum Urlaubsbeginn als wenn man eh gerade dran arbeitet).

Problemlösung

Das ganze habe ich bei mir über ein Docker mit dem Image qmcgaw/ddns-updater gelöst:

  • Image auf die SD-Karte (Raspberry Pi Imager, etwas ohne Desktop)
  • Raspberry Pi damit hochfahren (reicht schon ab 2B)
  • Folgendes Script ablegen und ausführen:
!/bin/bash

# Updaten etc.
sudo apt update && sudo apt upgrade -y && sudo autoremove -y

# Docker installieren
sudo apt install docker-compose -y


wfolder="/opt/portainer"
# Install Portainer
# Ordner erstellen
sudo mkdir $wfolder

# Compose-Datei anlegen und füllen
cd $wfolder
sudo sh -c "echo 'version: \"3\"
services:
  portainer:
    image: portainer/portainer-ce:latest
    ports:
      - \"9009:9009\"
    environment:
      TZ: \"Europe/Berlin\"
    volumes:
      - \"$wfolder/data:/data\"
      - \"/var/run/docker.sock:/var/run/docker.sock\"
    restart: unless-stopped
volumes:
  data:' >> ./docker-compose.yml"

# Docker Container Starten
sudo docker-compose up -d

wfolder="/opt/ddns-updater"
# Install DDNS-updater
# Ordner erstellen
sudo mkdir $wfolder

# Compose-Datei anlegen und füllen
cd $wfolder
sudo sh -c "echo 'version: \"3\"

services:
  ddns-update:
    container_name: ddns-updater
    image: qmcgaw/ddns-updater:latest
    ports:
      - \"8000:8000/tcp\"
    environment:
      TZ: \"Europe/Berlin\"
    volumes:
      - \"$wfolder/data:/updater/data\"
    restart: unless-stopped' >> ./docker-compose.yml"

# Docker Container Starten
sudo docker-compose up -d

Die Konfiguration ist einfach beschrieben und muss nur noch in den passenden Ordner gelegt werden. Spätestens nach dem Neustart des Dockers läuft die Aktualisierung und ist über <IP des Servers>:8000 einzusehen:

DomainHostProviderIP versionUpdate statusSet IPPrevious IPs (reverse chronological order)
DomainnameFreier NameAnbieterIPv4/v6Aktuell oder FehlerDeine externe IPHistorie oder Fehlermeldungen

Probleme mit internen DNS-Servern

Wird intern ein DNS-Server verwendet, könnte es sein, dass dieser stört. Das lässt sich einfach umgehen, in dem die Variable RESOLVER_ADDRESS auf einen externen DNS-Server gesetzt wird, beispielsweise 208.67.222.222:53.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert