I found this on Mexpolk’s Howtos
Step 1
First, you need to create an account with DynDNS to do so follow this howto: https://www.dyndns.com/services/dns/dyndns/howto.html.
Step 2
First we’ll install ssh and ssh-socket so we can send our DynDNS user and password encrypted instead clear text:
$ sudo apt-get install ssh libio-socket-ssl-perl
Step 3
Install ddclient:
$ sudo apt-get install ddclient
Step 4
The installation will prompt you some questions. For the first one it ask for your dynamic DNS provider, select www.dyndns.com:

Then, put your fully qualified domain name(s):

Now, your DynDNS requistered username and password:


And finally, type “web” as the DynDNS interface to use:

Ok, so long we’ve finished installing ddclient but there’s still more work to do in order to get it working properly.
Step 5
We, need to change the ddclient configuration file (/etc/ddclient.conf) in order to use ssh to send the username and password, and to properly check the IP adrress. From the command line open ddclient configuration:
$ sudo vim /etc/ddclient.conf
This will open up the configuration file. We will be changing “use=if, if=web” in Step 6
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=web
server=members.dyndns.org
login=username
password=’password‘
your-host-name.dyndns.org
Step 6
We need to change the configuration so ddclient get our public IP address properly, and to send our username and password over ssh.
DynDNS has a web interface to get your public IP address, this is equivalent to manually invoking http://checkip.dyndns.com/. But we need to properly configure this interface, so change the line use=if, if=web for the following:
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
Second, add to your configuration file just below the initial comments the following:
ssl=yes
daemon=300
The above two lines tells ddclient to use ssl for its connection and to update your public IP address every 5 minutes (specified in seconds).
Step 7
Now, we must make sure that ddclient is set to run as a deamon. Edit /etc/default/ddclient:
$ sudo vim /etc/default/ddclient
And make sure that:
# Configuration for ddclient scripts
# generated from debconf on Tue Jan 29 20:23:32 CST 2008
#
# /etc/default/ddclient
# Set to “true” if ddclient should be run every time a new ppp connection is
# established. This might be useful, if you are using dial-on-demand
run_ipup=”false”
# Set to “true” if ddclient should run in daemon mode
run_daemon=”true”
# Set the time interval between the updates of the dynamic DNS name in seconds.
# This option only takes effect if the ddclient runs in daemon mode.
daemon_interval=”300″
Step 8
Finally, restart your ddclient and if no error is printed you’re good to go:
sudo /etc/init.d/ddclient restart
Port Forwarding
In order to deliver services on the net, you must open the corresponding ports for the services that your computer/server will provide, this is called Port Forwarding. Unfortunately this howto does not cover that topic. To do so you can visit http://www.portforward.com/routers.htm, where you can read how to port forwarding for your specific model of modem/router.