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...
- A method for obtaining the public IP address
- 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"