I have been using no-ip for around two years to remotely access my hosted service, I mostly use their free service except for a few 5 months offers I bought.
Recently, I received a full year offer in email for 8$ (COUPON CODE: MAY8), and I was wondering whether to get that or buy a 2 years domain for the same price (FROM hostinger or namecheap).
I have never bought a doamain before and my knowledge is limited to what I mostly read here. So, per your opinion, what would be better in term of usability and security, a DDNS on the router and a port open per hosted-service? or a domain with reverse proxy?
I use porkbun for my domains, cloudflare for dns, ddclient connecting to the cloudflare api for dynamic dns, and traefik as a reverse proxy to send subdomains to their respective service.
The only part I have to pay for is the porkbun domain.
$8 for a year is a good deal, but be ready to switch when that expires.
I'm a big fan of cheap (as in ~$10/yr vps) and reverse proxy over wireguard. My home ip isn't exposed and I'm able to quickly spin new containers up by updating my reverse proxy config and adding a wireguard peer.
I keep two VPSs- one as reverse proxy for all my miscellaneous services and another solely for email. The latter port forwards raw traffic over wireguard to my email server container. That way, even if the VPS gets compromised, my personal data remains secure.
I end up paying ~ $30/yr (+ whatever I'm paying in electricity) for domain + VPS. It's a bit more involved than tailscale, etc, but I'm willing to put in a little extra work to make sure I'm not at the mercy of some company getting up to some rent-seeking bullshit.
I opted for dynamic dns and reverse proxy. I configured my reverse proxy to use TLS and also to require client certificates, which I install on my devices. You get so much flexibility and added consistency to your application security that I feel it is a must.
Would you please share what dynamic dns provider you use? I remember trying to set nginx pm to use my no-ip hostname (xyz.ddns.net) but I could not figure out how to link my hosted-services as subdomains (say portainer.xyz.ddns.net)
I’m using Dynu for DDNS. They support subdomains as part of their DNS. You can configure nginx to service/route requests to each subdomain differently.
Getting a domain name may not be enough, if you don’t have a static IP you’ll still need a DDNS service.
What do you get for the paid no-ip service? Is it just a nice subdomain? You can get a custom domain and use a CNAME record to point one or more subdomains to a free DDNS subdomain.
What about neither and tailscale (free) on all your devices? Or are you often phoning home on outside devices?
I personally bought a domain name (namecheap) for my vps. Then I set up ddclient on my home pc to fetch my external IP every so often and update namecheap. But I didn't feel it was secure enough. Tailscale is easier, and i feel like it adds a layer of security.
I use tailscale and it is great, i dont mind activating a vpn whenever i want to acces my services, but that is an extra weird step for my sister to access my jellyfin library.
Do you use a reverse proxy? If so how many ports do you have exposed (say for 10 hosted services)?
i buy my domains from namecheap but i use cloudflare for name servers (free tier, dns only for everything) and have ddclient (or whatever the newest version is called now) which runs on my router. my current settings only update cloudflare when the interface changes, and then update time after the change is about 15 minutes for propagation. i work in the network department of my isp so my address doesn't change often, but the isp side of my setup is identical to any other subscriber. i use opnsense, but also manage a very small pfsense box that this works on as well. i update ipv4 dynamically, but not ipv6 yet, but i will.
I own some domains. I also have an ISP uplink with a dynamic IP.
I host the DNS for one of my domains (it's basically parked) at my registrar and use their API to update an A record in my domain with my current IP addess so I can connect Wireguard, OpenVPN and/or SSH/mosh at will.
You don't need DDNS specifically, just a router that makes the API call, or a little curl + cron savvy on an internal server
To answer your question; You're not going to delegate your NS records to your dynamic IP because that would be a disaster. Rather, you use the DNS device at your registrar and configure a DDNS client on your router to update the server at the registrar.
OR.... use dhcp-exit-hooks on your router to update DDNS at the registrar on BIND and REBIND events.
ORRRR... use crontab and curl to do a periodic query/update via the registrar's API for your current IP address. (Your registrar will have sample scripts to use.)
This is one of those fun "roll your own" solution spaces they leave as an exercise for the reader.
As far as usability and security? I like using that hostname my dynamic IP gets for call-home services. Its obscure, which helps, and also I don't like to rely on 3rd party when I don't have to. I'm incurring my own risk doing so, but neither am I exposing anything to evil Sysadmins