I'm no longer using a Fritz!Box router for my dynamic DNS. I've switched to using a polling based solution, rather than being able to rely on a router that can broadcast updates somewhere.
A small Flask service that accepts requests from the Fritz!Box and forwards the information to Gandi.net's LiveDns service.
Enable DynDns:
- Open the router (usually http://fritz.box)
- Internet > Permit Access > DynDNS
- Check "Use DynDNS"
- "DynDNS Provider" = User-defined
- "Update URL" =
"http://" + host_port + "/update?domain=" + domain + "&ip4=<ipaddr>&ip6=<ip6addr>&subdomain=" + subdomain
- "Domain name" = subdomain + "." + domain
- "User name" = unused
- "Password" = unused
You'll need an API Key from Gandi.net:
- Login to Gandi.net
- Account > Security > Generate API Key
- Insert the api key into
config.py
You need to specify which domains & subdomains can be updated:
- Open
config.py
- Edit the
allowed
dictionary - Insert your domain as key, and subdomain into the subdomain set.
You need to setup the service with systemd / etc.
- Copy
dyndns.service
into/etc/systemd/system
- Edit dyndns.service with the user & directory you want to run it as.
Can the Fritz!Box be configured to talk to my local service using HTTPS?
Dunno. I would like to set that up, but I think it's a catch-22, because you won't have a valid HTTPS certificate when you initially set everything up.