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 -daemon=0 -debug -verbose -noquiet.

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 2023-06-29 17:19:35 by DominicRicottone)