Skip to main content
Dynamic DNS keeps an A record pointed at a host whose IP address changes. Rather than logging in to update the record by hand every time your ISP rotates your address, your device (or a cron job) sends a tiny request to cPanel and the A record updates automatically. Open it from cPanel home → DomainsDynamic DNS.
Dynamic DNS page with the create form and the list of dynamic hostnames

When to use it

  • A camera, NAS, or game server at home that you want to reach by name (home.mybrand.com) instead of memorizing the current IP.
  • A development box on a residential ISP whose IP rotates.
  • A field device behind a 4G router with a public IP that’s stable for a while but not forever.
If your IP is genuinely static (a colocated server, an EC2 elastic IP), you don’t need this. Just create a regular A record in the Zone Editor.

Create a dynamic hostname

1

Pick the domain

The dropdown lists every domain on the account. Choose the one the dynamic name lives under.
2

Type the subdomain prefix

For home.mybrand.com, type home. cPanel auto-appends the domain.
3

Add a description (optional)

Free-form text. Useful when you have several dynamic entries and want to remember which one is the camera and which is the NAS.
4

Click Create

cPanel generates a unique URL the device uses to update the record. Copy it before you leave the page.
Dynamic DNS update URL after creation
The update URL looks like this:
https://your-cpanel-username:dynamic-key@your-server/dynamicdns/update?id=...
It contains your cPanel username and a one-off update key. Treat it like a password.

Configure the device or script

A dynamic DNS entry only updates when something tells it to. Three common ways:

A router with built-in DDNS

Most modern routers (FRITZ!Box, Mikrotik, ASUS, OpenWrt, pfSense) have a Dynamic DNS section. Pick Custom as the provider and paste the cPanel update URL. The router fires the update on boot and whenever it detects a WAN IP change.

A cron job on a Linux box

If the device that needs the dynamic name is itself a Linux machine, a one-line cron is enough.
*/5 * * * * curl -fsS "https://USER:KEY@cpanel.yourdomain.com:2083/dynamicdns/update?id=ID" >/dev/null
Replace USER, KEY, and ID with the values from the Dynamic DNS page. */5 * * * * runs every five minutes, which is fine for most home setups.

ddclient

The classic Linux DDNS client. It supports the cPanel protocol out of the box.
# /etc/ddclient.conf
protocol=cpanel
server=cpanel.yourdomain.com
ssl=yes
login=cpanel-username
password='dynamic-key'
home.mybrand.com
Run ddclient -daemon=300 to update every five minutes.

Manage existing entries

The list at the bottom of the page shows every dynamic hostname on the account, the current IP, the last update timestamp, and a Manage dropdown.
  • View update URL. Re-open the URL if you’ve lost it. cPanel shows it again on demand.
  • Reset key. Generate a new update URL. The old one stops working immediately. Use this if a device that knows the old URL has been compromised or decommissioned.
  • Edit description. Change the free-form description. The hostname itself can’t be edited; remove and re-create if you need to change it.
  • Delete. Drop the dynamic entry. The A record is removed too. The hostname stops resolving.

Common issues

Open the update URL manually in a browser, or curl it from the device. cPanel returns a short status line. If it says good or nochg, the request reached the server. If you get an auth error, the URL has an old key, regenerate it.
CGNAT (carrier-grade NAT) hides your real public IP behind a shared one. Dynamic DNS will still register something, but it’s not reachable from the internet. Ask your ISP for a public IPv4 (often a paid add-on) or switch to an IPv6-only setup with an AAAA record.
The cPanel Dynamic DNS protocol updates A (IPv4) records only. For dual-stack, add an AAAA record manually in the Zone Editor or use a separate IPv6 DDNS client.
It isn’t, the URL contains a one-off update key, not your cPanel password. Still, treat the URL as a secret. If a device that knows it is decommissioned, Reset key so the old URL can’t update the record any more.

Need a hand?