= 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, [[Linux/Systemd|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 [[https://ddclient.net/routers.html|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 [[https://ddclient.net/protocols.html|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