Set up DynDNS: FRITZ!Box, OPNsense, pfSense, Synology & Linux

For every device IPv64.net has a guide for, this page lists exactly the fields and values you need to enter: FRITZ!Box, Telekom Speedport, OPNsense, pfSense, UniFi, MikroTik, Synology, QNAP, VyOS, OpenWrt and Linux via curl and cron. What the individual parameters of the update URL mean is explained under Update URL & protocol.

Preparation: domain and key

You need a DynDNS domain and its domain key. You find both at ipv64.net/dyndns under EDIT Domain in the Domain Update URL, see Domain key and update URLs.

In the examples, yourdomain.ipv64.net stands for your domain and YOUR_DOMAIN_KEY for your key. Replace both with your values.

Ready-made values to copy

When you are logged in, the DynDNS Helper shows all guides with your real values. Select your domain at the top and it inserts that domain's key. Without a selection it shows your account key, which may change all domains of your account – better use the domain key in devices.

How the update works: your router or a script calls the update URL regularly. IPv64.net takes the sender address of the call, or the IP addresses given in the URL, and writes them into the DNS entry of your domain. The update succeeded on good (address changed) and nochg (address was already current).

Every call counts towards your daily update limit, even if nothing changed. An interval of one hour is enough for most connections. Limits and response codes: Update URL & protocol.

AVM FRITZ!Box DynDNS

The FRITZ!Box registers your IP address with IPv64.net by itself. All it takes is one entry under Internet → Freigaben (Permit Access) → DynDNS:

FieldValue
DynDNS-Anbieter (DynDNS provider)Benutzerdefiniert (User-defined)
Update-URLhttps://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&ip=<ipaddr>&ip6=<ip6addr>
Domainnameyourdomain.ipv64.net
Benutzername (user name)none (must not be empty)
Kennwort (password)none (must not be empty)

The key is part of the update URL, so any text will do for user name and password. The FRITZ!Box replaces <ipaddr> and <ip6addr> with its current IPv4 and IPv6 address.

https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&ip=<ipaddr>&ip6=<ip6addr>

FRITZ!Box with IPv6 prefix

The FRITZ!Box can also send the IPv6 prefix of its home network. All device records with an interface ID are then adjusted automatically (see IPv6 prefix and interface ID). Use this update URL:

https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&ip=<ipaddr>&ip6=<ip6addr>&ip6lanprefix=<ip6lanprefix>

The FRITZ!Box replaces the placeholders itself. A call then looks roughly like this:

https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&ip=192.0.2.10&ip6=2001:db8:1234:5600:3a10:d5ff:fe12:3456&ip6lanprefix=2001:db8:1234:5600::/64

The domain then points to the FRITZ!Box itself; a record nas with target ::211:22ff:fe33:4455 to 2001:db8:1234:5600:211:22ff:fe33:4455. You can see whether it worked in the record table: the stored prefix is shown in bold in front of every interface ID.

Telekom Speedport DynDNS

On the Speedport, the settings only appear after you switch from standard mode to expert mode. The Speedport sends the IPv4 and IPv6 address together in one field; IPv64.net handles both from a single call, so there is nothing else to set.

Menu: Service → Dynamic DNS → Settings → create a new entry

FieldValue
Anbieter (provider)Anderer Anbieter (other provider)
Domänenname (domain name)yourdomain.ipv64.net
Benutzername (user name)1234 (not used, but the field must not be empty)
Kennwort (password)YOUR_DOMAIN_KEY
Updateserver-Adresse (update server)ipv64.net
Protokoll (protocol)HTTPS
Port443

OPNsense and pfSense

OPNsense DynDNS

OPNsense has an “old” and a “new” DynDNS updater. This guide uses the new one, the os-ddclient plugin.

Menu: Service → Dynamic DNS → Settings → create a new entry

FieldValue
Service TypeCustom
ProtocolDynDns2
Serveripv64.net
Usernone (the field must not be empty)
PasswordYOUR_DOMAIN_KEY
Wildcardleave unchecked
Hostnameyourdomain.ipv64.net
Check ip methodipify-ipv4 or ipify-ipv6
Check ip timeout10 (default)
Force SSLcheck
Interface Monitoryour WAN interface

Under General settings, also check Enable and set Interval, e.g. 3600.

Netgate pfSense DynDNS

The DynDNS function is built right into the web interface. Menu: Service → Dynamic DNS

FieldValue
Service TypeCustom
Interface Monitoryour WAN interface
HTTP API DNS Optionson or off (optional)
Update URLhttps://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&domain=yourdomain.ipv64.net
Result Matchgood|nochg

Without the Result Match good|nochg, pfSense reports every run as an error. For IPv6, add a second entry with service type Custom (v6) and the same URL.

Ubiquiti UniFi DynDNS

Menu: Settings → Internet → Create New Dynamic DNS

FieldValue
ServiceDynDNS
Hostnameyourdomain.ipv64.net
Usernamenone (anything, just not empty)
PasswordYOUR_DOMAIN_KEY
Serveripv64.net/\/nic/update?hostname=%h&key=YOUR_DOMAIN_KEY
Mind the /\/

