Use no-ip free and run their dynamic update client (DUC) on any always-on device behind the router. There's no reason that the DDNS client has to run on the router.
https://www.no-ip.com/downloads.php
The client is cross platform and should run on pretty much anything.
EDIT:
Looks like they also have an ubuntu package pre-made, so you don't have to compile it:
Ok, I was fighting the inevitable by trying to make it only available on the intranet by a name. you both helped clear that up.
I have a domain name on the www.no-ip.com service setup on my router and an A record that i basically never use just sitting out there. the service is connected to my router So I put in a port forward from port 80 to port 81 and updated the "server_name" to the domain that i have an A record for and that seemed to have worked ......not sure if that is proper...but it worked!
I imagine that i will want to use a different server port...not sure if the incoming port should be different
Your best bet will be to set up a Dynamic DNS address that will map a name address alias to whatever your current public IP address is.
You can use something like https://www.no-ip.com/ with a dynamic DNS client (like DDclient) running on one of the machines on your home network.
With the built in Windows one, all you gotta do is open up port 3389, and maybe set up a DNS if you want an easy to remember domain name for your ip which takes a few minutes to set up on www.no-ip.com
​
​
Here's a screenshot of my configuration of the port forwarding on my router, which forward port 80 and 443 to my Nextcloud servers internal IP: https://ibb.co/hPFXoV
I do not use a custom OS/firmware on my router and I have not manually added any iptables.
I try to connect via my external public dynamic IP (yes it's the correct IP ;) ), I have also made a dyndns service (www.no-ip.com) and I have my own domain name. None works... I don't understand why the ports says closed, when I have forwarded them?