Minecraft Bedrock サーバーを運用していて、プレイヤーは参加できるのにステータスチェッカーがオフラインと表示する場合、チェッカーが別のプロトコルで通信を試みている可能性が高いです。近年の Bedrock サーバーは NetherNet で動作していることがあり、それに対してほとんどのステータスサイトは旧来の RakNet トランスポートしか ping できません。この記事では、NetherNet サーバーの本当のステータスとサーバーが提示する接続情報を、簡単に確認する方法を解説します。
手短に言えば、iceFetchにサーバーのホストとポートを入力するだけです。実際のクライアントと同じシグナリングのハンドシェイクを行い、サーバーのステータスと ICE candidate を表示します。スクリプトや監視向けの JSON API もあります。
従来の Bedrock ステータス/ping ツールは、RakNet の「unconnected ping」を UDP で送り、その pong を読みます。旧来のトランスポートで動くサーバーならこれでステータスが確認可能でした。しかし、近年のサーバーは transport=nethernet と設定されている可能性があり、NetherNet は RakNet ping と互換性がありません — 読むべき UDP の pong が存在しないのです。サーバーは正常に稼働しているのに、チェッカーが対応していないプロトコルで問い合わせるため、オフラインやタイムアウトと表示されます。
NetherNet は WebRTC ベースのトランスポートです。接続は、サーバーが TCP ポート上に開く小さな HTTP シグナリングエンドポイントを介して、SDP offer/answer と ICE candidate でネゴシエーションされます。NetherNet サーバーのステータスを見るには、RakNet ping を送るのではなく、そのエンドポイントと通信する必要があります。両者の違いは RakNet と NetherNet で詳しく解説しています。
iceFetchを開き、サーバーのホストとポート(通常は 19132)を入力して実行し、次の情報を得ることができます。
/v1/join メタデータ(名前・プロトコル/バージョン・現在と最大の人数)。host・srflx・relay)。サーバーに参加することはなく、シグナリングの段階だけを完了します。
繰り返し実行すると, BDSの割り当て可能UDPポートを埋め尽くす可能性があるので、ICE candidateの取得は最小限に抑えましょう。
スクリプトや稼働監視には API を使います。
# ステータスのみ
curl "https://icefetch.tools.kt04.com/api/info?host=play.example.net&port=19132"
# ステータス + ICE candidate
curl -X POST https://icefetch.tools.kt04.com/api/offer \
-H 'content-type: application/json' \
-d '{"host":"play.example.net","port":19132}'
/api/info は { ok, status, tls, info } を、/api/offer は candidate と生の SDP answer を返します。リクエスト/レスポンスの型とレート制限は API ドキュメント に記載しています。
host / srflx / relay) — これらはサーバーがクライアントに提示する実際の UDP エンドポイントです。srflx は NAT 反射の公開アドレス、relay は TURN の中継です。自分のサーバーは NetherNet と RakNet のどちら? server.properties を確認してください。transport=nethernet(またはそれを前段に置くネットワーク)なら NetherNet です。既定の RakNet なら従来の ping ツールが使え、iceFetch のシグナリング経路は該当しません。
なぜステータスサイトで自分のサーバーがオフラインと出るの? ほとんどのサイトは RakNet しか ping しません。NetherNet サーバーは RakNet ping に応答しないため、稼働中でもオフラインと表示されます。
参加せずに確認できる? はい。ステータスと candidate の取得はシグナリングのみのハンドシェイクです。ゲームセッションは開きません。
自動で監視できる? はい。GET /api/info を定期的にポーリングしてください。レート制限(IP ごと 1 分 20 リクエスト+月間クォータ。無料 API キーで上限が上がります)にご注意ください。
フレンドの公開中ワールドでも使える? これは Xbox を介した別のシグナリング経路で、フレンドのワールドを NetherNet 経由で読む で解説しています。
ツール解説記事APIプライバシー規約 · iceFetch は Mojang および Microsoft とは無関係です。