Differences between revisions 7 and 8
Revision 7 as of 2023-06-29 17:19:35
Size: 2252
Comment:
Revision 8 as of 2025-07-02 21:25:21
Size: 2479
Comment: Update for v4
Deletions are marked like this. Additions are marked like this.
Line 42: Line 42:
When testing a configuration, consider running `ddclient -daemon=0 -debug -verbose -noquiet`. When testing a configuration, consider running `ddclient -debug -verbose -noquiet`.

Note that passing `-daemon=0` '''formerly''' meant 'do not re-check' and effectively stopped daemonization, but [[https://github.com/ddclient/ddclient/issues/775|v4.0.0]] changed this to mean 're-check as frequently as is allowable'.

Ddclient

ddclient(8) is a script that automatically updates Dynamic DNS records. It is written in Perl with only a few library dependencies.


Installation

Install the ddclient package. It is widely available, but some package manager may not detect the perl dependencies.

Note: some distributors (i.e. FreeBSD) fail to package the manual page.

For systemd-capable systems, start and enable ddclient.service.

For FreeBSD-style init systems, set the following lines into /etc/rc.conf:

ddclient_enable="YES"
ddclient_flags="-daemon 900"


Configuration

The minimum configuration of ddclient(8) specifies...

  1. A method for obtaining the public IP address
  2. The Dynamic DNS protocol

The simplest configurations use a public website to discover the public IP address.

ssl=yes
use=web, web=checkip.dyndns.com

When testing a configuration, consider running ddclient -debug -verbose -noquiet.

Note that passing -daemon=0 formerly meant 'do not re-check' and effectively stopped daemonization, but v4.0.0 changed this to mean 're-check as frequently as is allowable'.

Routers

As an alternative to using a public website, ddclient(8) can obtain the IP address directly from a router.

See here for a list of supported routers and the router-specific configurations.

Protocols

ddclient(8) supports a wide variety of Dynamic DNS protocols, including the in-house protocols of various domain providers.

For a Cloudflare registration, try:

protocol=cloudflare, \
zone=domain.name, \
ttl=1, \
login=username, \
password=global_api_key \
fully.qualified.domain.name

For a Google Domains registration, try:

protocol=googledomains
login=username
password='password_in_quotes'
fully.qualified.domain.name

See here for a list of supported protocols and the protocol-specific configurations.

/etc/default/ddclient

Some systemd-capable distributions break the daemon configuration into a separate file, at /etc/default/ddclient. The basic setup for this file is:

run_dhclient="false"
run_ipup="false"
run_daemon="true"
daemon_interval="300"


CategoryRicottone

Perl/Ddclient (last edited 2025-07-02 21:25:21 by DominicRicottone)