I put the curl command to update my duckdns IP in cron about 13 years ago, and have never needed to touch it once.
It's just worked for me
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
No low-effort posts. This is subjective and will largely be determined by the community member reports.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I put the curl command to update my duckdns IP in cron about 13 years ago, and have never needed to touch it once.
It's just worked for me
This. Never had an issue.
Oh wow, me too. And I just checked and it's still there, still works. The token is 10 years old.
I did this too, and my log always gets an OK. But the IP never changes.
The ip shouldnt change unless the server is down for a period of time and the ip is dynamic.
If it is returning OK then it sounds like duckdns is working as intended
i am using https://freedns.afraid.org/ for over a decade now and problems occured less than 5 times over that period. all others i ever tried were worse over time.
I used to just use a script with cron to update Cloudflare DNS records but these days I don’t screw around with exposing anything to the public internet directly, I just use Tailscale.
Is there a difference between using Tailscale and Wireguard? I already have a Wireguard setup and want to know what benefits it has over Wireguard.
They’re similar but mainly Tailscale arranges WireGuard tunnels between peers. There are tons of useful features around that functionality like being able to route specific traffic through specific hosts (“nodes” using “app connectors”); it’s even better at finding a way out of hostile networks using relays.
Just as an example I typically use my VPS as an “exit node” so that all my traffic routes through it (which does a ton of tunnel hopping through commercial VPNs) while my wife isn’t into that at all, but both of us have Tailscale on our devices so when either of us accesses Home Assistant it’s routed directly to the host hosting it.
Also MagicDNS is great.
I’ve been using desec.io since it’s european, non profit and privacy oriented. Bring your own domain though. Works well, although my caddy plugin has problems getting certs sometimes. My pangolin instance never has any issues getting certs so might be caddy desec plugin specific.
desec does offer one free subdomain, and you can use as many nested subdomains as you want for your services. do note you'll need a wildcard cert for each subdomain level: *.sub.dedyn.io and *.app.sub.dedyn.io if a service needs it's own subdomains for apis and whatnot.
edit: also a note for any fellow noobs like me it's deDYN.io not deSEC.io on your account/subdomain. it took me an embarrassingly long time to realize my mistake trying to sign up with every subdomain i tried saying it exists already.
My Domain registrar has a reverse DNS service included.
I ended up using Dynv6, great and simple serivce does exactly what I need. Made in Germany.
Me too. Draytek Router automatically updates the IP. Set it up once and it is working since 2-3 years (don't exactly rember when I set it up).
DuckDNS had been unreliable when I used it, but it's been a while. I swapped over to desec.io but their signups aren't always open. Can highly recommend them though, and they offer many paths to update the IP, including DynDNS(2) protocol or just ddclient.
Also works with certbot for Let's encrypt certificates using dns challenge.
Same. I have a router with OPNsense. In the "Dynamic DNS" section I create a "Custom" service with the DynDNS2 protocol. I type in update.dedyn.io as the server address. You need to also get an api key from the desec.io web panel that you input into the username and password fields.
Now everytime the router's WAN ip changes it automatically edits the DNS zone. So instead of going "your server -> DDNS provider -> DNS CNAME record" it's just "your server -> DNS A record"
I also have a separate token for my web proxy (traefik) so that it can edit the DNS records to get let's encrypt certificates through dns challenge as you describe.
As for the desec signups in my case one DNS zone was no problem, but for a second one I needed to e-mail them:
Hello, would it be possible for my newly created account to get one more domain on the account please? I have two personal domains and it would be great if I could keep them both under deSEC
Hi [me], Sure! The limit is mostly there to remind users to enable DNSSEC, but it looks like you're already doing that (at your old provider).
They asked me to (voluntarily) donate, which I did too.

DuckDNS was resolving slow as hell for me so I ended up picking up a cheap domain from Porkbun, they got API access and it seems most of the ddns tools support them too
I had used duckdns for a while back in the day. Always worked great.
These days I have a domain at namecheap which provides a DynDNS feature as well so I'm using that.
I have dyndns. I don't recommend them, unless a coworker just gave you their lifetime pro account for free.
Thanks Roody, wherever you are!
I have been using duckdns for a few years without issues. It should be simple enough , just set up a cron job with your details as listed on their site where you configure it. This keeps your dns entry up to date.
Duck DNS works great... Most of the time. If you cannot accept downtime multiple times a year, get yourself a domain and a service like cloud flare instead. DuckDNS is free and you get more than you pay for, but the bar is low when the cost is zero.
Or just use two dns providers. I have duckdns and desec. That latter seems to be a bit faster and has't had any downtime for me so far.
Another one I have seen recommended in here is afraid.org, adding it as haven't seen it mentioned yet.
I'm surprised the amount of people saying they have had no issues with DucksDNS. I've used it for about five years and had issues on and off with it being unresponsive many times.
Gave up and moved to afraid.org about a year back and that's been a very solid service ever since.
I use them. I also like their vibe and aesthetic
I got my domain through namecheap. So, I just use them, they have a dynamicdns implementation. I setup a namecheapddns docker container that auto updates mine.
Same! Except I use windows and they have a small app that you can install and run in the background which will update the IP if needed.
I also used duckdns for years before moving to this and I never had any issues using that either. It was the same thing, small app that ran on your machine and you needed the token and it just worked.
Yep same DDClient is super simple to setup with name cheap. Followed ip address changes with very little if any down time. I've never noticed between ip changes.
I’ve used no-ip.com for years without issue.
My NAS supports a few services out of the box. If you have anything like that, see what they support natively first.
I am using Dynu. It works fine and it's free, no complaints. Their app for Linux to update periodically didn't seem to work well from my experience, I just set up a cron job to do it instead.
Anything that supports bind's built-in nsupdate.
You could be behind CGNAT - I'm not sure the best way to tell but it could be the reason.
I would also highly recommend buying a cheap domain to use - it would be the price of a coffee per year but makes life so much easier and you don't have to depend on duckdns. You can buy through cloudflare, porkbun or many other options which you can search for a good DDNS service to update them.
I read briefly about CGNAT, a d I think this is the case, checking the IP of my services with external services I get an IP different from the one I see in my machine. Tested more than one DDNS service and all updated my IP with the same "wrong" value.
How do I solve this? Should I contact my ISP and hope they can provide a solution?
Yeah, first try your ISP to see if you can get a dynamic or fixed IP instead. Check if their website/FAQ mentions dynamic IP or cgnat. They might outright reject it, or try to upgrade you to an extortionate business package though. I signed up for my service and checked the cgnat before signing up but they hadn't got around to updating their website that they changed their policy. After the surprise of being behind cgnat and after screenshotting their own website, I complained and hit upgraded to a higher level package for free.
You can use tailscale to get around it, but then you need to install it on all devices and login. You can use cloudflare tunnels and think you can set it to not require login for some services. Both rely on third parties. Both are also safer than exposing directly to the public internet.
If you want full control, you have to rent a cheap vps and setup a tunnel between that and your home server, then use the public IP of the vps for your services. Wireguard is probably the best choice for VPN. You could try pangolin, which is an open source cloudflare tunnel so is more complicated than a VPN but also includes a reverse proxy.
CGNAT does have a designated range by spec. 100.64.0.0/10, which covers addresses from 100.64.0.0 to 100.127.255.255. Technically they could be using any other private address space but it would be very uncommon in a modern ISP.
I am using DuckDNS and it's working perfectly for me. I use the DynDNS feature of my Fritz!Box to update my DuckDNS-IP. The documentation on their website is spot-on for me, even for my IPv6 and I never had any issues with DuckDNS.
What I like most about the service is the possibility to use subdomains like my-service.my-username.duckdns.org. I don't know whether this is a commong feature or not.
When you had problems updating your IP Adresse did you consider that DNS information takes some time to propagate through the internet? I think it is not guaranteed that you can access a recently changed domain.
How did you test your DuckDNS entries?
If you have a Mikrotik router, you can use its built-in Dynamic DNS, and configure a CNAME on your domain name
NoIP works great for me so far!
DuckDNS has long enough latency (over 2000ms) where Google Assistant can't connect. I moved to FreeDDNS and my Home Assistant issues went away.
This is a great question that is relevant for me this week. Been trying to set up a wireguard vpn and found I need a DDNS. Lots of good answers to look into in the comments. Thanks everyone.
I already used desec.io for my domains back when I had static IP blocks at home so I just used the dyndns api with ddclient to update them automatically for my dynamic IP.
Any DNS provider is good if they offer an API that lets you use PUT to modify DNS records. You can make a small bash script and crontab it. I also used DuckDNS for a while, and it worked fine.
I'm currently using https://ipv64.net/
Been using ddnss.de before that for some time, but they had some outages. No problems with ipv64 so far.
I used nsupdate for years and it worked just fine. I remember it being down, one time only, for like five minutes. For a project that depends entirely on donations, the service and availability they provide are just awesome.
I use ddclient on my vps
I used duckdns for years without any issues at all. Only reason I switched is because I'm using Pangolin and tunneling instead of exposing my IP directly.
This might be obvious but it could be caching? Use a tool like dig to check if it's really updated. Not had a problem with duckdns, works good.