ddclient updating to local IP instead of public IP

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 192.168.0.17 (200: Update succeeded.)

My ddclient config file looks like this:

protocol=zoneedit1
use=if, if=eth0
server=dynamic.zoneedit.com
login='user'
password='password'
mydomain.com

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?


Solution 1:

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.

Solution 2:

Replace

use=if, if=eth0

with

use=web, web=my.ip.fi/