Minecraft SRV records and server-address resolution
A hostname without an explicit port may resolve through _minecraft._tcp SRV, redirecting host and port; ICMP ping is the wrong Minecraft test.
- Last verified
- Evidence cutoff
Direct answer: A Java Edition server address is not “whatever ping says.” When you enter a hostname without an explicit port, modern clients and status checkers may look up a DNS SRV name of the form _minecraft._tcp.<hostname>. That record can redirect both the host and port the game actually uses. Typing an explicit port—including the default 25565—is treated by this checker as a direct path that skips SRV. An A/AAAA record alone, or an ICMP echo reply, does not prove Minecraft can connect.
What the address string means
Players usually type one of:
a bare IPv4/IPv6 address (optionally with
:port)a domain that already has an A or AAAA record on port 25565
a short domain that only works because of an SRV redirect to another hostname and non-default port
Default Java game port is 25565 when the port is omitted. Bedrock multiplayer addressing is a different stack and is outside this article’s scope.
How SRV resolution works
DNS SRV records (RFC 2782) tell clients where a service lives: target hostname, port, priority, and weight. Minecraft Java, since 1.3.1, uses a fixed service label:
_minecraft._tcp.<the-name-players-type>Example shape (not a live claim about any specific operator):
_minecraft._tcp.play.example.org. 300 IN SRV 0 5 25565 mc.example.org.Important properties, grounded in the Java setup tutorial, Server List Ping notes, RFC 2782, and this product’s living checker:
SRV is not a substitute for an address record. The SRV target still needs resolvable A/AAAA (or other address) records.
SRV can supply a non-default port so players do not type
:25566(or whatever you host on).Connect target vs handshake name are separate. After following
_minecraft._tcp.example.comtomc.example.org, the TCP connection uses the SRV targethost:port. This checker’s handshake still sends the original typed hostname (and the port used for that address form)—it does not rewrite the handshake server-address field to the SRV target. Vanilla clients and other tools may differ, so do not assume every implementation rewrites the handshake name the same way.Priority first; weight is selection among equals. RFC 2782 prefers lower priority values, then uses weighted probability among equal-priority records. This checker currently sorts equal-priority records by descending weight and takes the first—not a full RFC weighted-probability selector. Do not treat that as RFC-complete load balancing.
When SRV is used vs bypassed (this checker)
| Address form | SRV lookup (_minecraft._tcp.<host>) |
|---|---|
| Hostname with no explicit port (defaults to 25565) | Allowed |
Hostname with any explicit port, including :25565 | Skipped — direct connect to host:port |
| Raw IP (with or without port) | Skipped |
localhost | Skipped |
Other tools may differ. Compare results only when the same address string and the same explicit-port rule are used.
Missing SRV vs “service unavailable” (RFC 2782 Target ".")
These are not the same outcome:
| DNS outcome | RFC 2782 meaning | This checker’s practical path |
|---|---|---|
| No SRV record, NXDOMAIN for the SRV name, empty usable set, or lookup failure | Client-specific; many Minecraft paths fall back to direct A/AAAA on the typed host and default/explicit port | Falls through to direct connect on the typed host and port |
A sole SRV record whose Target is . | Service is decidedly not available for that name; do not treat it as “no record, try direct” | Not yet a dedicated public taxonomy row; do not silently describe it as ordinary direct-fallback success. Operators should avoid publishing a lone . target unless they intend unavailability. |
Why ICMP “ping” is the wrong tool
ping host uses ICMP echo. Minecraft Java multiplayer uses TCP to the resolved game port (and status uses the same port with a short status handshake). A host can:
answer ICMP while the game port is closed or filtered
drop ICMP while TCP 25565 (or the SRV port) works
resolve to a different host after SRV than the A record you tested
For address diagnosis, prefer DNS queries (dig / nslookup) and a Minecraft-aware status check, not ICMP.
Diagnostic flow
Copy the exact address string the player types—including port if any. Trailing spaces, wrong TLD, and
https://prefixes are common typos.Classify the form: raw IP, hostname with explicit port, or hostname with no port (default 25565 path).
Resolve the player-facing name:
dig A <name>anddig AAAA <name>if the player typed no explicit port, also
dig SRV _minecraft._tcp.<name>
If SRV exists: note priority, weight, port, and target. Then resolve the target with A/AAAA. Do not stop at the first name. If the only answer is Target
., treat that as intentional service-unavailable signaling under RFC 2782—not as “missing SRV.”If no usable SRV answer (and no
.unavailability record): expect direct connect to<name>:25565when the port was omitted, or to the explicithost:portwhen a port was typed.Compare paths carefully: this checker skips SRV whenever a port is explicit. A tool that still runs
_minecraft._tcpforhost:25565will not match. Prefer the exact player string.Only then run a Java server status check on the same string the player uses. A single Online/Offline/Unknown result is evidence for that vantage and method, not a global guarantee.
If DNS fails completely, continue with the dedicated Unknown host guide rather than assuming the game process is down.
Evidence limits
This page explains address resolution, not platform authentication, Realms, or Bedrock RakNet.
DNS answers are cache- and resolver-dependent. Propagation and stale recursive caches can make two clients disagree for hours.
Public status checkers must not expose resolved private or link-local targets. If a name points at a non-public address, the correct public result is often Unknown or a policy rejection, not a leaked internal IP.
An Online status response proves a status handshake completed from the checker’s vantage. It does not prove every player path, every proxy backend, or that login will succeed.
The MinecraftStatus checker sorts equal-priority SRV records deterministically by weight. It does not reproduce RFC 2782 randomized weighted selection, so treat the selected target as this checker's observation rather than a simulation of every client.
This article does not claim any listed public server is “correctly configured” or recommend any host as best practice.
Related reading
Why a server can look offline while players join — firewall and vantage mismatches after DNS works.
MOTD and the Java status response — what you get after TCP status succeeds.
Unknown host: DNS and address fixes — client-visible resolution failures.
Last verified
Evidence cutoff: 2026-07-20
Sources re-checked: Minecraft Wiki Java server tutorial (Domain name / SRV), Server List Ping handshake notes, RFC 2782 (priority, weight, Target
.), MinecraftStatus checker SRV allow/skip and handshake-host behavior