Dynamic DNS for FRITZ!Box and any router
{demo_update_url}
Generate one secret update URL under {suffix}. Paste it into your router, script it with curl, or point your own subdomain at it with a CNAME.
Create in one step
The generated URL is the secret. FRITZ!Box replaces <ipaddr> and calls it when your public IP changes.
Use FRITZ!Box placeholders, curl, cron, Home Assistant, OpenWrt, pfSense, OPNsense, UniFi, MikroTik, or your own automation.
# explicit IPv4
curl -sS 'https://karldns.de/u/<secret>?myip=203.0.113.10'
# source IP fallback
curl -sS 'https://karldns.de/u/<secret>'
{status}
This unlocks after the TXT record is visible in public DNS.
Direct custom-domain publishing
Use this only when KarlDNS should publish A/AAAA records directly inside your domain. If you just want your own subdomain, generate a hostname above and create a CNAME to it.
Hostname generated
Use the Update-URL directly. The separate Benutzername and Kennwort values are optional compatibility fields for routers that require them. Save this now: the password, private status page, and one-box update URL are only shown on this screen.
{_secret_notice()}Admin action
Copy this now. Secret values are only shown in this response.
{safe_value}
FRITZ!Box replaces <ipaddr> and <ip6addr>, then sends a GET request to the Update-URL. Scripts and other routers can do the same with curl. If no IP parameter is sent, KarlDNS uses the request source IP.
{safe_commands}
{_copy_button("Copy curl examples", commands)}
Magic management
Anyone with this link can manage or delete this hostname. Keep it private.
Back homeRouter settings
Use the Update-URL directly if your router only has one URL field. Separate Benutzername and Kennwort values are optional compatibility fields and are only shown when generated or rotated. If you use your own DNS name, point it at this hostname with a CNAME.
{_secret_notice()}Current address
| IPv4 | {ipv4} |
|---|---|
| IPv6 | {ipv6} |
| Updated | {updated} |
History
Recent IP changes and failed DNS publishes for this hostname.
| Time | Status | IPv4 | IPv6 | Detail |
|---|
Danger zone
This removes the hostname and DNS records. The router update URL will stop working.
DynDNS aktiv
Inspect hostnames, verify domain claims, rotate links, run cleanup, and review router update events.
Service health
Cleanup runs every {html.escape(str(settings.cleanup_interval_seconds))} seconds. It removes unverified domain claims after {html.escape(str(settings.cleanup_challenge_hours))} hours and never-used generated hostnames after {html.escape(str(settings.cleanup_unused_account_hours))} hours.
Hostnames
| Domain | User | IPv4 | IPv6 | Updated | Links |
|---|
Domain claims
| Domain | Status | Created | Verified |
|---|
Cleanup
| Time | Domain claims removed | Unused hostnames removed |
|---|
Updates
| Time | Domain | Status | IPv4 | IPv6 | Detail |
|---|