The alpha is open — one month of free server. Apply →
RMDCGames MCRMDCGames MC
Technical

Playing without a port number: subdomains and SRV records explained

Some servers are joined by simply typing myservermc.rmdc.cloud. Others insist on 203.0.113.10:25567, which has to be pasted to every new player. The difference isn't in the server itself — it's in what the Minecraft client finds in DNS before it even opens a connection.

What the client does when you type an address

The Java client follows two steps, in this order:

  1. It queries DNS for an SRV record named _minecraft._tcp.your-address. That record, if it exists, carries both the real hostname and the port.
  2. If there's no SRV record, it falls back to an A (or AAAA) record and uses the default port, 25565.

That's the whole trick behind "no port to remember": an SRV record lets the server listen on any port while players type a bare address.

Why so many hosts still show a port

Because one machine hosts many servers and they can't all listen on 25565. The simplest answer is to give each customer a different port on a shared IP — and let the player deal with it.

The other approach is to put a proxy in front of the servers. The proxy listens on 25565 and reads the hostname the client announces at connection time to decide which server to route the session to. Every server then gets its own name, and no port ever shows up. That's the approach described on our infrastructure page.

The trap: the IP address your plugins see

A badly configured proxy makes its own address appear instead of the player's. The direct consequence: anti-cheat, ban and connection-throttling plugins see every player as one and the same person, and an IP ban bans everyone at once.

The standard fix is the PROXY protocol: the proxy forwards the original address to the server, which hands it back to plugins. It's worth checking with any host — run a /whois on a connected player and compare it with their real address.

What about Bedrock?

Bedrock edition doesn't use SRV records the same way and runs over UDP rather than TCP. A Java server and a Bedrock server aren't configured identically, and a single SRV record won't serve both.

In practice

On our side the subdomain is chosen at order time and comes at no extra cost: see the dedicated documentation page for how to set it up, or the pricing grid if you're still comparing plans.

← Back to the blog