The character sequence /\/ in the Server field is intentional. Copy the value exactly as shown.

MikroTik RouterOS DynDNS

On MikroTik routers, switches and access points, you update the IP address with the built-in Scheduler. Menu in WinBox: System → Scheduler. As the script (On Event), enter:

/tool fetch url="https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&domain=yourdomain.ipv64.net" keep-result=no

You set the interval yourself. 01:00:00 (one hour) is recommended.

Synology and QNAP (NAS)

Synology DynDNS

On a Synology NAS, add IPv64.net as a new DDNS service provider and then fill it in like any other provider.

FieldValue
Query URLhttps://ipv64.net/nic/update?hostname=__HOSTNAME__&key=__PASSWORD__&ip=__MYIP__
Usernamenone (anything)
PasswordYOUR_DOMAIN_KEY

Leave the placeholders __HOSTNAME__, __PASSWORD__ and __MYIP__ as they are. The Synology fills in host name, password and current IP.

QNAP DynDNS

Menu: Access Services → DDNS

FieldValue
Usernamenone (anything)
PasswordYOUR_DOMAIN_KEY
Hostnameyourdomain.ipv64.net
Check IP1 Hour
URLhttps://ipv64.net/nic/update?domain=%HOST%&key=%PASS%&ip=%IP%

Linux, Raspberry Pi and Docker

curl and cron

On a Raspberry Pi or any other Linux system, curl is all you need. To update the IP regularly, e.g. every 2 hours, add the call to your crontab. Open it with:

crontab -e

and add this line:

0 */2 * * * curl -sSL "https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&domain=yourdomain.ipv64.net"

Without further parameters, IPv64.net enters the address the call comes from. How to force IPv4 or IPv6 or send addresses yourself is described under Update URL & protocol.

Debian package ipv64-ddns-update

For Debian-based distributions there is the community package ipv64-ddns-update. Installation and setup are described in the repository's documentation: gitlab.com/playdiver/ipv64-ddns-update.

Docker DynDNS updater

If you run Docker anyway, you can use the community container docker-ddns-ipv64. Follow the guide on GitHub: github.com/alcapone1933/docker-ddns-ipv64.

Node64

Node64 is the official IPv64.net container. Its DynDNS64 module keeps your domains on the current IPv4 and IPv6 automatically, including prefix and interface ID. It uses the record or domain key, never the account key. Setup is described in the Node64 documentation.

VyOS and OpenWrt

VyOS DynDNS

In this example, eth2 is the outbound interface (WAN). Use your domain key as the password. Type single quotes ', not double quotes ".

conf
set service dns dynamic interface eth2 service ipv64 host-name 'yourdomain.ipv64.net'
set service dns dynamic interface eth2 service ipv64 login 'nobody'
set service dns dynamic interface eth2 service ipv64 password 'YOUR_DOMAIN_KEY'
set service dns dynamic interface eth2 service ipv64 protocol 'dyndns2'
set service dns dynamic interface eth2 service ipv64 server 'ipv64.net'
compare
commit
save
exit

Then check the status with:

show dns dynamic status

OpenWrt DynDNS

OpenWrt also includes a DynDNS service. Enter these values:

FieldValue
Enabledcheck
Hostnameyourdomain.ipv64.net
IP address versionIPv4, IPv6 or both
DDNS service providercustom
Custom update URLhttps://ipv64.net/nic/update?domain=[DOMAIN]&key=[PASSWORD]&ip=[IP] (copy exactly)
Domainyourdomain.ipv64.net
Usernamenone (do not leave empty)
PasswordYOUR_DOMAIN_KEY

Testing and troubleshooting

  1. Call the URL in your browser
    Call the update URL once in your browser and append &output=full. You get a JSON response with the detected IP address and the result.
    https://ipv64.net/nic/update?key=YOUR_DOMAIN_KEY&domain=yourdomain.ipv64.net&output=full
  2. Check the logs
    Under Logs you see every successful update with time, domain and IP. If there are entries, your router gets through – the only question left is whether it sends the right address.
  3. Ask the name server directly
    If the router reports success but the domain shows an old address, query the IPv64.net name server directly:
    dig @ns1.ipv64.net yourdomain.ipv64.net
    If it shows the new address, your resolver's cache is the cause.

Common causes:

  • badauth: wrong key, the domain does not belong to this key, or the domain is deactivated.
  • HTTP 400: the IP sent is invalid or private (e.g. 192.168.x.x, 10.x.x.x, fd00::). Check the placeholders in your router URL.
  • HTTP 429: too many calls. Do not set the interval shorter than necessary.
  • CNAME is set: the name has a CNAME, so no A or AAAA record can be set.
  • DS-Lite or CG-NAT: set Ignore IPv4 / A Records on the domain, see Ignore IPv4 or IPv6.

All response codes and limits are explained under Update URL & protocol. Help with individual devices is available in the v64.tech forum.

Found a mistake or missing something? Tell us in the v64.tech forum. · Updated: 2026-10-29