For those of us on cable or DSL who are slightly too cheap to pay for a static IP, dynamic DNS services are really useful. My DD-WRT based router knows how to talk to dynamic DNS providers, so setting it up is really easy.

I’ve tried both DynDNS and No-IP, and while they work quite well they’re kind of annoying. They really want me to sign up for a premium service, after all that’s how they make money. As a result I need to periodically visit web pages to confirm that I’m using an address or pay a fee. It’s not a big fee, but I’m already paying someone, DreamHost to host DNS for me, and they’ve got an API

So I threw together a little script that implements the DynDNS API and modifies your own DNS zones using the DreamHost API. You can get it from here:

The setup instructions are included in the README. Hopefully they’re pretty self-evident, but they are written from the perspective of someone who ran their own DNS servers (primary and secondary) for ten years.

3 replies on “DIY DDNS”

  1. I have gone through the setup but my DD-wrt router just says connecting to server. Do you have any pointers?

  2. Tried this using a DLink DIR-615 and it doesn’t seem to be working. Although the error may have nothing to do with the router. Right after I created the user/pass for apache when trying to browse to that directory I am prompted for a user/pass but on entering them I get get a server error 500.

    What file permissions are needed on all the various parts?
    in ~/ these two files have
    -rw——- 17 2012-01-27 02:36 .ddns-api-key
    -rw——- 41 2012-01-27 02:39 .ddns.htpasswd

    The domain directory has this
    drwxr-xr-x 2012-01-27 02:40

    The script directory has
    drwxr-xr-x 2012-01-27 02:44 dyndns/

    And inside that direcotry there is
    -rw-r–r– 2011-04-26 23:19 index.cgi
    -rw-r–r– 266 2012-01-27 02:35 .htaccess

    I verified that the AuthUserFile is updated to the right home directory for .ddns.htpasswd

    Any help on that error 500 wuold be helpful. Additionally do I need to set execute permission on the cgi? I’m not Python literate and I’m weak on Apache

Comments are closed.