Skip to main content

A modern and flexible dynamic DNS client

Project description

Build status Documentation Status

dnsupdate is a dynamic DNS client that has first-class support for IPv6 and aims to be easily configurable to meet the needs of any situation. Unlike most other dynamic DNS clients, dnsupdate has been designed from the start to support IPv6 and many different update services. It is written in Python and configured using YAML, making it easy to use and extend.


  • Built-in support for FreeDNS,, as well as any service that uses the standard DynDNS protocol
  • IPv6 support
  • Simple YAML configuration file
  • Obtain addresses from a web service, router or local interface
  • Only submits an update if the address has changed
  • Respects API return values to avoid abuse bans


pip install dnsupdate

Alternatively, you can simply download and run

It is also available on the Arch Linux AUR.



dnsupdate is configured using a single YAML file. The path to the file can be specified on the command line. If not, dnsupdate will try to use ~/.config/dnsupdate.conf and /etc/dnsupdate.conf, in that order.

Most users will likely be satisfied with a simple configuration like this:

    - type: NSUpdate
          secret_key: 26Yg7wUhxo

More examples are available in the examples/ directory.

Full documentation is available here:


usage: dnsupdate [-h] [-f] [-V] [config]

Dynamic DNS update client

positional arguments:
  config              the config file to use

optional arguments:
  -h, --help          show this help message and exit
  -f, --force-update  force an update to occur even if the address has not
                      changed or a service has been disabled
  -V, --version       show program's version number and exit


Documentation is available online, but it can also be built locally by running:

python3 build_docs

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dnsupdate, version 0.4
Filename, size File type Python version Upload date Hashes
Filename, size dnsupdate-0.4-py3-none-any.whl (22.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size dnsupdate-0.4.tar.gz (10.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page