Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

dyndns2-styled Dynamic DNS update API server using Amazon Route 53 as a backend.

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Dynamic53 is a REST API interface server backed by Amazon Route 53.
Dynamic53 provides an API similar to DDNS providers,
specifically dyndns2-like protocol,
thus it can be used to build a personal dynamic DNS service
which is updatable via existing DDNS clients like ddclient.

You need to be signed up with Amazon Route 53.
You need your own domain.
Zone must be created on Route53,
WHOIS information for the domain must be setup correctly for Route 53,
to access the updated information.
You need python and python-setuptools installed in the server.

	# python install
(will install depending python modules, and puts dynamic53 command in your bin directory)

	# dynamic53 --bind_ip= --port=80
(for other options, consult `dynamic53 --help` output)

To update IP address using ddclient, use config like:

	login=AK*******************             # AWS Access ID
	password=PW*******************          # AWS Secret Access Key
	server=                        # IP address where dynamic53 is running
	protocol=dyndns2,           # hostname to update

Old ddclient Problem
Old ddclient has problems in Base64 encoding for long passwords.
Use newer ones.

If you can't use newer ones, comment out the 3 lines below in /usr/sbin/ddclient,
by inserting '#' on the head. This should not harm anything.

    # break encoded string into lines of no more than 76 characters each
#    if (length $eol) {
#        $res =~ s/(.{1,76})/$1$eol/g;
#    }

Nested Zones Problem
If you have nested zones registered in your Route 53,
requests for changes will be ambiguous.
If you like to set A records to the domain itself,
add '.' in front of the hostname.

If you have '' '' registered in Route 53,
and you want to add/change '' to '',
use ''.
If you want to add/change '' to '',
use ''.

* Doesn't support multi hostnames in requests yet.

This is nothing more than a quick-hack project.
Using this in production environment is not recommended.

Something went wrong with that request. Please try again.