Tuesday, September 18, 2012

The quest for a free dynamic DNS (DDNS) service

Being self-hosted has its perks, but my ISP periodically updates my home IP, and often I don't notice until several days have gone by. I've looked for a while for free dynamic DNS services, as GoDaddy doesn't have this option, but the few I found had major problems I didn't want to deal with (e.g. limitations on the number of zones I could add, or a requirement to allow others to create free subdomains).

I finally ran across Namecheap's FreeDNS service, which was exactly what I wanted. This requires that you enable dynamic DNS on Namecheap's side, then have a client (such as ddns, ddclient, or any of the others listed here) running on your computer. To use their service (which does not require domain transfer or the purchase of any services, but is also available to those that have Namecheap accounts) you'll need to do the following:
  1. Sign up for a Namecheap account (or log into your existing account) here.
  2. Go here, type your domain name, then press "Get DNS". On the next page, click "Add DNS for Selected Domains".
  3. Now click on "OK! Go to the Hosted Domains Page". This will take you to your domain manager. Note that your domains will be listed in the "Hosted Domains" category of the FreeDNS section on the left column (it took me a bit to find where they disappeared).
  4. At this point, you should see your domain listed. Click on your domain name, and the current DNS status will be listed as "INACTIVE". That's fine, since we haven't yet set up the DNS zones, and we don't want to point the DNS until we have. Add the DNS zones as desired, and save them when done.
  5. If you want as little downtime as possible, now is the time to activate the DNS on Namecheap's side before pointing the nameservers. At the top, find the "Authorization by Email" paragraph by your DNS status and click "select authorization email". This will give you several email addresses on the domain to choose from, and Namecheap will send an email to confirm that you are indeed the owner of the domain. After you get that email and approve it, the DNS with Namecheap should change to active status.
  6. Once activated (or anytime prior to this if you don't care about downtime) point the nameservers to Namecheap. As per their KB, the nameservers are as follows:
    freedns1.registrar-servers.com
    freedns2.registrar-servers.com
    freedns3.registrar-servers.com
    freedns4.registrar-servers.com
    freedns5.registrar-servers.com
    Note that DNS changes can take up to 24-48 hours to propagate around the world.
  7. Once the nameservers are pointed to Namecheap and propagated, you're ready to set up Dynamic DNS as per the instructions below.
If the domain is completely pointed and the DNS zones are as they should be, you're ready to set up Dynamic DNS. This requires that you enable it on Namecheap's side, then have a client running on your side.
  1. Log into your Namecheap account, go to the "Hosted Domains" category of the domain manager, and pull up your domain's DNS zone editor.
  2. On the left, under "Advanced Options", click on "Dynamic DNS".
  3. Click on Enable Dynamic DNS. Make note of the password given.
  4. Configure the DDNS client of your choice with the settings in that section (unless you use my tool, you'll need to talk to their respective developers). For Mac/Linux/Unix users, feel free to try out my client found here.

3 comments:

Samuel Bradshaw said...

Namecheap is what I use!

Unknown said...

No-IP.com is also a great free dynamic dns solution.

Araignée said...

Thanks, Natalie. While it's true no-ip.com has a great free dynamic DNS service, they only allow you to use it on your_hostname.no-ip.org unless you pay for their enhanced service. I've used them before, and they do provide great solutions, it isn't ideal for my need of a free service that allows any domain name. (That being said, it would be possible to permanently point a CNAME to the free hostname, and thus update the hostname IP through no-ip, but I'd rather handle all my DNS in one place).

Post a Comment