Use ddclient with changeip.com

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.

#ddclient.conf

#tell ddclient how to get your ip address
use=web, web=ip.changeip.com

#provide server and login details
protocol=changeip
ssl=yes
server=nic.changeip.com/nic/update
login=yourLogin
password=yourPassword

#specify the domain to update
your.domain.name

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 DynDNS.com 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 changeip.com.

changeip.com 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 changeip.com and  changeip.com 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 changeip.com 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):

#ddclient.conf

#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/ddclient.pid               # record PID in file.

#tell ddclient how to get your ip address
use=web, web=ip.changeip.com

#provide server and login details
protocol: dyndns2
server: nic.changeip.com
login: yourLogin
password: yourPassword

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

I hope that saves you some work.

  • Pingback: Use ddclient with multiple different dynamic DNS services « blogdotmegajasondotcom()

  • sidcypher

    thank you, that worked perfectly.

    i had doubts about what the daemon script does in the background, so here’s a copypaste of what i tried:

    ddclient -foreground -use=web -web ip.changeip.com -server nic.changeip.com -ssl -login yourLogin -password yourPass -verbose ‘*1’

    except i use “-use=if -if tun0 ” 🙂

  • Ray

    Thank you! I was dreading the same undertaking… you saved me some effort.

  • Kevin

    Thank-you! This configuration file was easy to use. Although on ubuntu some of the configuration is split between /etc/default/ddclient and /etc/ddclient.conf

  • Mark

    This post just saved me a whole bunch of time and effort. Annoying that, over 4 years later, they still don’t have any documentation on their site to help out with this!

  • Pingback: How to set up your own VPN | 4you-online.uk()

  • Pingback: How to set up your own Raspberry Pi powered VPN - AllTheStuffYouNeedToKnow()

  • Pingback: DriftedMass | How to setup & use a Raspberry Pi as a VPN()

  • he

    you are awsomwe

  • Merv

    Tried this but I’m getting “WARNING: skipping host: merv-pi.dynamic-dns.net: ‘login=’ is an invalid login.” I’ve used the same login name that I use to log on to changeip.com not sure what’s wrong.

    • I am getting this same error. Perhaps it takes a while for the dns site to be completely set up??

      • Matt Menary

        Same here. Do I just need to wait?

        EDIT: Changing the colons to equals’s seemed to work for me

        • Thanks Matt. I posted this years ago, so maybe something has changed. I’ll check to see if I can get that error and edit the post with what I find.

  • Chris Domain

    Hello, I realize this post is from four years ago but I’m hoping someone could help a newbie out. Kate Russell from the BBC posted information about setting up a VPN on a Raspberry Pi in July of 2015 and she linked to this post for instructions to configure ddclient with changeip.com.

    However, I’m a bit confused on precisely what needs changing. I’m assuming that the login & password in the third section is my login & password for the changeip.com website?

    Also, the last section wants me to provide my domain name from changeip.com which sounds simple enough, but I’m confused about the *1 or *2 DynSets comment. Is this something I need to sort out? If so, how?

    Sorry for the lame questions but I’m trying to learn this by myself. Any help would be much appreciated.

  • m

    how to make it work i have try this and no luck

  • Pingback: How to set up your own Raspberry Pi powered VPN | picasso0151()

  • Jeff

    Thanks for the info! Based on your post, here’s where I landed with a Raspberry Pi that’s sitting behind the home firewall:

    # Configuration file for ddclient generated by debconf
    #
    # /etc/ddclient.conf
    daemon=600
    protocol=dyndns2
    use=web, web=ip.changeip.com
    server=nic.changeip.com
    login=*******
    password=’********’
    ********.dynamic-dns.net

    (Substitute your own values for the ones with asterisks. If you’re using their premium dynamic DNS service rather than the free one, replace the entire domain name with yours.)

  • Harry

    Thanks for the tutorial Jason.

    I’m just confused at the bit were you input your login and password details. Are these the details you use to login to the changeip website?

    It seems others a confused on this bit aswell.

    Thanks in advance 🙂

    • Thanks for the question Harry.

      Your login and password details replace “yourLogin” and “yourPassword” on the following lines:

      login=yourLogin
      password=yourPassword

      This is the login and password you would use to login to the changeip website. This is why it is important to set ssl=yes so these login details are encrypted in transit.

      To check if your ddns updates are going through or if there are errors, go to the account section on changeip.com. Go to “DNS Manager” under the “Services” menu and click “View Recent DDNS Updates.”

      Let me know how it works out for you.

  • Fried

    These are awesome ideas ! Very informative post! There is a lot of information here that can help any business get started with a successfull.Thanks for Sharing !!

    Fried

  • Pingback: From OpenShift to a Raspberry Pi | My name is Ozymandias()