ddns — Dynamic DNS update client




ddns is a simple, extensible, cross-distribution, cross-platform dynamic DNS updater written in Python.


The following options are understood:

-c CONFIG , --config CONFIG

Load the specified configuration file. (Default: /etc/ddns/ddns.conf)

For further details of the config file layout, please consult the ddns.conf(5) manual page.

-d , --debug

Enables the debugging output.

-h , --help

Shows the help message provided by the program and exit.


The following commands are understood:

update [--force] HOSTNAME

Perform an update for a single host, specified by the given hostname.

When calling an update, the DDNS client automatically checks if this update is required by testing whether the hostname points to the current public IP address. Therefore it is not guaranteed than an update is performed.

The --force switch can be used to skip that check and perform an update. Please note that some providers may block your account if unnecessary updates are repeatedly performed.

update-all [--force]

Update all configured dynamic DNS hosts when an update is necessary.

The --force switch has the same effect as with the update command.


Guesses the public IPv6 and IPv4 addresses with help of an external server and prints them on the conole.


This command will print out a list of all supported dynamic DNS providers.

Exit Codes

ddns will normally exit with code 0. If there has been a problem and the requested action could not be done, the exit code is unequal to zero.


Please report all bugs to the official bugtracker at

See Also