DDClient DDClient

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.

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 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:

# 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.
Below is a sample configuration to detect IP address for third level hostname MYDOMAIN.DYNU.COM from the hardware interface:

# 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.
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 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 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:

# 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 running sudo 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.
Loading...