Dynamic DNS explained

A name that keeps pointing at your house even though the address underneath it keeps moving.

The problem it solves

You want to reach something at home from outside: a camera, a file server, a game server. You need an address to connect to, and yours is dynamic, so it will change eventually and everything pointing at it will break at a moment you did not choose.

Dynamic DNS fixes that with a layer of indirection. You get a hostname, something like home.example.net, and a small piece of software keeps that name pointing at whatever your address currently is.

How dynamic DNS keeps a hostname pointing at a changing address A small client at home notices the public address changed and tells the dynamic DNS provider. The provider updates the record, so a hostname keeps working even though the address underneath it moved. A name that follows a moving address Your router or a small client at home notices the address changed tells Dynamic DNS provider updates the record home.example.net now points at the new one What changes, and what does not Monday home.example.net -> 203.0.113.42 Thursday home.example.net -> 198.51.100.9 The address underneath moved. The name you gave people did not, so nothing they saved has to change. This solves reachability, not access. It does nothing about carrier-grade NAT, where there is no inbound path to point a name at.
The client notices the address changed and tells the provider, which updates the record. The name you gave people never changes, so nothing anyone saved has to be updated.

Setting it up

  1. Check your router first. Most consumer routers have dynamic DNS built in, often under Advanced or WAN settings, with a list of supported providers. If yours does, this is the least fragile option, because the router always knows the current address first-hand.
  2. Pick a provider. Several offer a free tier, usually with a subdomain of theirs and a requirement to confirm the account periodically. Paid tiers let you use your own domain.
  3. Enter the credentials in the router, or install the provider's small client on a machine that is always on if the router does not support it.
  4. Test from outside. Mobile data with Wi-Fi off, or ask someone else. Testing from inside your own network often fails for an unrelated reason, covered below.
The hostname is not the whole job

Dynamic DNS gets a connection to your router. Getting it to a specific device inside still requires port forwarding, with all the caution that involves. The name solves "which address", not "which machine".

When it does not work

You are behind carrier-grade NAT

The big one, and worth checking before you set any of this up. If your router's WAN address is in 100.64 through 100.127, there is no inbound path to your house at all, and a hostname pointing at a shared provider gateway achieves nothing. See what carrier-grade NAT is for the four ways around it.

You are testing from inside

Many routers cannot loop a connection to their own public address back inside, a behavior called NAT hairpinning. Your setup can be perfect and still appear broken when tested from the sofa.

The update did not happen

If the address changed and the record did not follow, the client is not running, its credentials expired, or a free account lapsed for want of a confirmation click. Most providers show the last update time, which is the first thing to look at.

Something is caching the old answer

DNS records carry a time to live, and resolvers respect it. A short TTL is normal for dynamic DNS, but there can still be a gap between the address changing and everyone seeing the new one.

The alternative worth considering first

Dynamic DNS plus port forwarding is the traditional answer, and it means opening a permanent, unauthenticated path from the internet to a device in your house. For a lot of people the goal is simply "reach my files from my phone", and there is now a better shape for that.

A mesh VPN has each of your devices make an outgoing connection to a coordination service, then talk to each other over that. Outgoing connections always work, including through carrier-grade NAT and double NAT, so there is nothing to forward, nothing exposed to the internet, and no hostname to keep updated. Several are free at personal scale.

Dynamic DNS and forwardingMesh VPN
Works behind CGNATNoYes
Exposed to the internetYes, by designNo
Anyone can connectYes, that may be the pointOnly your devices
Good for a public game serverYesNo
Good for reaching your own filesWorkableBetter

The honest summary: if you are publishing something for other people to reach, dynamic DNS is the right tool. If you are reaching your own devices, a mesh VPN is usually less work and much less exposure.

Where to swim next