为什么要检测 MC 服务器状态

玩 Minecraft 的人几乎都遇到过这样的场景:朋友发来一个服务器地址,你输进游戏却连接超时;开服主想确认自己服务器到底通不通,得先问房管;或者你盯着一个宣传"千人服务器"的地址,想看看里面到底有没有人。这些需求都可以用一个简单的服务器状态检测解决。

状态检测能告诉你三类核心信息:服务器是否在线、当前在线人数、服务器版本与 MOTD。在进服之前先测一下,能省掉大量无效连接等待,也能帮你识别虚假宣传的"幽灵服务器"。

// 一次检测能拿到的信息
服务器在线状态    → online / offline
在线人数          → 128 / 500(当前/最大)
版本信息          → 1.20.4 或 Paper 1.21
MOTD 标语         → 服务器欢迎语(含颜色代码)
延迟              → 45ms(代理节点到服务器)
模组列表          → FML/Forge 标记或 Mod 列表

检测原理:Server List Ping 是怎么工作的

Minecraft 的状态检测基于官方协议里的 Server List Ping。Java 版通过 TCP 连接向服务器发送一个握手包(包含协议版本、服务器地址、端口)和 Ping 请求,服务器收到后返回一段 JSON,包含版本号、玩家数、MOTD 和图标数据。整个过程只有几十毫秒,不会真正进入游戏。

Bedrock 版走的是另一套基于 UDP 的协议(默认端口 19132),返回的是二进制编码的服务器信息,字段同样包括版本、玩家数和 MOTD。两种协议完全不同,所以检测工具需要让你先选择目标服务器是 Java 版还是 Bedrock 版。

三步检测服务器状态

  1. 打开 Minecraft 服务器状态检测 工具。
  2. 输入服务器地址(IP 或域名),如果端口不是默认值,补上端口号;再选择服务器类型是 Java 版还是 Bedrock 版。
  3. 点击「检测」,几秒后就能看到在线状态、在线人数、版本、MOTD 和延迟等完整结果。

无需登录、无需下载任何软件,检测请求通过 SOCKS5 代理发出,你的真实 IP 不会出现在目标服务器的访问记录里。

检测结果都能看到什么

在线状态

服务器是否在线、能否正常响应 Ping 请求,一目了然。

在线人数

当前在线玩家数与最大人数,判断服务器是否活跃。

版本信息

服务器运行的 MC 版本(如 1.20.4),确认你的客户端能否进入。

MOTD 与模组

服务器欢迎语,以及是否带 Forge/Fabric 模组标记。

Java 版与 Bedrock 版的区别

维度Java 版Bedrock 版
检测协议TCP Server List PingUDP 二进制 Ping
默认端口2556519132
返回格式JSON二进制数据
平台PC(Java 版客户端)手机、主机、Win10/11
互通情况原版默认不互通,需 Geyser 等插件可通过 Geyser 接入 Java 服务器

常见场景与避坑指南

  • 端口不是默认值:很多服务器用 25566、30000 等端口,只填 IP 不填端口会显示离线。先看服务器公告里的完整地址(域名:端口)。
  • SRV 记录:部分服务器配置了 mc.example.com 这类 SRV 解析,域名背后实际端口和 IP 是隐藏的,直接用域名检测即可,别手动拆开填。
  • 防火墙与代理:服务器套了 TCPShield、DDoS 防护或云 WAF 时,可能拒绝非游戏客户端的探测包,显示离线但游戏里正常——用游戏客户端实测确认。
  • 延迟仅供参考:检测工具显示的延迟是代理节点到服务器的延迟,不是你家宽带到服务器的延迟。要测真实游戏延迟,进服后按 F3 看 Ping 值。
  • Geyser 互通服:同一地址可能同时开放 Java 和 Bedrock 入口,端口不同,检测时选对协议和端口。

常见问题 FAQ

MC 服务器检测结果里显示的延迟(Ping)可靠吗?

检测工具显示的延迟是工具所在服务器到你目标服务器之间的网络往返时间,只能作为参考。真实游戏延迟还取决于你自己的网络出口到服务器的路径,两者可能差别很大。想测自己到服务器的真实延迟,建议在游戏内按 F3 查看 Ping 值,或者用 ping 命令配合服务器 IP 测试。

为什么有的服务器检测显示离线,但游戏里能进?

常见原因有三个:① 服务器开启了 TCPShield 等代理/防火墙,拒绝非游戏客户端的 Ping 探测包;② 服务器改了默认端口,你只填了 IP 没填端口;③ 服务器配置了 SRV 记录(如 mc.example.com),域名解析后实际指向了其他 IP 和端口,检测时用了错误的地址。这时用服务器完整域名并补上端口再试。

Java 版和 Bedrock 版的检测有什么不同?

两者协议不同:Java 版基于 TCP 的 Server List Ping,默认端口 25565,返回 JSON 格式的状态信息;Bedrock 版基于 UDP,默认端口 19132,返回二进制数据。检测时需要先选对协议类型,端口也要按服务器实际配置填写,否则会显示离线或超时。

检测服务器会不会暴露我的真实 IP?

不会。工具通过 SOCKS5 代理服务器代为发起检测请求,你看到的检测结果来自代理节点的网络出口,不会向目标服务器暴露你的真实 IP。这在检测不熟悉的陌生服务器、或对方服务器记录玩家 IP 时尤其有用。