Use ddclient with

By | March 14, 2011

Update 2016/03/06: I originally wrote this 5 years ago (and then abandoned it for quite a while).  A lot of people have been coming recently from the BBC article about setting up a Raspberry Pi VPN.  I thought I would update this post to better serve the readers.

This is my most recent working config for ddclient and ChangeIP.


#tell ddclient how to get your ip address

#provide server and login details

#specify the domain to update

Specific changes to notice are that ddclient now allows protocol=changeip. I also think it is very important to use the ssl=yes to avoid sending your login name and password over the Internet unencrypted. I also removed the daemon, syslog, mail, and pid lines as ddclient has reasonable defaults for these.

If you’re setting up a website you might be interested in why you need HTTPS for your web site.

Thanks to Kate Russell (@katerussel) and the BBC for the link.  I’m glad this was helpful.

Also thanks to those who left comments prompting me to review this page, most recently Jeff, Jason, and Matt Menary.

Original text of the post follows:

For the last few years I have been using ddclient and the free dynamic dns service from to facilitate remote access to my home Linux machine.  With the free service, you have to use one of their domain names.  If you want to bring your own name, you have to pay.  I decided that I wanted to use my own domain name but didn’t really care for dyndns’s pricing.  After shopping a bit, I settled on provides several possible update clients but most required a GUI which I don’t have on this machine, or a script run as a cron job which I wasn’t too thrilled about.

The problem:  ddclient’s documentation doesn’t mention and doesn’t mention ddclient or any of the protocols supported by ddclient.

Google didn’t help.  I was really surprised that Google didn’t help.  I did, however, find this buried in the forums (from 2003):

At this time we do not have our own custom written DDNS update client for linux. However, there are many options out there. ddclient can be made to work with our service – as well as some others. There are also some unix shell scripts and php options listed on the ddns clients page if you wish.

The encouraging part: “ddclient can be made to work…”

Through trial and error and with the help of ddclient’s debug output I came up with a working ddclient.conf (so you don’t have to):


#I left these things at their defaults
daemon=1200                             # check every 20 min
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/               # record PID in file.

#tell ddclient how to get your ip address

#provide server and login details
protocol: dyndns2
login: yourLogin
password: yourPassword

#specify the domain to update
#for, this can also be *1 or *2
# for your "DynSets"

I hope that saves you some work.