Ein flexibler Hub-Service für Dynamic DNS Updates, der Anfragen von Routern (z.B. FritzBox) entgegennimmt und an verschiedene DNS-Provider weiterleitet.
https://git.irohlf.de/iRohlf/ddns-hub
|
|
||
|---|---|---|
| config | ||
| docs | ||
| providers | ||
| templates | ||
| .dockerignore | ||
| .gitignore | ||
| config.py | ||
| ddns-hub.py | ||
| docker-compose.yaml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| install.sh | ||
| README.md | ||
| README.pdf | ||
DDNS Hub
Ein Multi-Provider Dynamic DNS Update Service für die Verwendung mit FritzBox und anderen DynDNS-Clients.
Features
- Multi-Provider Support – Sendet Updates gleichzeitig an mehrere DNS-Dienste
- HTTP-basierte Provider – DuckDNS, dynv6, No-IP, Cloudflare und beliebige andere
- RFC 2136 Support – Native DNS-Updates mit TSIG-Authentifizierung (Technitium, BIND, PowerDNS, etc.)
- IPv6 Host-Teil Anpassung – Statische IPv6-Adressen trotz wechselndem Präfix
- Docker-ready – Einfaches Deployment mit Docker Compose
- FritzBox-kompatibel – Funktioniert als Custom DynDNS-Ziel
Quickstart (Docker)
# Repository klonen oder Archiv entpacken
cd ddns-hub
# Config-Verzeichnis erstellen
mkdir -p config
# Beispiel-Konfiguration kopieren und anpassen
cp templates/ddns-hub.conf.docker config/ddns-hub.conf
nano config/ddns-hub.conf
# Container starten
docker compose up -d
FritzBox einrichten
In der FritzBox unter Internet → Freigaben → DynDNS:
| Feld | Wert |
|---|---|
| DynDNS-Anbieter | Benutzerdefiniert |
| Update-URL | http://<server>:3080/update?domains=<domain>&ip=<ipaddr>&ipv6prefix=<ip6lanprefix> |
| Domainname | home (oder beliebig) |
| Benutzername | (leer lassen) |
| Kennwort | (leer lassen) |
Wichtig:
ipv6prefix=<ip6lanprefix>ist nötig für Server hinter der FritzBox. Siehe FritzBox-Doku.
Dokumentation
- Installation – Docker und native Installation
- Konfiguration – Alle Optionen im Detail
- Provider – DynDNS und RFC 2136 Provider
- FritzBox – FritzBox-Integration
Beispiel-Konfiguration
[General]
port = 8080
debug = false
[DynDNS:duckdns]
enabled = true
domain = meinname.duckdns.org
token = abc123-xxxx-xxxx
update_url = https://www.duckdns.org/update?domains={domain}&token={token}&ip={ipv4}&ipv6={ipv6}
[RFC2136:technitium]
enabled = true
server = ns1.example.com
zone = example.com
key_name = ddns-hub
key_secret = BASE64SECRET==
key_algorithm = hmac-sha256
ttl = 300
Lizenz
MIT License