DynDNS

From Hack Sphere Labs Wiki
Jump to: navigation, search

Linux

Note: dyndns is greedy and removed the free services

ddclient works great with dyndns. The only thing that you have to do is enable a cron script to force an update.

Taken from this guide: [1]

sudo apt-get install ddclient

the ncurses wizard should come up. make sure you have your host added at dyndns.com with just any ip before you choose from a list in the wizard. If you don't have it added it can't pull the hostname.

If you need to do it manually...look at the Ubuntu link above.

One thing that most forget is that if you do not update the addy every 30 days dyndns will delete it. (With the free at least) This means that you must force an update every once in a while. (If you update too much they will disable your account to.)

The below is taken from [2]


Getting DDclient to Periodically Update
Your DDNS service provider will typically force your entry to expire if it doesn't receive an update within a few months. 
The easiest way to solve this problem is to use the cron sample file that ddclient provides. Here's how to do it.
1. Use the rpm command to get a list of installed DDclient files, one of which is the cron file .
[root@bigboy tmp]# rpm -ql ddclient | grep cron /usr/share/doc/ddclient-3.7.1/sample-etc_cron.d_ddclient [root@bigboy tmp]#
2. Copy the file to the /etc/cron.d directory.
[root@bigboy tmp]# cp /usr/share/doc/ddclient-3.7.1/sample-etc_cron.d_ddclient /etc/cron.d/ddclient.cron
3. Edit the file and uncomment the cron entries,
[root@bigboy tmp]# vi /etc/cron.d/ddclient.cron
4. Restart cron.
[root@bigboy tmp]# service crond restart
This simple modification will allow you to sleep at night without worrying whether ddclient is working correctly!

I found the above example cron file somewhere else but everything else is the same except that my command to restart crond was "service cron restart". I did not uncomment the second cron line in the file.

no-ip.com official client

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar zxvf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make
make install

Answer prompts

Install Startup:

/etc/init.d/noip2
#! /bin/sh
# /etc/init.d/noip2

# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>

# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc

DAEMON=/usr/local/bin/noip2
NAME=noip2

test -x $DAEMON || exit 0

case "$1" in
    start)
    echo -n "Starting dynamic address update: "
    start-stop-daemon --start --pidfile /var/run/noip2.pid \
        --make-pidfile --exec $DAEMON
    echo "noip2." 
    ;;
    stop)
    echo -n "Shutting down dynamic address update:"
    start-stop-daemon --stop --pidfile /var/run/noip2.pid \
        --oknodo --retry 30 --exec $DAEMON
    echo "noip2." 
    ;;

    restart)
    echo -n "Restarting dynamic address update: "
    start-stop-daemon --stop --pidfile /var/run/noip2.pid \
                            --oknodo --retry 30 --exec $DAEMON
    start-stop-daemon --start --pidfile /var/run/noip2.pid \
                            --exec $DAEMON
    echo "noip2." 
    ;;

    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
exit 0

chmod a+rx /etc/init.d/noip2

Start that shit then:

noip2 -S

to see if it is up.

Notes

Usual operation?
/usr/local/bin/noip2 -C                 configure a client
/usr/local/bin/noip2                    run a client
/usr/local/bin/noip2 -S                 display info about running clients
/usr/local/bin/noip2 -D pid             toggle the debug state for client pid
/usr/local/bin/noip2 -K pid             terminate client pid

no-ip.com ddclient

Note: None of this shit fucking works. Refer to the no-ip.com official
  • 'noip'

The 'No-IP Compatible' protocol is used to make dynamic dns updates over an http request. Details of the protocol are outlined at: http://www.no-ip.com/integrate/

Configuration variables applicable to the 'noip' protocol are:

 protocol=noip                    ##
 server=fqdn.of.service       ## defaults to dynupdate.no-ip.com
 login=service-login          ## login name and password  registered with the service
 password=service-password    ##
 fully.qualified.host         ## the host registered with the service.

Example ddclient.conf file entries:

 ## single host update
 protocol=noip,                                        \
 login=userlogin@domain.com,                                \
 password=noip-password                           \
 myhost.no-ip.biz


A Config that I made:

daemon=3600
ssl=yes
use=web
web=http://ip1.dynupdate.no-ip.com/
protocol=noip
server=dynupdate.no-ip.com/nic/update
login=a3434edf
password='gfsdffsdfs'
lol.no-ip.info

ToAdd

The debian version of ddclient 3.8.0 was giving the error

Use of uninitialized value in string ne at /usr/sbin/ddclient line 2102.

I think it is because I am using no-ip. I found out that the new version fixed this and since it is a perl script I just wgeted the new version and copied the ddclient binary over the old on in /sbin/

I also had to

mkdir /etc/ddclient

and

ln -s /etc/ddclient.conf /etc/ddclient/ddclient.conf

and rm /var/cache/ddclient/ddclient.cache

I tested the fix by running ddclient and I also

Notes

Notes

To run ddclient as a daemon, please set run_daemon to 'true' in /etc/default/ddclient ...

ping ktware.redirectme.net

The above command will give you your ipaddress.