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 Console → Tunnels → 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 (
NameandValue) that proves domain ownership.
2. Configure DNS
Add both records at your DNS provider:
| Type | Name | Value |
|---|---|---|
| A / AAAA / CNAME | your 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:
frpc -c nicefrp-<tunnel-id>.tomlYour 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
failedrecord 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.