Setting up Dynamic DNS in cPanel

cPanel includes a built-in Dynamic DNS feature that automatically keeps an A record pointed at a changing IP address — useful for home servers, IoT devices, or anything behind a residential ISP that doesn't hand out static IPs. This article covers how to enable it on your ipxcore cPanel hosting account and how to configure common clients to send updates.

Note: if you arrived here from an older article, the previous PHP-script approach has been retired in favor of cPanel's native feature, which is simpler, more secure, and works without any code on your end.

Step 1: Enable Dynamic DNS in cPanel

  1. Log in to cPanel.
  2. Under the Domains section, click Dynamic DNS.
  3. Click Create.
  4. Choose the domain or subdomain you want to keep updated. The hostname must already exist in your DNS zone — if it doesn't, add it first via cPanel's Zone Editor as an A record pointing to any placeholder IP (cPanel will rewrite it on the first update).
  5. Add a description (e.g., "Home office router" or "Garage Pi") so you can tell entries apart later.
  6. Click Create.

cPanel generates a Dynamic DNS Update URL. It looks like this:

https://server.ipxcore.com:2083/dynamicdns/<long-token>

This URL is the only thing you need to keep updated. Anyone who hits it from a given IP causes that IP to be written into the A record. Treat the URL like a password — if it leaks, anyone can steer your subdomain.

Step 2: Configure a client to hit the URL on a schedule

You have several options depending on what you're running.

Option A: cron + curl (Linux, Mac, Raspberry Pi)

The simplest possible setup. Add a cron entry that fires once every 5 minutes:

*/5 * * * * curl -s "https://server.ipxcore.com:2083/dynamicdns/<your-token>" > /dev/null

Edit the crontab with crontab -e. The request takes under a second. cPanel checks the source IP and updates the A record only if it has changed, so this is safe to run frequently.

Option B: ddclient (Linux daemon, runs as a service)

ddclient is a popular DDNS client packaged in most Linux distributions. It supports a generic "no-IP-style" update protocol that works with cPanel's URL.

Install: apt install ddclient (Debian/Ubuntu) or yum install ddclient (RHEL/Rocky/Alma).

Edit /etc/ddclient.conf:

protocol=dyndns2
use=web
ssl=yes
server=server.ipxcore.com:2083
login=ignored
password=ignored
yourdomain.com

For a cPanel-style endpoint, ddclient v3.10+ also supports a custom protocol where you can paste the full update URL directly. Check your distro's ddclient version with ddclient --version and consult man ddclient for the latest syntax.

Option C: Router with built-in DDNS support

Most consumer and business routers support a "Custom DDNS provider" or "Dynamic DNS" client built into the firmware. The exact UI varies; the values you'll need are usually:

  • Service / Provider: Custom (or "DynDNS-compatible")
  • Server / Host: server.ipxcore.com:2083
  • Update URL / Path: /dynamicdns/<your-token>
  • Username / Password: any value — cPanel doesn't use these for token-authenticated URLs (some routers require non-empty fields, so put placeholder text)

If your router only supports a fixed list of DDNS providers (Dyn, No-IP, etc.) and not a custom URL, fall back to Option A by running cron + curl on any always-on device on your network.

Option D: Windows scheduled task

Open Task Scheduler → Create Basic Task. Set it to trigger every 5 minutes. For the action, run:

powershell.exe -Command "Invoke-WebRequest -Uri 'https://server.ipxcore.com:2083/dynamicdns/<your-token>' -UseBasicParsing"

Step 3: Verify it's working

After the first update fires, check that the A record reflects your current public IP:

$ dig home.yourdomain.com +short
203.0.113.42

If the value matches the public IP of your home network (use api.ipify.org to check), DDNS is working.

You can also check the Dynamic DNS page in cPanel itself — the listing shows the last-updated timestamp and the current value for each entry.

Common pitfalls

  • The URL was checked out before DNS was set up. If you create the DDNS entry before adding the A record in Zone Editor, the first update fails silently. Add the A record (any placeholder IP) first, then create the DDNS entry.
  • Cron isn't running. Verify with systemctl status cron (Linux) or launchctl list (Mac). On a Raspberry Pi running headless, also confirm the device has internet at boot — some Wi-Fi setups race the cron start.
  • Firewall block on excessive requests. Hitting the URL more than once per minute will get your client IP blocked by our CSF firewall. Stick to a 5-minute cadence (or longer) per entry.
  • Lost the URL. The URL is shown only once when you create the entry. If you lose it, delete the DDNS entry and recreate it — this generates a new token. The A record itself is preserved.
  • IPv6 / dual-stack. cPanel's native DDNS updates the IPv4 A record. If you also need an AAAA record updated for IPv6, create a separate entry pointing to the same hostname.

Why this is better than the old PHP-script method

  • No credentials in flight. The old approach put your cPanel username and password in a script on the client; this approach uses a one-purpose URL token that can only update one specific A record.
  • No script to maintain. cPanel handles the API call internally; you just hit a URL.
  • Works with any client that can make an HTTP request — including routers and devices that can't run PHP.
  • Auditable. The Dynamic DNS page shows when each entry last updated, so you can spot a stuck client immediately.

If you're still running the old PHP script, switching takes 5 minutes: enable the cPanel feature, swap the cron job for the curl one above, and remove the old script and cron entry.

  • Dynamic DNS, DDNS, cPanel, home server, router, cron
  • 535 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Nameservers

The nameservers to use for our webhosting services are below: all1.dnsroundrobin.net...

Setting up Cloudflare with cPanel: the right way

Cloudflare is a free CDN and DDoS-protection service that sits in front of your ipxcore cPanel...

Speeding up WordPress on cPanel hosting

A slow WordPress site costs you visitors, conversions, and search rankings — Google has...

How to migrate your website to ipxcore from another host

Migrating an existing website to ipxcore is a process we've helped thousands of customers...

Setting up email accounts in cPanel

Every ipxcore cPanel hosting plan includes unlimited email accounts on your domain. This article...