GoDNS: Self-hosted DDNS mit Multi-Provider-Unterstützung
Ein dynamisches DNS-Client-Tool, das AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost usw. unterstützt, geschrieben in Go.
Auf einen Blick
- Was ist das?
- Ein in Go geschriebener dynamischer DNS-Client, der Datensätze über viele Anbieter aktualisiert, mit Web-Panel und Benachrichtigungen.
- Für wen ist es gedacht?
- GoDNS bietet eine einzige Konfigurationsdatei zur Verwaltung von DNS-Datensätzen über mehrere Anbieter, unterstützt dynamisches Neuladen und enthält ein Web-Panel. Es kann als Binärdatei, Docker-Container oder Systemdienst ausgeführt werden und ist unter Apache 2.0 lizenziert.
- Darf ich es kommerziell nutzen?
- Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 3 Tagen.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Go, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
GoDNS, ein Multi-Provider-DDNS-Client
GoDNS ist ein selbst gehosteter dynamischer DNS-Client (DDNS), geschrieben in Go. Es ist eine Neufassung des früheren Open-Source-Projekts DynDNS des Autors. Die README beschreibt es als Unterstützung mehrerer DNS-Anbieter und mit integriertem Web-Panel. Das Repository verweist auch auf eine gehostete Version unter godns.app für diejenigen, die nicht selbst hosten möchten. Die selbst gehostete Version ist als Binärdatei, Docker-Image oder Quellcode-Build verfügbar. Die README spezifiziert keine Benutzerzahlen oder Produktionsstatistiken.
Unterstützte DNS-Anbieter und ihre Fähigkeiten
Die README listet 21 DNS-Anbieter in einer Tabelle auf, darunter Cloudflare, DigitalOcean, Google Domains, DNSPod, Dynv6, HE.net, AliDNS, DuckDNS, Dreamhost, No-IP, Scaleway, Linode, Strato, LoopiaSE, Infomaniak, Hetzner, OVH, Porkbun, Dynu, IONOS und TransIP. Für jeden Anbieter gibt die Tabelle an, ob IPv4- und IPv6-Updates unterstützt werden und ob Root-Domains und Subdomains aktualisiert werden können. Beispielsweise unterstützen Cloudflare, DigitalOcean, DNSPod, HE.net, AliDNS, Scaleway, Linode, Hetzner und Porkbun Root-Domains, während Google Domains, Dynv6, DuckDNS, Dreamhost, No-IP, Strato, LoopiaSE, Infomaniak, OVH, Dynu, IONOS und TransIP nur Subdomains unterstützen. Die README weist auch darauf hin, dass ein GitHub-Issue den aktuellen Status von DDNS für Root-Domains verfolgt.
Konfiguration: Formate, dynamisches Laden und Multi-Provider
GoDNS liest die Konfiguration aus einer JSON- oder YAML-Datei. Die README weist Benutzer an, config_sample.json oder config_sample.yaml in config.json oder config.yaml zu kopieren. Die Konfigurationsdatei enthält Eigenschaften wie provider, email, password, login_token, domains, ip_urls, ipv6_urls, ip_type, interval, socks5_proxy, resolver und skip_ssl_verify. Ein bemerkenswertes Merkmal ist das dynamische Laden: Wenn Sie die Konfigurationsdatei ändern, lädt GoDNS sie automatisch neu und wendet die Änderungen an. Die README betont auch, dass GoDNS jetzt mehrere DNS-Anbieter gleichzeitig in einer einzigen Konfigurationsdatei unterstützt, sodass Domains verschiedener Anbieter gemeinsam verwaltet werden können. Ein separater Leitfaden, MULTI_PROVIDER.md, bietet detaillierte Einrichtungsanweisungen und Beispiele.
Benachrichtigungen und Webhooks
GoDNS kann Benachrichtigungen senden, wenn sich die IP-Adresse ändert. Die README dokumentiert E-Mail über SMTP, Telegram, Slack, Discord, Pushover, Bark und ntfy. Jeder Benachrichtigungskanal hat sein eigenes Konfigurations-Snippet. Beispielsweise erfordert E-Mail smtp_server, smtp_username, smtp_password, smtp_port, send_from und send_to. Die message_template-Eigenschaft unterstützt Markdown in Telegram und Slack. Zusätzlich zu Benachrichtigungen kann GoDNS Webhooks über HTTP GET oder POST liefern. Die Webhook-Konfiguration hat eine URL und einen optionalen request_body; wenn request_body leer ist, wird eine GET-Anfrage gesendet. Verfügbare Variablen in URL oder Body sind Domain, IP und IPType. Die README bietet Beispiele für GET und POST.
Das integrierte Web-Panel
Ab Version 3.1.0 enthält GoDNS ein Web-Panel zur Verwaltung der Konfiguration und zur Überwachung des Domain-Status. Die Web-UI ist standardmäßig deaktiviert. Um sie zu aktivieren, setzen Sie den Abschnitt web_panel in der Konfigurationsdatei, der enabled, addr, username und password enthält. Das Beispiel zeigt addr als 0.0.0.0:9000. Nach der Aktivierung können Sie http://localhost:9000 besuchen, um zu verwalten und zu überwachen. Die README enthält einen Screenshot des Web-Panels, beschreibt aber keine Details zu Funktionen über die Konfigurationsverwaltung und Statusüberwachung hinaus.
GoDNS in verschiedenen Umgebungen ausführen
Die README beschreibt mehrere Möglichkeiten, GoDNS auszuführen. Für einen einmaligen Lauf setzen Sie run_once auf true, damit das Programm nach dem ersten Update beendet wird. Für einen Hintergrundprozess verwenden Sie nohup ./godns &. Verwaltete Daemon-Setups sind für upstart, systemd und procd (OpenWRT) verfügbar. Konfigurationsdateien für diese Init-Systeme sind im Repository unter config/upstart, config/systemd und config/procd enthalten. Docker-Images sind auf Docker Hub und GitHub Container Registry verfügbar; der Beispielbefehl mountet eine lokale Konfigurationsdatei und gibt Port 9000 für das Web-Panel frei. Für Windows erklärt die README, wie man godns.exe mit NSSM als Dienst installiert. Die README stellt auch fest, dass das Programm bei manuellem Ausführen mit nohup nicht automatisch neu gestartet wird, wenn es stoppt.
Verschiedene Optionen und Lizenz
Die README behandelt mehrere optionale Funktionen. IPv6-Unterstützung kann aktiviert werden, indem ip_type auf IPv6 gesetzt und ipv6_urls verwendet werden, oder indem ip_urls und ipv6_urls leer gelassen werden, damit GoDNS die IPv6-Adresse der Netzwerkschnittstelle erkennt. Eine Netzwerkschnittstellen-IP kann mit ip_interface angegeben werden, und wenn ip_urls ebenfalls gesetzt ist, wird zuerst die Online-Suche versucht. Alle Remote-Aufrufe können über einen SOCKS5-Proxy laufen, indem socks5_proxy und use_proxy gesetzt werden. Es gibt auch einen Konfigurationsblock zum Abrufen der öffentlichen IP von einem Mikrotik-RouterOS-Gerät. Debug-Informationen können mit debug_info aktiviert werden. Die README empfiehlt einige öffentliche IP-Lookup-APIs. Das Projekt ist unter Apache 2.0 lizenziert, was eine unbefristete, weltweite, nicht-exklusive, gebührenfreie Lizenz zur Nutzung, Vervielfältigung, Änderung und Verbreitung des Werks gewährt. Der Lizenztext erwähnt keine Garantie oder Unterstützung, und die README bietet keine Sicherheitsgarantien.
Redaktionelles Fazit
GoDNS bietet eine einzige Konfigurationsdatei zur Verwaltung von DNS-Datensätzen über mehrere Anbieter, unterstützt dynamisches Neuladen und enthält ein Web-Panel. Es kann als Binärdatei, Docker-Container oder Systemdienst ausgeführt werden und ist unter Apache 2.0 lizenziert.
Community-Notizen