更新日:
online-modeとは
server.propertiesのonline-modeは、参加するプレイヤーが正規のMinecraftアカウントを持っているかを、Microsoft(Mojang)の認証サーバーに確認する設定です。
| 値 | 動き |
|---|---|
true(初期値) | 正規アカウントで本人確認した人だけが入れる |
false | 確認しない。入力したプレイヤー名をそのまま信じる |
falseにすると起きること
なりすましができる
本人確認をしないので、他人の名前で参加できます。OPの名前で入れば、その人の権限でコマンドを使えます。ワールドの破壊やアイテムの持ち出しが簡単にできてしまいます。
ホワイトリストが役に立たない
white-listは名前で参加者を判定します。online-modeがfalseだと名前を偽れるので、ホワイトリストに載っている名前を名乗れば入れてしまいます。「ホワイトリストがあるから大丈夫」とはなりません。
プレイヤーデータが別人扱いになる
サーバーは、プレイヤーをUUIDという番号で区別しています。falseのときは名前から作った別のUUIDが使われるため、途中で切り替えると、持ち物や位置、OP権限が別人のものとして扱われます。「切り替えたらインベントリが消えた」という相談の多くはこれが原因です。
スキンが表示されないことがある
認証をしないため、スキンが正しく表示されない場合があります。
falseが必要な例外:プロキシ構成
VelocityやBungeeCordのようなプロキシで複数のサーバーをつなぐ場合、後ろ側のサーバーはfalseにして、プロキシ側で認証します。このときは次の2点が必須です。
- プロキシのプレイヤー情報転送(forwarding)を正しく設定する
- 後ろ側のサーバーに、プロキシ以外から直接つながらないようにする(ファイアウォールなど)
直接つながる状態のままだと、プロキシを通らずに誰でも好きな名前で入れてしまいます。
統合版(BDS)の場合
統合版の専用サーバーにもonline-modeがあり、trueにするとXboxアカウントでの認証を行います。こちらもtrueのままにするのが基本です。
まとめ
- 友達とのサーバー、公開サーバー:trueのまま
- プロキシの後ろのサーバー:falseにして、直接の接続を必ずふさぐ
- 途中で切り替えると、プレイヤーデータが別人扱いになる
参加者を制限する設定はホワイトリストの使い方で解説しています。
よくある質問
正規版を持っていない友達と遊ぶためにfalseにしてもいいですか?
おすすめしません。上のリスクがそのまま当てはまるうえ、正規のアカウントを持たない遊び方はMinecraftの利用条件に沿いません。全員が正規版で参加できる形にしてください。
trueに戻したらデータが消えました。
falseの間に作られたデータは、別のUUIDで保存されています。サーバーのworld/playerdataフォルダにデータは残っているので、バックアップを取ったうえでUUIDの対応を移し替える方法があります。作業前に必ずバックアップを取ってください。
LANで遊ぶときも関係ありますか?
Java版の「LANに公開」では通常、本人確認が行われます。専用サーバーを立てるときにこの設定が関係します。