1. はじめに
VelocityとPaperでJava版・統合版のクロスプレイ環境を作ったものの、Java版だけ接続でき、統合版では「Unable to connect to world」と表示されることがあります。
この場合、Paperが停止しているとは限りません。Java版と統合版では入口と通信方式が違うため、Java版が正常でも、GeyserやUDPポートだけに問題が残ることがあります。本記事では、GeyserをVelocityへ導入した構成を前提に、確認する順番を整理します。
2. Java版だけ入れる場合に分かること
Java版でVelocityへ入り、lobbyなどのPaperへ移動できるなら、少なくとも次は動作している可能性が高いです。
- Java版クライアントからVelocityまでのTCP通信
- VelocityのJava版待受ポート
- Velocityから対象Paperまでの接続
- Paperの基本的な起動とワールド参加
ただし、これだけではGeyser、Floodgate、統合版用UDPポートの正常性は分かりません。「Java版が入れるからポート開放は全部正しい」と考えないことが切り分けの第一歩です。
3. Java版と統合版の接続経路
Java版クライアント
↓ TCP
Velocity
↓
Paper
統合版クライアント
↓ UDP
Geyser
↓
Velocity
↓
Paper
Geyserは統合版の通信をJava版サーバーが理解できる形へ変換します。Floodgateは、Java版アカウントを持たない統合版プレイヤーの認証を補助する追加プラグインです。Geyserだけでも構成によっては接続できますが、Floodgateを使う場合は導入場所と認証設定が一致している必要があります。
Java版では一般にTCPが使われ、統合版ではUDPが使われます。TCPは接続を確立して順序を管理する方式、UDPはデータグラム単位で送受信する方式です。同じポート番号でもTCPとUDPは別の入口です。
4. 最初に確認する項目
次の順番なら、設定とネットワークを混同しにくくなります。
- Velocityの起動ログにGeyserが読み込まれているか
- Geyserの統合版用IPアドレスとUDPポート
- 同じLAN内から接続できるか
- OSでUDPポートが開かれているか
- 外部接続ならルーターと回線方式
- Floodgateの読込と認証方式
- Geyser・統合版・Java側の対応バージョン
- 統合版端末固有の問題
最初からルーター設定を何度も変更するより、LAN内接続まで成功するかを先に確認すると原因を絞れます。
5. Geyserが起動しているか
Velocityのpluginsフォルダへ、Velocity用のGeyserファイルが入っているか確認します。Paper用や別プラットフォーム用のファイルを置いても正しく動きません。実際のファイル名は配布バージョンで異なります。
起動ログでは次を確認します。
- Geyserが有効化された表示
- 統合版接続を待ち受けるアドレスとポート
Address already in useなどのポート競合- 設定ファイルの読込エラー
- Javaやプラグインのバージョン不一致
- Floodgateとの連携エラー
Geyser公式には、到達可能性を確認するgeyser connectiontest <IP> <ポート>コマンドがあります。利用できるコマンド名や実行場所はバージョンで変わる可能性があるため、存在しない場合は使用中のGeyser公式ドキュメントを確認してください。
6. UDPポートの確認
統合版で一般的に使われる例は19132/UDPです。これは初期値としてよく使われる番号であり、ホスティングサービスや自分の設定によって変更できます。
Windows PowerShellでは次のように確認できます。
Get-NetUDPEndpoint -LocalPort 19132
または次の例があります。
netstat -ano -p udp | findstr :19132
Linuxでは次の例があります。
ss -lunp | grep 19132
UDPにはTCPのようなLISTEN表示がない場合があります。指定ポートにJavaまたはVelocityのプロセスがバインドされているかを見ます。何も出なければ、Geyserが起動していない、別ポートを使用している、特定IPだけにバインドしている可能性があります。
7. ファイアウォールとルーター
OSのファイアウォールでは、Geyserが使うUDPポートを許可します。Java版用の25565/TCPだけを許可しても、統合版のUDP通信は通りません。
外部ネットワークから接続させる場合は、一般に次の経路を確認します。
インターネット
↓ 公開IP:19132/UDP
ルーターのポート転送
↓ サーバーのLAN内IP:19132/UDP
OSファイアウォール
↓
Geyser
ルーターでは転送先IP、ポート番号、プロトコルUDPを確認します。サーバーのLAN内IPがDHCPで変わるなら、DHCP予約も検討します。
CGNAT、集合住宅の共用回線、モバイル回線などでは、自宅ルーターにグローバルIPv4が割り当てられず、通常のポート開放ができない場合があります。ルーターのWAN側IPと外部から確認した公開IPが違う場合は候補になります。契約回線の仕様を確認し、UDPに対応するトンネルサービスやVPS中継を使う場合も、対応プロトコルと利用条件を確認してください。
8. Geyserの接続設定
設定ファイルでは大きく二つを区別します。
- 統合版クライアントを受け付けるアドレスとUDPポート
- 変換後の接続を渡すJava側の接続先
GeyserをVelocityへ入れる構成では、Geyserはプロキシ側の入口です。Paperの公開IPへ直接送る構成と混同しないようにします。設定キーや自動設定の挙動はGeyserの版で変わるため、生成された設定ファイルとVelocity向け公式手順を基準にしてください。
設定変更後は、Geyserのリロードだけで済ませずVelocityを停止して再起動し、起動ログに表示された実際の待受ポートを確認します。
9. Floodgateの確認
Velocity構成では、基本的にVelocity用Floodgateをプロキシへ導入します。バックエンドのPaperへFloodgateを追加するのは、バックエンド側プラグインからFloodgate APIを使うなど、必要な場合に限られます。
確認項目は次のとおりです。
- Velocity用Floodgateが読み込まれているか
- Geyserの認証方式がFloodgate構成と合っているか
- プロキシとバックエンドのプレイヤー情報転送設定が合っているか
- バックエンドにもFloodgateを置く場合、必要な鍵が正しく配置されているか
- 鍵ファイルをGitHubや記事へ公開していないか
鍵を作り直したのに古い鍵が残っている、別サーバーの鍵をコピーした、といった不一致も原因になります。具体的なファイル名と配置先はバージョンごとの公式手順を確認してください。
10. バージョン差の確認
統合版は自動更新される端末が多く、ゲーム更新直後にGeyser側の対応が追いついていない場合があります。反対に、古いGeyserを長期間使い続けていて新しい統合版を受け付けられないこともあります。
次をセットで記録します。
- 統合版クライアントのバージョン
- GeyserとFloodgateのビルド
- Velocityのバージョン
- PaperのMinecraftバージョン
- ViaVersionなど互換プラグインの有無
対応範囲は頻繁に変わります。公開時点の数値を固定して覚えず、Geyserの「Supported versions」と各ソフトウェアの公式仕様を要確認です。
11. LAN内では入れるが外部から入れない場合
LAN内IPでは入れるのに公開IPでは入れないなら、GeyserからPaperまでよりも、ルーター、OSファイアウォール、公開IP、CGNATを優先して確認します。
同じLAN内から自分の公開IPへ接続する試験は、ルーターがNATループバックに対応していないと失敗します。外部確認にはWi-Fiを切ったスマートフォン回線など、実際に別ネットワークの端末を使います。
12. サーバー一覧が読み込み中になる場合
一覧の表示が終わらない場合、UDP応答が端末まで戻っていない可能性があります。接続操作をした瞬間にVelocityのログへ何も出ないなら、Geyserへ到達する前の問題を疑います。ログへ接続試行が出るなら、認証、Java側転送、バージョンを確認します。
端末側では、DNSの誤り、VPN、広告ブロック系DNS、モバイル回線とWi-Fiの切替、学校や職場ネットワークのUDP制限も候補です。別の統合版端末と別ネットワークを組み合わせて比較します。
13. ゲーム機から接続する場合
一部の家庭用ゲーム機では、任意の外部サーバーを通常のサーバー追加画面から登録できない場合があります。スマートフォンやWindows版では入れるのにゲーム機だけ入れないなら、Geyserの障害と決めつけず、ゲーム機側の公式な外部サーバー対応状況を確認します。
DNSを変更する接続補助などは、端末、OS、ネットワークごとに制約があります。非公式な回避方法を使う場合は、仕組み、信頼性、利用規約、DNS運営者へ通信を預けるリスクを理解して判断してください。
14. それでも直らない場合
最小構成へ戻して比較します。一時的にゲーム内容を変えるプラグインを減らし、Geyser・Floodgate・Velocity・1台のPaperで接続を試します。ただし、本番環境を直接変更せず、バックアップを取った検証環境で行います。
統合版プレイヤーだけがログイン後に切断される場合、Java版専用GUI、表示エンティティ、特殊パケット、リソースパック、音楽ゲーム系プラグインなども候補です。Geyserでログインできることと、すべてのJava版向け機能が統合版で同じように動くことは別です。
【追記候補:実際に発生したエラーログ】
15. 確認チェックリスト
- Java版はVelocity経由でPaperまで入れる
- Velocity用Geyserが起動している
- 起動ログに待受アドレスとUDPポートが出ている
- 統合版で入力したポートとGeyserのポートが一致する
- OSで対象UDPポートがバインドされている
- LAN内IPから統合版で接続できる
- 外部接続ではルーターがUDPを正しいLAN内IPへ転送している
- CGNATなどポート開放できない回線ではない
- Floodgateの導入場所、認証方式、鍵が一致する
- GeyserとMinecraft双方の対応バージョンを確認した
- 接続試行時のVelocityログを確認した
- 別端末・別回線でも比較した
- ゲーム機固有の外部サーバー制約を確認した
16. まとめ
Java版だけ入れる場合、VelocityとPaperのJava版経路は動いている可能性が高い一方、Geyserの起動、UDPポート、Floodgate、統合版のバージョンは別に確認する必要があります。
まずLAN内でGeyserへ到達できる状態を作り、その後にOSファイアウォール、ルーター、公開IPを確認します。接続試行がログへ届くかを境目にすると、ネットワーク側と認証・転送側を切り分けやすくなります。