What's new

(Free) DDNS recommendation?

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

.....Maybe also try a restart of router if recommended to see if a change of IP after restart will ensure the updater is working properly.
I’ll only try that when I’m back LANside. With Afraid I get a successful registration after hitting Apply, but if I don’t get dnsomatic (with dynu) running, I certainly will try the different combinations of settings followed by router reboots when I’m back home. Many thanks.
 
Got the first notification today.

After rebooting my router, but not my modem, so the IP address did not change.

Apparently ddns-start is always run at boot?
 
Got the first notification today.

After rebooting my router, but not my modem, so the IP address did not change.

Apparently ddns-start is always run at boot?
It runs:
  1. When NTP is synced.
  2. Watchdog triggers it in case of Dual-WAN failover
Maybe other scenarios too, I just did a Github repo search for "start_ddns".
 
I have seen people mentioning No-IP and Afraid, but there are probably more worth investigating?

I had a quick look at these two; both quickly presented some disadvantages: No-IP domains need to be manually confirmed every 30 days and Afraid domains are owned by other people, so both still seem to involve hassle/dependance?

Using no-ip for one project, and they're good for free - free accounts do need to be confirmed every 30 days. Paid accounts don't need the confirmation, and setting up host and dns records is a snap.

personal/vanity domain - i've been with dyndns for years - it's not free, but they're very good, and a lot of flexibility - a bit concerned with Oracle now owning them
 
For information - a glitch, caught in time, in my .ovpn file after switching to Afraid, I’ve successfully registered with Afraid. My WAN DDNS page shows the relevant Afraid settings along with confirmation of successful registration. My IP address is still the old address assigned when asuscomm.com was my DDNS provider. And being away from home, I’m happy for it to stay like that, but, when the ISP does change it, Afraid should take over seamlessly.

Checking the new .ovpn config file I exported after updating to Afraid, I noticed that against “remote” in the file (4th entry down) was my current IP address (and port number), and not my Afraid DDNS domain name (and port number). I’ve edited the entry so it shows the DDNS address and have successfully tested it. Had my ISP changed my public IP address and the glitch gone unnoticed, OpenVPN would not have connected to the server.
 
I noticed that against “remote” in the file (4th entry down) was my current IP address (and port number), and not my Afraid DDNS domain name (and port number).
I've noticed this before and noted in my server writeup the need to check this. I expect you have openvpn on the wan interface only with the local command (I think I remember this from other of your posts). Do you think the exported config differs in this case; that is, when you bind it to the wan interface, it exports the IP address, and when you let it default to all interfaces, it exports a ddns address?
 
Thanks for that, elorimer. I had wondered if I had done something wrong.

You have remembered correctly: I have one server bound to Port 443 on the WAN interface and am using your local command trick to allow pixelserv-tls to function using 443 on the LAN. However, my second server runs on an obscure UDP port, and the .ovpn config file was the same: “remote” showed the current public IP address and not the DDNS domain name.
 
