Your server IP is 185.203.120.42:25577. Your friends are going to mistype it every single time.
A custom domain fixes that. Instead of handing out a random number, you share play.yourserver.com. Same server, different front door — one that is readable, memorable, and portable. If you ever move hosts, change IPs, or migrate between providers, your friends' address books do not need to update. The domain stays the same; only the DNS record behind it changes.
This guide covers the whole process: buying a domain, pointing it at your server, hiding custom ports with an SRV record, and the handful of quirks that trip people up every time. It works the same whether your server lives on your own hardware, a VPS, or a managed host like Swelis.
Why Bother?
Three reasons, in order of how much they will matter to you later:
- Memorability. "play.enderverse.gg" is infinitely easier to share than "185.203.120.42:25577". It is also what every well-run community server uses — it quietly signals that you care about the experience.
- Portability. If you move from a home PC to hosted, or from one host to another, the IP changes. The domain does not. You update a single DNS record and your players keep typing the same thing into Minecraft.
- Professionalism. If you are running an SMP, a modded network, or thinking about selling ranks, a naked IP signals hobby-tier. A domain signals "this is a real server."
The cost is low — most domains are $8–$15 per year — and the setup is a one-time ten minutes of DNS work.
How Minecraft Resolves a Domain
Minecraft clients resolve server addresses in a two-step process that is important to understand before you edit any records.
When you type play.yourserver.com into the Minecraft client, it does this:
- First, it looks for an SRV record at
_minecraft._tcp.play.yourserver.com. SRV records can encode both a target hostname and a port, which is how servers on non-default ports hide their port number from players. - If no SRV record exists, the client falls back to a regular A record (IPv4) or AAAA record (IPv6) for
play.yourserver.comand connects on the default port 25565.
This matters because it dictates which record type you need:
- Running on the default port 25565? You only need an A record. SRV is optional.
- Running on any other port? You need an SRV record, or players will have to type the port manually (
play.yourserver.com:25577), which defeats half the point.
Bedrock Edition does not support SRV records — more on that below.
Step 1: Buy a Domain
You can use any registrar. Common choices:
- Cloudflare — cheapest pricing, great DNS panel, free DDoS protection. Highly recommended.
- Namecheap — straightforward UI, fair prices.
- Porkbun — low prices and a clean panel.
- GoDaddy / Squarespace Domains — work fine, but you will usually pay more.
If you already own a domain you use for a website or email, you do not need a second one — you can just create a subdomain like play.yourdomain.com and leave the root domain alone.
Step 2: Find Your Server's IP
You need the public IPv4 address that your server listens on. Where you get it depends on how your server is hosted.
- On Swelis, open the service in the Control Panel. The IP and port are displayed at the top of the dashboard — for example
185.203.120.42:25565. Copy the IP portion; the port matters for Step 4. - On a VPS, use the IP your provider assigned you (visible in their dashboard, or run
curl https://api.ipify.orgon the box). - Self-hosted at home, it is your router's public IP — visit whatismyip.com. If your ISP puts you behind CGNAT you will need a tunnel (Cloudflare Tunnel, Playit.gg, or similar) — see the port forwarding guide for the full story.
Step 3: Create an A Record
In your registrar's DNS panel, add a new record:
| Type | Name | Value | TTL |
|---|---|---|---|
| A | play | 185.203.120.42 | 300 |
play here is the subdomain — the full hostname will be play.yourserver.com. You can use any label you like: mc, server, smp, or even @ (which means "the root domain itself", so people can connect to yourserver.com with no prefix).
TTL (Time To Live) is how long resolvers cache the record. 300 seconds (5 minutes) is a sensible default during setup — if you need to change the IP later, the world notices quickly. Some registrars use "Auto" which is fine.
Wait a few minutes, then test:
dig +short play.yourserver.com
# 185.203.120.42
If your server runs on port 25565 (the default), you are done — friends can now connect with just play.yourserver.com and no port.
Step 4: Hide a Non-Default Port With an SRV Record
If your server runs on anything other than 25565 — which is common on shared hosts or when you run multiple servers from one IP — you need an SRV record. Without it, players type play.yourserver.com:25577 manually, and half of them get it wrong.
Add a second record:
| Type | Name | Service | Protocol | Priority | Weight | Port | Target |
|---|---|---|---|---|---|---|---|
| SRV | play | _minecraft | _tcp | 0 | 5 | 25577 | play.yourserver.com |
The exact field layout depends on your registrar — some combine the name and service into a single string like _minecraft._tcp.play, and some hide priority/weight behind default values. Consult your registrar's SRV documentation if in doubt.
The target must also resolve to an A record. An SRV record points to a hostname, not an IP. Most people point the SRV target at the same subdomain they just created an A record for, so it can resolve via the A record you set up in Step 3.
Test:
dig +short SRV _minecraft._tcp.play.yourserver.com
# 0 5 25577 play.yourserver.com.
Now players can connect with just play.yourserver.com and the client figures out the port automatically.
Step 5: Test It in Minecraft
Open Minecraft, go to Multiplayer → Add Server, type play.yourserver.com (no port), and click Done. If the icon loads and the ping shows green, you are live.
If it does not connect, move on to troubleshooting.
Troubleshooting
"DNS propagation" — the usual culprit
DNS changes can take up to an hour to propagate globally (usually much faster with a low TTL). If the record works on dig but not in the Minecraft client, wait five more minutes, then try again. Restart your router if the DNS cache on your local network is stale.
Wrong SRV name format
The most common SRV mistake is putting the subdomain in the wrong field. The record's full name must end up as:
_minecraft._tcp.play.yourserver.com
Different panels split this into different fields. On Cloudflare, "Service" is _minecraft, "Protocol" is TCP, and "Name" is the subdomain play. On Namecheap, you often enter the service and protocol directly in the name field. Read your registrar's docs if the dig test returns nothing.
Cloudflare "orange cloud" (proxy mode)
If you use Cloudflare and your A record has the orange cloud enabled (proxy mode), Cloudflare terminates the connection as an HTTP reverse proxy — which breaks Minecraft, because Minecraft is not HTTP. Set the record to "DNS only" (grey cloud) for anything Minecraft-related. SRV records on Cloudflare are never proxied, so they are always fine.
Cloudflare does offer a Spectrum product that can proxy Minecraft traffic, but it is paid and overkill for most servers.
Bedrock Edition
Bedrock clients on Windows 10, consoles, and mobile do not follow SRV records. If any of your players are on Bedrock, you have two choices:
- Run your Bedrock server (or Geyser proxy) on the default Bedrock port 19132, point a subdomain's A record at the IP, and tell Bedrock players to enter the domain without any port.
- Use a different subdomain for Bedrock (e.g.
bedrock.yourserver.com) so Java players useplay.and Bedrock players use the Bedrock one — especially useful if you use Geyser.
Firewall or ISP blocking the port
If dig resolves correctly but the client times out, the server may not be actually reachable on that port. Test with:
nc -vz play.yourserver.com 25577
# Connection to play.yourserver.com 25577 port [tcp/*] succeeded!
If this fails, the issue is not DNS — it is your server not being publicly accessible. See the port forwarding guide.
On Swelis
A few things worth knowing if you are running on Swelis:
- Your IP is stable. It does not change when you restart, resize the server, or move tiers. You set the DNS record once and forget it.
- No CGNAT, no double-NAT. Every Swelis service gets a real, routable public IP. Your A record can point at it directly.
- Custom port support out of the box. The default port 25565 is assigned when possible, but if you run multiple servers they automatically get unique ports — which is exactly the case where an SRV record is useful.
- Automated domain verification is in progress. A built-in flow that points-and-verifies a domain directly from the dashboard is being rolled out. For now, create the DNS records at your registrar using this guide and they will work immediately.
You do not need to do anything special on the Swelis side — a custom domain is a client-side thing. The server does not know or care what name players typed to reach it.
Quick Reference
| Task | Details |
|---|---|
| Default Java port | 25565 (TCP) |
| Default Bedrock port | 19132 (UDP) |
| Record for default-port servers | A record only |
| Record for custom-port servers | A record + SRV record |
| SRV record format | _minecraft._tcp.<subdomain> → port, target |
| Recommended TTL | 300 seconds during setup; 3600 after |
| Cloudflare proxy mode | Must be OFF (grey cloud) for A records |
| Bedrock SRV support | Not supported — use an A record on port 19132 |
| Test A record | dig +short play.yourserver.com |
| Test SRV record | dig +short SRV _minecraft._tcp.play.yourserver.com |
| Test reachability | nc -vz play.yourserver.com <port> |
Related Guides
- How to Set Up Your First Minecraft Server in Under 2 Minutes — The full setup walkthrough from zero to online.
- How to Port Forward a Minecraft Server (Step by Step) — If you are self-hosting and your friends cannot connect at all.
- How to Make a Minecraft SMP Server in 2026 — Plugins, permissions, and community setup once your domain is pointing somewhere.
- Best Minecraft Server Hosting 2026 — If you are still deciding where to host.
- A Complete Tour of the Swelis Control Panel — Where to find your IP, port, and the forthcoming domain flow.
