- Buy a domain (a .com is about $10 to $11 a year at a no-markup registrar) and add an A record for
playpointing at your server's IP. - If your port is not 25565, add an SRV record too so Java players can skip the port. Bedrock players always type the port; Bedrock ignores SRV.
- On Cloudflare, the record must be DNS only (gray cloud). The orange proxy carries only web ports, so port 25565 would never reach your server.
A Minecraft server domain name does one job: it lets players type play.yourserver.com instead of 203.0.113.7:25565, and it keeps working when you change hosts. On our list, none of the online servers use a bare IP as their address, and 47% of addresses start with play., mc., join. or hub.. That pattern is what players expect to see in a list row, in a video and in a Discord invite. Setting it up is one purchase and one DNS record, plus a second record if your port isn't the default and a caveat for Bedrock players.
This guide covers buying a domain and what it really costs, the free subdomain routes and their catch, the DNS records in plain terms, the Cloudflare mistake that breaks half the "my domain doesn't work" posts, what Bedrock players still have to type, and making the address on your listing match.
Buying a domain: registrars and what it costs
A domain is rented by the year from a registrar. The wholesale price of a .com is set by the registry and passed through by registrars that don't add a markup: at Cloudflare Registrar, which states it sells "without markups or additional fees", a .com is $10.44 a year as we write this and rises to $11.15 on November 1, 2026, when the registry's 7% increase takes effect. Registrars that do add a markup usually charge $12 to $20, often with a cheap first year and a higher renewal, so the number to check is the renewal price, not the headline.
- Pick a boring ending.
.com,.netor.orgare cheap and players can spell them. Gaming-flavored endings such as.ggcost several times more per year; check the renewal before you fall for the name. - Skip premium names. Registrars mark some short names as "premium" at hundreds of dollars. A name with a word in front (
playyourserver.com) is fine; players type the subdomain anyway. - Get WHOIS privacy included. Cloudflare includes redaction free; some registrars charge for it. Your home address should not be attached to a game server.
- Turn on auto-renew and use a real email. The most common way a server loses its address is a renewal email in a dead inbox. An expired domain can be bought by anyone, including someone who then points it at their own server.
Our name guide covers choosing a name that is free as a domain, a Discord and a username at the same time.
Free subdomains and the catch
You can have an address without buying anything, and for a server for friends that is the right call. The options, from best to worst:
| Option | What you get | The catch |
|---|---|---|
| Your host's subdomain | Most paid hosts give yourname.theirhost.net or let you pick one in the panel | It carries the host's name, and you can't take it with you when you move. 32 servers on our list use one. |
| DuckDNS | A free yourname.duckdns.org that doesn't expire, with a simple update script for a changing home IP | The name is obviously a dynamic-DNS address, and you can't add an SRV record under it. |
| No-IP free hostname | One free hostname, useful for home hosting with a changing IP | Free hostnames have to be confirmed every 30 days or they are dropped, which is how home servers vanish over a holiday. |
| Subdomain "creators" run by other servers or hosts | A free yourname.someoneelses.com | You own nothing. If the service closes or the owner changes the record, your address dies and every list, video and Discord invite pointing at it dies with it. |
The catch is the same in every row: you don't own it. For anything you plan to list publicly and promote, spend the $11; it is less than one month of a small host and it is the one part of your server that never has to change.
DNS records in plain terms
DNS turns a name into an address. In your registrar's DNS panel (or Cloudflare's, if you moved the nameservers there) you add records under your domain. These are the only ones that matter for a game server.
| Record | What it does | When you need it | Example |
|---|---|---|---|
| A | Points a name at an IPv4 address | Always. This is the one that makes play.yourserver.com work on port 25565. | Name play, value 203.0.113.7 |
| AAAA | Same, for IPv6 | Only if your host gives you an IPv6 address and you want it reachable that way | Name play, value your IPv6 |
| CNAME | Makes a name an alias of another name | If your host gives you a hostname rather than an IP. Don't use it as the target of an SRV record; point SRV at an A record. | Name play, value node7.host.net |
| SRV | Tells the Java client which host and port to use when the player types only the name | Only when your port is not 25565, or the game runs on a different host than the name points at | Name _minecraft._tcp.play, port 25566, target play.yourserver.com |
So the default setup is one A record. Type play as the name, your server's IP as the value, and leave TTL on automatic. If your host gives you a port other than 25565 (common on shared hosting), add the SRV record as well; our SRV record guide has the exact fields, the Cloudflare screen and the testing commands. To check a domain from any computer, run nslookup play.yourserver.com: if it prints your IP, the A record is live.
Changes usually show up within minutes, but a record you had before with a long TTL can take hours to expire from players' resolvers. Set new records up before you announce the address, not after.
The Bedrock caveat
Bedrock Edition connects over UDP and does not look up SRV records; GeyserMC's common issues page lists a domain that resolves only through an SRV record as a reason Bedrock players can't connect. In practice:
- Bedrock players type the domain and the port. The A record works for them (
play.yourserver.com), but they enter the port in a separate field, and it must be your Bedrock or Geyser port, 19132 by default. - If Geyser runs on 19132, the plain domain is enough for Bedrock, because 19132 is what the Bedrock client assumes. If your host gave Geyser a different port, put that number in your listing's Bedrock box and in every join guide.
- Don't rely on SRV for a crossplay server. Give Java players the SRV record for a clean address, and give Bedrock players the domain plus port in your description, your Discord and your website. Our crossplay guide covers the Geyser side.
Matching the address on your listing
List the address players will type, not the IP behind it. Our pinger resolves your domain on every check, so when you move hosts and update the A record, your listing keeps working and your history stays with it; a listing made with a raw IP is tied to that machine. If you list a bare hostname with no port, we do what the Java client does and look up _minecraft._tcp.yourname first, then fall back to 25565, so a server behind an SRV record lists correctly with just the name.
Two details owners get wrong. The address on the listing is compared with what the ping actually reaches, so listing the same server twice under two names shows up as a duplicate. And the Bedrock address is separate: for a Java server with Geyser, our daily probe tries your address on port 19132, and a real answer adds a Bedrock join box to your page and puts you on the crossplay list. If Geyser is on another port, set the Bedrock address and port yourself after you claim the listing.
When the domain resolves and the server answers on it, add it to the list with that address. It takes two minutes, we check that it is online, and the verification code goes in your MOTD.
Quick questions
How much does a Minecraft server domain cost?
About $10 to $11 a year for a .com at a registrar that charges the registry price (Cloudflare lists $10.44, rising to $11.15 on November 1, 2026), and $12 to $20 at registrars that add a markup. Check the renewal price, not the first-year offer.
How do I connect a domain to my Minecraft server?
Add an A record named play with your server's IP as the value. If your port is not 25565, also add an SRV record named _minecraft._tcp.play with the port and the target play.yourdomain. On Cloudflare, set the A record to DNS only.
Can I get a Minecraft server domain for free?
Your host's subdomain, DuckDNS or a No-IP free hostname work for a server for friends. You don't own any of them, No-IP's free hostname has to be confirmed every 30 days, and you can't add an SRV record under someone else's domain, so buy a domain before you promote a public server.
Why does my domain work on Java but not Bedrock?
Bedrock doesn't read SRV records, so a domain that only works through one fails for Bedrock. Bedrock players need an A record to resolve the name plus the port typed in the port field, 19132 unless your host changed it.
