DDClient is a Perl based IP update client for *nix based systems including Linux, FreeBSD and Mac OS X.
It supports operating as a daemon as well as optimizes updates for multiple hostnames and aliases.
Be sure to put all the parameters in the configuration file before running DDClient. You can run DDClient as
If you think your configuration is correct, but DDClient does not work as expected, you can enable debug and verbose messages by running
Below is a sample configuration which updates IP address only for an alias of your domain name MYDOMAIN.COM:
DDClient can detect IP address changes directly from the router or from the hardware interface.
Below is a sample configuration to detect IP address for third level hostname MYDOMAIN.DYNU.COM from the router:
Below is a sample configuration to detect IP address for third level hostname MYDOMAIN.DYNU.COM from the hardware interface:
Below is a sample configuration to detect IP address for third level hostname MYDOMAIN.DYNU.COM using secure mode with SSL (make sure you have IO::Socket::SSL):
DDClient is a third-party client and it does not recognize the 'Location' parameter in the update if you put it directly.
The workaround is below:
Installation
It comes pre-installed on most distributions and we recommend that you use the installed version unless you really need the latest version. In case of Debian based systems, you can use
apt-get install ddclient
to install it.Be sure to put all the parameters in the configuration file before running DDClient. You can run DDClient as
/usr/sbin/ddclient -daemon 300 -syslog
which ensures that it is in daemon mode.If you think your configuration is correct, but DDClient does not work as expected, you can enable debug and verbose messages by running
ddclient -daemon=0 -debug -verbose -noquiet
Configuration
DDClient requires a configuration file with appropriate settings to function. Below is a sample configuration which updates IP address for third level hostname MYDOMAIN.DYNU.COM:# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. use=web, web=checkip.dynu.com/, web-skip='IP Address' # Get ip from server. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username. password=YOURPASSWORD # Password or MD5/SHA256 hash of password. MYDOMAIN.DYNU.COM # List one or more hostnames one on each line. #MYDOMAIN.COM
Below is a sample configuration which updates IP address only for an alias of your domain name MYDOMAIN.COM:
# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. use=web, web=checkip.dynu.com/, web-skip='IP Address' # Get ip from server. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username password=YOURPASSWORD # Your password or MD5/SHA256 hash of password MYDOMAIN.com&alias=ALIAS # Update IP address for alias of your domain name
# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. use=cisco, fw=192.168.1.1:80, fw-login=ADMIN, fw-password=ADMIN # Get ip from router. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username. password=YOURPASSWORD # Your password or MD5/SHA256 hash of password. MYDOMAIN.DYNU.COM # List one or more hostnames one on each line.
# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. use=if, if=eth0 # Get ip from hardware interface. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username. password=YOURPASSWORD # Your password or MD5/SHA256 hash of password. MYDOMAIN.DYNU.COM # List one or more hostnames one on each line.
# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. ssl=yes # Use ssl-support. Works with ssl-library . use=if, if=eth0 # Get ip from hardware interface. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username. password=YOURPASSWORD # Your password or MD5/SHA256 hash of password. MYDOMAIN.DYNU.COM # List one or more hostnames one on each line.
# ddclient configuration for Dynu # # /etc/ddclient.conf daemon=60 # Check every 60 seconds. syslog=yes # Log update msgs to syslog. mail=root # Mail all msgs to root. mail-failure=root # Mail failed update msgs to root. pid=/var/run/ddclient.pid # Record PID in file. ssl=yes # Use ssl-support. Works with ssl-library . use=if, if=eth0 # Get ip from hardware interface. server=api.dynu.com # IP update server. protocol=dyndns2 login=myusername # Your username. password=YOURPASSWORD # Your password or MD5/SHA256 hash of password. nonexistingaxdv.dynu.net&location=LOCATION # Input a hostname such as nonexistingaxdv.dynu.net that does not exist and append the location
System Requirements
DDClient requires Perl and can run on Unix, Linux and BSD variants such as FreeBSD and Mac OS X. Through DDClient can perform updates in insecure mode, we recommend using SSL to perform updates. Please ensure SSL is installed on your distribution. Please note that in case of debian, you need libio-socket-ssl-perl to have IO::Socket::SSL. You can install it by runningsudo apt-get install libio-socket-ssl-perl
.
Notes
We recommend running DDClient as a daemon or schedule a cron job to run it at regular intervals to ensure full IP address update coverage at all times.
Custom
A1 Hybrid Box
Apple Airport
Arris
Bintec
BT Smart Hub
Cisco Router
DD-WRT
D-Link DSR-250N
Dovado
DrayTek
E-Lins
Express VPN
HUAWEI HG 533/520v
HG8245/8045/8346M
FreeNAS
Fritzbox
IC Realtime
Maxis AC1200
Mikrotik
MultiTech
MOFI4500
Ooredoo
Open Wrt
OPNsense
pfSense
pfSense (IPv6)
QNAP
Raspberry Pi
Sagemcom
Synology NAS
Technicolor TG582n
Technicolor TG588
Technicolor TG789
TELTONIKA
Thomson TG585v7
Tomato USB
Tilgin
TP-Link ER605
TrueNAS
Ubiquiti EdgeRouter
WatchGuard Firebox
Windtre
ZTE
ZyWALL-USG50
Zyxel 5501
Zyxel-C1100Z
Zyxel VMG3925
Zyxel VMG3927-T50K