Skip to content

Custom Domains

Paid plans can attach their own domain to an HTTP/HTTPS tunnel. NiceFRP proves ownership with a DNS TXT challenge; once verified, your domain is written into the generated frpc configuration alongside the platform hostname and starts serving immediately.

Prerequisites

  • A paid subscription that includes custom-domain support (Trial does not).
  • An HTTP or HTTPS tunnel.
  • The ability to edit DNS records for your domain.

Steps

1. Request the domain

Open the ConsoleTunnels → open your tunnel → Connect → in the Custom domains section, enter your domain (for example www.example.com) and click Request.

The Console then shows two things:

  • The node's public hostname: point your domain's A/AAAA/CNAME record at it.
  • A TXT record (Name and Value) that proves domain ownership.

2. Configure DNS

Add both records at your DNS provider:

TypeNameValue
A / AAAA / CNAMEyour domain (e.g. www)the node's public hostname
TXT_nicefrp-verify.<your domain>nicefrp-verify=<token shown in the Console>

Do not use a wildcard TXT record; add one entry per domain. DNS changes can take a few minutes to propagate.

3. Verify ownership

Once the DNS record resolves, go back to the Console and click Verify next to the domain. A successful check changes its status to verified; a mismatch changes it to failed, and you can check the TXT record and verify again.

The verification window is 72 hours. If it expires, the status becomes expired; Remove the domain and request it again.

4. Regenerate the configuration and run

After verification, re-download the tunnel's frpc configuration — the new file includes your domain in customDomains together with the platform hostname:

bash
frpc -c nicefrp-<tunnel-id>.toml

Your service is now reachable at https://www.example.com.

HTTPS certificates

TLS for HTTPS tunnels is handled automatically by Caddy in front of the node:

  • Platform subdomains use a wildcard certificate.
  • Custom domains get on-demand certificates that are issued and renewed automatically.

You do not upload or manage certificates; just point the domain's DNS at the node.

Removing a domain

Clicking Remove in the Console invalidates the domain at the node immediately; a stale frpc configuration that still contains it is rejected. To use the same domain again, repeat the request and verification flow.

Troubleshooting

  • Verification failed — the TXT record has not propagated yet, or the name or value was copied incompletely. Check it, wait a few minutes, and click Verify again (a failed record can be retried directly).
  • Domain already claimed — a domain can be live for only one tunnel at a time; choose another domain or contact support.
  • Overlaps a platform suffix — you cannot claim a platform-managed domain suffix or any subdomain of it.
  • Trial plan has no permission — custom domains are a paid-plan feature; upgrade to use them.
  • Verification expired — the 72-hour window passed; remove and request again.

Still stuck? Email support@nicefrp.com.