I have been using DNS services from OpenDNS.org for a little while now, and I am very happy with some of the features that they provide such as URL shortcuts and finely grained internet filtering. However, in order to use the features, I have to keep my dynamic IP address up to date with their DNS-O-Matic service. Their list of clients includes inadyn, which is available through Ubuntu but doesn't include DNS-O-Matics ssl extensions and so I compiled my own version and installed it.
Here are the steps I followed:
- Download modified inadyn source code from OpenDNS -- wget http://www.opendns.com/support/ddns_files/inadyn.source.v1.99.zip
- Unzip the source code -- unzip inadyn.source.v1.99.zip
- sudo apt-get build-dep inadyn
- sudo apt-get install libcurl4-openssl-dev
- cd inadyn.source.v1.99
- make
- sudo cp -p bin/linux/inadyn /usr/local/sbin/.
- Create a script named inadyn in /etc/init.d so that it will launch automatically on startup.
#! /bin/sh
### BEGIN INIT INFO
# Provides: inadyn
# Required-Start: $network
# Required-Stop: $syslog
# Should-Start: $named $syslog
# Should-Stop: $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Dynamic IP Adress updater
# Description: inadyn is a program that updates services such as
# dyndns.org and dnsomatic.com when the host's external
# external IP address changes.
### END INIT INFO
set -e
# /etc/init.d/inadyn: start and stop the inadyn daemon
DAEMON=/usr/local/sbin/inadyn
INADYN_ENABLE=true
INADYN_OPTS=''
INADYN_CONFIG_FILE=/etc/inadyn.conf
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
. /etc/default/rcS
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/local/sbin"
case "$1" in
start)
if "$INADYN_ENABLE"; then
log_daemon_msg "Starting inadyn daemon" "inadyn"
if [ ! -s "$INADYN_CONFIG_FILE" ]; then
log_failure_msg "missing or empty config file $INADYN_CONFIG_FILE"
log_end_msg 1
exit 1
fi
if start-stop-daemon --start --quiet \
--pidfile /var/run/inadyn.pid --make-pidfile\
--exec $DAEMON
then
rc=0
else
rc=1
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
fi
else
if [ -s "$INADYN_CONFIG_FILE" ]; then
[ "$VERBOSE" != no ] && log_warning_msg "inadyn daemon not enabled in /etc/init.d/inadyn, not starting..."
fi
fi
;;
stop)
log_daemon_msg "Stopping inadyn daemon" "inadyn"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
log_end_msg $?
;;
restart)
set +e
if $INADYN_ENABLE; then
log_daemon_msg "Restarting inadyn daemon" "inadyn"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON || true
sleep 1
if start-stop-daemon --start --quiet \
--pidfile /var/run/inadyn.pid --make-pidfile \
--exec $DAEMON
then
rc=0
else
rc=1
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
fi
else
[ "$VERBOSE" != no ] && log_warning_msg "inadyn daemon not enabled in /etc/default/inadyn, not starting..."
fi
;;
*)
echo "Usage: /etc/init.d/inadyn {start|stop|restart}"
exit 1
esac
exit 0 - sudo update-rc.d -f inadyn defaults
- Create an inadyn.conf file in /etc
background
syslog
update_period_sec 600 # Check for a new IP every 600 seconds
secure
# Enter your DynDNS username and password here
username <USERNAME GOES HERE>
password <PASSWORD GOES HERE>
# What kind of host is being updated? Choices are dyndns@dyndns.org, statdns@dyndns.org, custom@dyndns.org
dyndns_server_name updates.dnsomatic.com
dyndns_server_url /nic/update?
alias <DNS-O-Matic SERVICE 1 GOES HERE>
alias <DNS-O-Matic SERVICE 2 GOES HERE> - /etc/init.d/inadyn start
- all done inadyn is now installed and will keep DNS-o-Matic apprised of you IP address.