This is something of a "give it back" post in case anyone else is trying to use dynu for DDNS, which I did after the ASUS DDNS service stopped working. I also investigated a few of the services out there and I was looking for minimal touch (set it/forget it) as well as free. I went with dynu because they have a REST API that would let me set the IP updates from the router (and I wanted the router to perform the update rather than relying on some other computer in my house to do it as I *know* the router will be up, which I can't say for some other machine).

The solution involves:

1. Getting a free dynu DDNS account [Note: I have no affiliation with them.]
2. Creating a DDNS name in the account.
3. Generating an API key in my Dynu account
4. Creating /jffs/scripts/ddns-start
5. Setting DDNS to "Custom" in the WebUI.

The script does a couple of things:

* Grabs the IP address from eth0
* Sends an API POST to Dynu with the API string, IP address, and some account information
* Generates a "1" return code

Here's my script with certain values xx'd out:

#!/bin/sh
API="xxxxxxxxxxxxxxxxxxxx" # My Dynu DDNS API Key
IP=$(ip a s dev eth0 | grep -oP 'inet\s+\K[^/]+')
curl -X POST https://api.dynu.com/v2/dns/yyyyyyy -H "accept: application/json" -H "API-Key: ${API}" -d "{\"name\":\"my.ddnsgeek.com\",\"group\":\"\",\"ipv4Address\":\"${IP}\",\"ttl\":90,\"ipv4\":true,\"ipv6\":false,\"ipv4WildcardAlias\":true,\"ipv6WildcardAlias\":false,\"allowZoneTransfer\":false,\"dnssec\":false}"
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi
That API variable is your API key. The "yyyyyyy" is your DDNS account DDNS id for your custom FQDN. The other value you'll need to sub out is the "name", which is "my.ddnsgeek.com" above -- use the FQDN you created. The rest of the values you'll want to check to make sure they make sense for your own setup.

Obviously this would be a 'cleaner' script if I changed the rest of the JSON values into variables and had a nice list of variable declarations up top to set them.

The Dynu API page is pretty cool; you can log into it with your own API key and then send test parameters before you commit your own curl line.

Hope this helps someone.
 
This is something of a "give it back" post in case anyone else is trying to use dynu for DDNS, which I did after the ASUS DDNS service stopped working. I also investigated a few of the services out there and I was looking for minimal touch (set it/forget it) as well as free. I went with dynu because they have a REST API that would let me set the IP updates from the router (and I wanted the router to perform the update rather than relying on some other computer in my house to do it as I *know* the router will be up, which I can't say for some other machine).

The solution involves:

1. Getting a free dynu DDNS account [Note: I have no affiliation with them.]
2. Creating a DDNS name in the account.
3. Generating an API key in my Dynu account
4. Creating /jffs/scripts/ddns-start
5. Setting DDNS to "Custom" in the WebUI.

The script does a couple of things:

* Grabs the IP address from eth0
* Sends an API POST to Dynu with the API string, IP address, and some account information
* Generates a "1" return code

Here's my script with certain values xx'd out:

#!/bin/sh
API="xxxxxxxxxxxxxxxxxxxx" # My Dynu DDNS API Key
IP=$(ip a s dev eth0 | grep -oP 'inet\s+\K[^/]+')
curl -X POST https://api.dynu.com/v2/dns/yyyyyyy -H "accept: application/json" -H "API-Key: ${API}" -d "{\"name\":\"my.ddnsgeek.com\",\"group\":\"\",\"ipv4Address\":\"${IP}\",\"ttl\":90,\"ipv4\":true,\"ipv6\":false,\"ipv4WildcardAlias\":true,\"ipv6WildcardAlias\":false,\"allowZoneTransfer\":false,\"dnssec\":false}"
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi
That API variable is your API key. The "yyyyyyy" is your DDNS account DDNS id for your custom FQDN. The other value you'll need to sub out is the "name", which is "my.ddnsgeek.com" above -- use the FQDN you created. The rest of the values you'll want to check to make sure they make sense for your own setup.

Obviously this would be a 'cleaner' script if I changed the rest of the JSON values into variables and had a nice list of variable declarations up top to set them.

The Dynu API page is pretty cool; you can log into it with your own API key and then send test parameters before you commit your own curl line.

Hope this helps someone.
Does this mean that this is obsolete, and the WiKi should be updated with your version?
 
Does this mean that this is obsolete, and the WiKi should be updated with your version?

I'm not going to go that far. I believe that Dynu still supports their V1 API, so it probably still works. I went with V2 since I didn't want to have to figure it out all over again later if V1 stopped working.

Also--and I don't claim to be a super-awesome admin type here when I say this--I couldn't figure out how that script obtained the IP address? I didn't try it out. The script sets IP based on a locally run value, but how did the script obtain the IP address when there's no obvious way that it's set? Perhaps the V1 API assumes that the inbound IP for the call is the one that the DDNS has to be reset to, but V2 definitely doesn't work that way. Anyway, I didn't invest a lot to figure it out and just went my route.
 
The router passes that as the first parameter when invoking the script:
Code:
IP=${1}

See https://github.com/RMerl/asuswrt-merlin/wiki/User-scripts

Ha! Amazing what looking at the doc can do for you.

I just tested it out too - I changed the IP variable to grab ${1} and it works just fine. Confirmed (via REST API) that Dynu had received the update after I ran the script.

For completeness, here's the current version:

#!/bin/sh
API="xxxxxxxxxxxxxxxxxxxx" # My Dynu DDNS API Key
IP=${1}
curl -X POST https://api.dynu.com/v2/dns/yyyyyyy -H "accept: application/json" -H "API-Key: ${API}" -d "{\"name\":\"my.ddnsgeek.com\",\"group\":\"\",\"ipv4Address\":\"${IP}\",\"ttl\":90,\"ipv4\":true,\"ipv6\":false,\"ipv4WildcardAlias\":true,\"ipv6WildcardAlias\":false,\"allowZoneTransfer\":false,\"dnssec\":false}"
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi​
 
Reading through this thread has reveled my overwhelming ignorance. Are the following assumptions correct:
  1. Some of the Merlin-supported DDNS services (such as asus.com) provide host names within their own domain and handle all DNS updating by themselves.
  2. Some services (such as DNS-O-Matic) forward update information to other DDNS services, and we have to set up accounts and configure those other DDNS services.
  3. Some of the supported services seem to be domain name providers (registrars?) from whom you have to lease a domain name. Then they support the DDNS function.
  4. Some services supported directly by Merlin or supported indirectly by DNS-O-Matic, etc. allow already existing personal domains to be used. These have to point to the "owning" DNS servers? And those DNS servers have to allow updates from DDNS service being used?
I'm pretty sure about #1 above, but I suspect I may be wrong about #2, #3, and #4. could somebody clarify or correct my understanding?

I'd be perfectly satisfied using a service-provided domain name. I gather than the ASUS DDNS service has had some problems. From a quick glance at the list of the Merlin-supported DDNS services, I could not tell (for certain) which other services used their own domains and which require an already existing domain name to be used. Which provide their own domain names?

I'm not technically competent to add my own support via scripts.
 
I'm using afraid ddns via DNS O Matic works for me.
 
I'm using afraid (https://freedns.afraid.org/) because I think I read RMerlin does :)

I was using assus, but didn't like the issues I read about such as if you change routers without releasing the name.

I was using no-ip.com, but got tired pretty quickly of having to renew it manually every 30 days.

I like "afraid" because I can add a 1 line cron job on my NAS or Raspberry Pis to update as often as I like, in addition to support in the router.

Bottom line, go with one that works for you. If you use only your router to update, then pick one that is supported there. If you want to update via other means (scripts, cron, etc) then pick that based on that.

I actually use 3 free services. Partly as backup in case one fails and also as I have multiple ISP feeds into my home network. Afraid, to me, seemed like the easiest to implement and update.
 
I'm using afraid (https://freedns.afraid.org/) because I think I read RMerlin does :)

I was using assus, but didn't like the issues I read about such as if you change routers without releasing the name.

I was using no-ip.com, but got tired pretty quickly of having to renew it manually every 30 days.

I like "afraid" because I can add a 1 line cron job on my NAS or Raspberry Pis to update as often as I like, in addition to support in the router.

Bottom line, go with one that works for you. If you use only your router to update, then pick one that is supported there. If you want to update via other means (scripts, cron, etc) then pick that based on that.

I actually use 3 free services. Partly as backup in case one fails and also as I have multiple ISP feeds into my home network. Afraid, to me, seemed like the easiest to implement and update.

What happens if you change routers and don’t release the name?


Sent from my iPhone using Tapatalk
 
@Darcy you simply can't reuse it.
 
I use the ASUS DDNS and have been for years without an issue. Am I missing something? Should I be using something else? I certainly don’t want to pay for it so is their a big difference from ASUS to the others?


Sent from my iPhone using Tapatalk
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top