I'm trying to setup ddclient on my ubuntu server to update my DNS records on zoneedit for when my public IP changes.

It's updating fine, the problem is that it's giving zoneedit my local IP instead of my public one.

SUCCESS:  updating mydomain.com: IP address set to (200: Update succeeded.)

My ddclient config file looks like this:

use=if, if=eth0

Why is it updating to my local IP instead of my public one?

Update: could this be because I'm behind a router? If so, how should I configure ddclient to get the public IP?

4 Answers 4


Yes, the issue is because you're behind a router. The best solution would be to see if you can install a ddns client on the router itself. Otherwise there are ddns update tools that finger a remote server and ascertain your IP by what this yields.

This can be done by replacing:

use=if, if=eth0

With this:

use=web, web=checkip.dyndns.org/

Which is apparently the default configuration generated by debconf on Debian systems.

  • ah - thanks. I presumed ddclient would use a remote server to get the IP, if anyone knows how to set this up that would be great. Feb 13, 2012 at 10:42
  • now solved - see my answer Feb 13, 2012 at 10:58


use=if, if=eth0


use=web, web=my.ip.fi/
  • What does this do? Would you add some information or context as to why this is a solution? Dec 3, 2015 at 17:49
  • my.ip.fi just displays your current ip adress without the "Your current Ip Adress is:..." thing. So you can CURL it too Dec 7, 2015 at 7:24
  • Please add that information to your answer and an example of how it's different than the already accepted answer, otherwise it just looks like a duplicate answer with a different site. Dec 7, 2015 at 9:02
  • icanhazip.com also only displays IP
    – warhansen
    Aug 27, 2019 at 12:21

I had to use web=dynamicdns.park-your-domain.com/getip to get it working

# Configuration file for ddclient generated by debconf
# /etc/ddclient.conf

use=if, if=eth0
use=web, web=dynamicdns.park-your-domain.com/getip

My DDNS provider, no-ip.com, doesn't require the second (web=..) parameter. Just replacing the line with use=if with use=web worked for me.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .