Minecraft SRV Record Generator
To let players join with play.yourdomain.com instead of IP:port, create an A record for the hostname and an SRV record named _minecraft._tcp.play that points to it with your port. Enter your details and copy both records.
SRV record fields explained
| Field | Example | What it does |
|---|---|---|
| Name | _minecraft._tcp.play | Service (_minecraft), protocol (_tcp) and the address players type (play). Some DNS panels show these as three separate fields. |
| Priority | 0 | Lower values are tried first. With a single server any value works; 0 is common. |
| Weight | 5 | Splits traffic between records that share the same priority. Irrelevant with one record. |
| Port | 25570 | The port your server listens on, as shown in the panel. |
| Target | play.example.com | A hostname with an A or AAAA record. It cannot be an IP address. |
Setting it up in Cloudflare
- Open DNS → Records for your domain and add an A record: name
play, IPv4 address of your server, proxy status DNS only. - Add an SRV record: name
_minecraft._tcp.play, priority0, weight5, your port, and targetplay.yourdomain.com. - Save, wait a minute and run
nslookup -type=SRV _minecraft._tcp.play.yourdomain.com. The answer should list your port and target. - Join with
play.yourdomain.comin Minecraft Java Edition, without a port.
Other DNS hosts use the same values. If the panel adds your domain to every name automatically, enter only _minecraft._tcp.play; typing the full name there creates _minecraft._tcp.play.example.com.example.com, which Minecraft never finds.
Other DNS providers
| Provider | Where the values go |
|---|---|
| Cloudflare | Separate Service, Protocol and Name fields in older UI; one Name field (_minecraft._tcp.play) in the current one. A record must be DNS only (grey cloud). |
| Namecheap | Advanced DNS → SRV record. Service _minecraft, protocol _tcp, name play. Enter the target without a trailing dot. |
| GoDaddy | DNS → Add → SRV. Service _minecraft, protocol _tcp, name play, target as the hostname. |
| Google Cloud DNS / Route 53 / BIND | Full record name _minecraft._tcp.play.example.com. with data "0 5 25570 play.example.com." — the zone-file line this generator prints. |
| Porkbun, OVH, IONOS and most others | Same five values. If the panel asks for one Name field, use _minecraft._tcp.play; if it asks for Service and Protocol separately, split them. |
Hostname requirements and the A record
The SRV target must be a hostname, never an IP address, and that hostname must itself resolve through an A record (IPv4) or AAAA record (IPv6). That is why the generator always prints two records when you enter an IP: the A/AAAA record for play.example.com and the SRV record that points at it. If your host already gives you a hostname for the server (for example node1.host.net), the SRV record can target it directly and no A record is needed on your side.
Common mistakes
- Target set to an IP. Resolvers return it, Minecraft ignores it. Create an A record and point the SRV at the name.
- Domain entered twice. Most panels append
example.comautomatically; the generated name field already accounts for that. - A record proxied through Cloudflare. The orange cloud only forwards HTTP. Set it to DNS only.
- Trailing dot handling. Zone files need
play.example.com.; most web panels reject the dot. Use the version the panel expects. - Expecting Bedrock to use it. Bedrock Edition does not read SRV records. Bedrock players still type the port unless it is 19132 (see the Bedrock hosting page, or the Geyser setup guide if Bedrock players join a Java server).
- Testing too early. New records usually work within minutes, but a changed record stays cached until its old TTL expires. DNS updates are not instant; check with
dig SRVbefore assuming the record is wrong.
Frequently asked questions
What is a Minecraft SRV record?
An SRV record tells Minecraft Java Edition which hostname and port to connect to. When a player types play.example.com, the game looks up _minecraft._tcp.play.example.com; if the record exists it connects to the target and port it lists, so players never type the port.
Do I need an SRV record if my server uses port 25565?
No. 25565 is the Java default port, so an A record on play.example.com that points at the server IP is enough. You only need SRV when the server runs on another port or when the target hostname differs from the address players type.
Why is my Minecraft SRV record not working?
The most common causes are: the name includes the domain twice (some panels append it automatically), the target is an IP instead of a hostname, the target hostname has no A record, the A record is proxied through Cloudflare (it must be DNS only), or DNS has not propagated yet. Check the record with nslookup or dig before testing in game.
Does the SRV record work for Bedrock Edition?
No. Bedrock Edition does not look up SRV records, so Bedrock players still enter the hostname and the port (19132 by default). An A record on the hostname still lets them use a name instead of the IP.
Should I proxy the record through Cloudflare?
Not with the regular proxy. Cloudflare's orange cloud is built for web traffic; proxying Minecraft needs Cloudflare Spectrum, a separate paid product. Without it, set the A record that your SRV target uses to DNS only (grey cloud) so Minecraft traffic goes straight to the server.
How long does an SRV record take to work?
New records usually resolve within minutes. If you changed an existing record, resolvers can keep the old value until its TTL expires, so a short TTL such as 5 minutes is useful while you set things up.