DDNS (Dynamic DNS)
Keeps your domains pointed at your home server even as your residential public IP changes.
Overview
Most residential connections do not have a static public IP, so the address can change after a reboot or due to ISP policy. When that happens, a DNS record still pointing at the old IP makes your services unreachable from the outside.
The DDNS feature in Nginx Proxy Guard periodically checks your public IP and, when it detects a change, automatically updates the A record (IPv4) at your DNS provider.
Supported Providers
| Provider | Description |
|---|---|
| Cloudflare | API token-based A record updates |
| DuckDNS | Free subdomain DDNS service |
| Dynu | API-Key-based DDNS via the Dynu REST API |
Note: DDNS currently supports Cloudflare, DuckDNS, and Dynu. The record type is an A record (IPv4).
Enabling Per Proxy Host
DDNS is turned on and off per proxy host.
In the Basic tab of the proxy host add/edit form, configure:
| Field | Description |
|---|---|
| DDNS auto-register | Toggle to enable DDNS for this host |
| DNS provider | Choose Cloudflare, DuckDNS, or Dynu |
Once enabled, all of that host's domains are registered as DDNS managed records.
Immediate first sync: Turning DDNS on and saving triggers one sync immediately, without waiting for the scheduler. The record reflects your current public IP within seconds. The sync runs in the background, so it does not slow down the save.
Managed Records and Auto-Sync
The domains of a DDNS-enabled host become managed records that automatically stay in sync with changes to the host.
| Host change | Managed record behavior |
|---|---|
| Add a domain | The managed record for that domain is added |
| Remove a domain | The managed record for that domain is removed |
| Disable DDNS | All managed records are removed |
| Delete the host | All managed records are removed |
Important: Disabling DDNS on a host or deleting the host does not delete the actual remote DNS record at the provider (Cloudflare/DuckDNS/Dynu). Only NPG's own tracking row is removed. In addition, DDNS records created manually (not linked to a host) are never affected by this auto-sync.
Managed records are shown with a Proxy-linked badge in the list, and their hostname and provider are edited on the proxy host, not on the DDNS page.
Bulk Import From Proxy Hosts
You can enable DDNS on several hosts at once.
Use the Add from proxy hosts button on the DDNS page to:
- Select multiple existing proxy hosts
- Pick a provider (Cloudflare/DuckDNS/Dynu)
- Enable DDNS on all selected hosts in one action
Refresh Interval
On the DDNS page you can set how often the scheduler checks the public IP and updates records.
| Setting | Description | Minimum |
|---|---|---|
| Refresh interval (minutes) | How often the public IP is checked and records updated | 1 |
A shorter interval reacts to IP changes faster, but too short adds unnecessary checks. For a typical residential connection, a few minutes is plenty.
DDNS Check in the Config Test
A proxy host's Config test includes a DDNS section.
- Validates the DNS provider credentials (read-only — it does not change any record)
- Shows the last sync status: IP, time, and success/error
This lets you quickly tell whether a DDNS issue is a credentials problem or a sync error.
Where to Find It
The DDNS feature lives under the Certificates → DDNS tab (not under Settings).
From this page you can:
- View the list of managed and manual records
- Bulk import from proxy hosts
- Set the refresh interval
Managed records are distinguished by a Proxy-linked badge, and their hostname and provider are edited on the linked proxy host. Only manual records are managed directly on the DDNS page.