Dynamic DNS (DDNS) keeps a hostname pointed at your current IP address automatically, even when your ISP changes it. ice.domains includes free dynamic DNS as part of free DNS hosting: every A and AAAA record can get an update token, and a single HTTPS request from your router, NAS, or a cron job keeps it current. No fees, no expiring hostnames, no forced monthly confirmation emails.
Why do I need dynamic DNS?
Home and small-office connections get a new IP from the ISP whenever the router reconnects. Anything you host behind that connection - a Plex or Jellyfin server, Home Assistant, a NAS, security cameras, a game server, SSH access to your dev box - becomes unreachable the moment the IP rotates. DDNS closes that gap: a client on your network notices the change and updates the DNS record within seconds, so home.yourdomain.com always works.
How free dynamic DNS works at ice.domains
- Create a free account and add your zone - your own domain or a free subdomain.
- Create an A (or AAAA) record for the host you want to keep updated, e.g.
home. - Enable DDNS on the record in the dashboard - you get a unique update token and URL.
- Point any client at the update URL:
# One line of cron (every 5 minutes) is a complete DDNS client:
*/5 * * * * curl -fsS "https://ice.domains/api/ddns/update?token=YOUR_TOKEN&ip=auto"
With ip=auto the server uses the caller's public IP - no need to detect it yourself. Pass an explicit ip= value if you update from a different machine. Responses follow the classic DynDNS convention: good <ip> (updated), nochg <ip> (already current), badauth (bad token) - so existing tooling understands them.
Works with ddclient, routers, and NAS devices
Any client that can fetch a URL is a DDNS client. Popular setups:
- Routers (ASUS, TP-Link, MikroTik, pfSense, OPNsense, OpenWrt): choose "Custom" DDNS provider and paste the update URL.
- ddclient / inadyn on Linux: use the generic HTTP GET provider with your token URL.
- Synology / QNAP NAS: add a custom DDNS provider with the update URL.
- Anything else: the cron + curl one-liner above.
Why choose ice.domains over other free DDNS services?
| Typical free DDNS | ice.domains | |
|---|---|---|
| Your own domain | Often paid tier | Included - any domain, any registrar |
| Hostname expiry | Deleted unless confirmed every 30 days | Never expires |
| Hostnames | 1-3 on free plan | Unlimited records |
| Other record types | A only | All types - MX, TXT, CNAME, SRV etc. |
| Anycast network | Rare | Global, 50+ PoPs |
| Price | $0 with limits / $25+ per year | $0 forever |
Tips for a solid DDNS setup
- Use a low TTL (300s) on the dynamic record so IP changes propagate within minutes.
- Prefer updating from inside the network whose IP you're tracking, so
ip=autois always correct. - Treat the token like a password - it can only change that one record, but rotate it from the dashboard if it leaks.
- Hosting services on the hostname? Add the matching TXT/MX records in the same free zone.