サーバーステータスチェックの仕組み
Minecraft サーバーへのステータスチェックは、ゲームクライアントがサーバーリスト表示時に送信するのと全く同じごく短いリクエストをサーバーへ送ります。サーバーはバージョン、MOTD、プレイヤー数、最大スロット、プロトコルバージョンなどを JSON 風データで返します。ログインは行わず、スロットも消費せず、ゲームプレイにも影響しません。
- Java Edition:TCP ポート 25565(標準)、Server-List-Ping プロトコル
- Bedrock Edition:UDP ポート 19132(標準)、RakNet 経由 Unconnected-Pong
- SRV レコードは自動解決され、ホスト名のみでポート指定なし入力も可能
- サーバーが対応していれば IPv4 と IPv6 両方をサポート
MOTD、SRV、プロトコルバージョン解説
MOTD は Message of the Day の略です。ゲーム内サーバーリストでサーバー名の下に表示されるテキストで、運用者は宣伝文句、IP、Discord リンク、カラフルなステータスメッセージなどに使用します。色・書式コード(セクションサインコード)は、結果が読みやすいよう整形済みプレーンテキストで表示されます。
SRV-Records は特殊な DNS レコードで、サービス(ここでは Minecraft)を実際のホスト名とポートにマッピングします。例:プレイヤーが play.example.com をクライアントに入力 → クライアントが _minecraft._tcp.play.example.com を問い合わせ → mc01.hoster.net:25577 を取得し接続。これによりプレイヤーがアドレスを変更することなくサーバーを内部移転できます。
プロトコルバージョン (例:Java 1.20.4 で 765)は、サーバーが通信可能なクライアントバージョンを決定します。ViaVersion などのプラグインで対応範囲を広げ、複数クライアントバージョンを同時に受け入れられます。
サーバーがオフラインと表示される理由
サーバーが実際には稼働中でもオフラインと表示される場合、以下の順で確認すべき典型的な原因があります:
- ファイアウォール: ポート 25565(Java)または 19132(Bedrock)が外部からブロックされています。UFW、iptables、Hetzner ファイアウォール、Windows ファイアウォールをそれぞれチェック。
- バインドアドレス: サーバーが
127.0.0.1 ではなく 0.0.0.0にバインドしている場合、ローカルからのみ到達可能です。
- DNS レコードが不正: A または AAAA レコードがサーバー以外の IP を指しています。
- SRV レコードの不備: ポートが標準と異なる場合は必ず SRV エントリを設定してください。さもなくばクライアントは標準ポートを探します。
- サーバープロパティ:
enable-status=true 適切な設定が必要です。さもなくばサーバーは Ping に応答しません。
- Bedrock と UDP: 家庭ネット環境で UDP ポート開放(TCP ではなく)を忘れがちです。
- プロバイダーの CGNAT: Carrier-Grade-NAT 配下の回線は外部から到達不可能なことが多く、VPS やトンネルが必要です。
プライバシーと制限
ステータスチェックは mcstatus.ioの公開 API 経由で実行されます。そこへ転送されるのは入力されたサーバーアドレスのみです。Cookie は設置せず、トラッキングなし、リクエストの永続的保存もありません。Web サーバーログ(セキュリティとレート制限用)は短時間で削除されます。
- IP アドレスごとに毎分 30 リクエスト
- hCaptcha でフォームを自動化された悪用から保護
- プライベート・予約済み IP 範囲はサーバー側でブロック(Anti-SSRF)
- トラッキングなし、アナリティクススクリプトなし、サードパーティ Cookie なし