DuckDNS on EdgeRouter

Hey! Listen! This post is part of a series on the Ubiquiti EdgeRouter Lite. Check them all out!

DateURLPart
2017-10-03Dyn DDNS on EdgeRouter
  • Setup DynDNS
  • 2017-04-25DuckDNS on EdgeRouter
  • Setup DuckDNS
  • 2017-01-08Ubiquiti EdgeRouter serial console settings
  • Serial console settings
  • 2016-11-29Ubiquiti UniFi controller setup on Raspberry Pi 3
  • Install UniFi Controller
  • 2016-08-30EdgeRouter Lite Dnsmasq setup
  • Setup dnsmasq
  • 2016-06-13EdgeRouter Lite software upgrade
  • Firmware upgrade
  • 2016-05-12EdgeRouter Lite OpenVPN setup
  • OpenVPN server setup
  • 2016-04-29Ubiquiti EdgeRouter Lite setup
  • Initial setup
  • Introduction

    I’ve been using Dyn for my dynamic DNS for years. However, after the 2016 Dyn DDoS, I’ve decided to add a second dynamic DNS service provider, in case Dyn goes down again.

    Choosing a provider

    Some dynamic DNS service providers might offer more update methods or tutorials, but that’s where the differences end. Unless you’re a large client or have a very custom setup, the largest factor between providers is price. Dyn starts at $7/month, but I’m grandfathered into a $40/year plan.

    For my second provider, I’ve chosen DuckDNS. DuckDNS was started by a redditor, they are pretty transparent, and best of all, the service is free. I’d still donate to them because I’d prefer to pay a couple of guys running a good service, rather than a corporation.

    DuckDNS setup

    Web setup

    Head over to the DuckDNS website and setup an account. Interestingly, DuckDNS only offers oAuth logins (e.g., through Google, Facebook, Reddit, etc…). This is so they don’t have to worry about storing usernames/passwords themselves and can leave it to the professionals.

    Next, enter your domain in the box and click Add domain. If the domain is available, it will be registered to your account. While you’re on this same screen, make note of your account token.

    Router setup

    EdgeOS only supports a handful of pre-configured DNS service providers by default (shown below).

    ubnt@erl# set service dns dynamic interface eth0 service
    afraid       dslreports   easydns      noip         zoneedit
    dnspark      dyndns       namecheap    sitelutions

    To use DuckDNS, we need to setup a custom service provider. Substitute your interface, hostname, and password as needed.

    set service dns dynamic interface eth0 service custom-duckdns
    set service dns dynamic interface eth0 service custom-duckdns host-name loganmarchione
    set service dns dynamic interface eth0 service custom-duckdns login nouser
    set service dns dynamic interface eth0 service custom-duckdns password your-token-here
    set service dns dynamic interface eth0 service custom-duckdns protocol dyndns2
    set service dns dynamic interface eth0 service custom-duckdns server www.duckdns.org
    commit
    save
    exit

    A couple notes on the options:

    • the hostname is the prefix to your domain (e.g., loganmarchione.duckdns.org)
    • the username is nouser (don’t use your account name)
    • the password is your account token (that long string of numbers/letters)

    Verify setup

    Trigger a manual update. EdgeOS will only update the dynamic DNS provider when your IP address actually changes.

    update dns dynamic interface eth0

    You can show the status with the command below.

    show dns dynamic status

    Here, you can see the successful update.

    interface    : eth0
    ip address   : XX.XX.XX.XX
    host-name    : loganmarchione
    last update  : Tue Apr 25 22:13:09 2017
    update-status: good

    SSL settings

    Also, just so you know, EdgeOS uses ddclient for the dynamic DNS updates. The configuration file is located at /etc/ddclient.conf, but there is a directory at /etc/ddclient with a configuration file for each interface. By default, ddclient is setup to use SSL, as shown below.

    root@erl:~# grep ssl /etc/ddclient/ddclient_eth*.conf
    ssl=yes

     

    Hope this helps!

    Logan

    23 thoughts on “DuckDNS on EdgeRouter

    1. Thanks! This worked for me with one tweak. If you are using a DSL (and maybe cable?) modem in bridge mode, the interface you want to use is pppoe0. Other than that it went very smoothly. Thanks for the article.

    2. ER-X can work fine, however if you get “noconnect” instead of “good” when doing the command:
      show dns dynamic status

      then you have a known problem, resolution is to re-apply the current firmware (currently 1.9.7H4)(even if you already have it) which will populate a missing file – google “ER-X noconnect”, there are several posts about it.

    3. Hello! thanks for the guide.

      I’m trying to setup, but when I run:
      “set service dns dynamic interface eth0 service” (or the other similar “set service…”

      The answer is always the same:
      Invalid command

      With the other “set service…” the answer is the same.

      Any idea?

      Thanks in advance.

    4. This worked great! Thank you.

      I found that I didn’t have to run an update, it was already updated after the commit.

    5. Hi, many thanks for this guide! Work!
      So, I have a question. How do create a .ovpn file for client with DuckDNS?

      Many thanks.

    6. Hi I set up everything like you stated, but when i go to type the address into my browser, it does not load!

      What could be the cause for this? Ubiquiti’s CLI is different than what I’m used to with my rPi haha

      • Address of what? Did you set the ERL to listen on the WAN interface? FYI – I would highly suggest against this, since it puts your router’s interface directly on the internet.

        • The “website” address I had set up to connect me to my router address is not loading the router log in. What would be a more secure method to route to my router do you think instead of making it a webpage accessible site via WAN?

          • You should setup a VPN server inside your network that you can connect to over that website address. Then, you will activate your VPN to get “inside” your network, then connect to your router over your router’s local IP (e.g., 192.168.1.1).

            If you *really* want to connect to your router’s interface website over the internet, you’ll need to make sure you have the firewall set to allow that on the ERL.

    Leave a Comment

    This site uses Akismet to reduce spam. Learn how your comment data is processed.