3 年ほど前に公開していたもののリライトです。
Oracle Cloud Infrastructure (OCI) では AArch64 の 4 OCPU / 24GB RAM な VM が
Always Free で借りられます。すごいですね。
合計なので、 1 OCPU / 6GB RAM のインスタンスを 4 つ作ることなども可能です。
ただし、東京リージョンはインスタンス枠がほぼ上限のようで、取り合いになっています。
これを解決するには、 Pay As You Go に登録しちゃってください。
優先的に枠が割り当てられるようで、簡単に VM インスタンスが作成できます。
無料枠の範囲で利用するのであれば、課金されないので、安心してください。
(くれぐれも合計で 4 OCPU / 24GB RAM / 200GB Block Storage を超えないように。)
では、 Minecraft サーバーを建てていきます。お遊びからはじめて、後半に実践編です。
前者はあまり実用的ではないので、参考までに。
今回は Ubuntu 22.04 LTS を使っています。
AArch64 のサーバーでも Bedrock Edition を動かす
Bedrock Edition は x86_64 向けのプログラムなので、もちろん ARM CPU では動きません。
これを解決するために、 Box64 というエミュレーターを使います。
https://github.com/ptitSeb/box64インストールは簡単です。
これだけです。 cmake
などが必要なので、適宜 apt install
してください。
次に Bedrock サーバーを Minecraft 公式から落としてきます。
https://www.minecraft.net/ja-jp/download/server/bedrock
(2025-05-16 現在のバージョンは 1.21.81.2)
wget
だとレスポンスが返ってきませんね。 curl
でも試してみます。
だめなようです。なのでここは User-Agent を付与 (偽装) してしまいましょう。
無事にダウンロードできたようなので、 unzip
して、起動してみます。
すんなり起動してしまいました。
3 年前に試したときは、 libssl.so.1.1
が見つからないというエラーがでていたのですが、
Bedrock サーバーがそれを必要としなくなったのか、
Box64 が適切に wrap できるようになったのか不明ですが、
追加の手順がなくなったのでよしとします。
OCI の Ubuntu は iptables
でほとんどのポートが閉じているので、
コンソールから Ingress ルールを設定しただけでは繋がりません。
これでポートが開きました。クライアントから接続を試してみてください。
Java Edition (PaperMC) + GeyserMC/Floodgateでクロスプレイを実現する
必要なもの
- Paper ( https://papermc.io/ )
- Spigot 互換のプラグインサーバー、なんだかんだで軽いです
- さらにフォークしてパフォーマンスを改善したらしい Purpur などもありますが、
多種プラグインのサポートなどを考慮すると Paper のほうが無難です
- Geyser ( https://geysermc.org/ )
- Java Edition のサーバーで Bedrock クライアントから接続できるようにするプラグイン
- Floodgate ( https://geysermc.org/wiki/floodgate/ )
- Bedrock のアカウントのみで接続できるようにするプラグイン
- ViaVersion (https://viaversion.com/)
- 新しいバージョンのクライアントで古いバージョンのサーバーに接続するためのプラグイン
PaperMC のインストール
インストールといってもダウンロードしてきて起動するだけです。
https://papermc.io/downloads/paper普通に wget
でダウンロードできます。 (2025-05-17 現在のバージョンは 1.21.4 Build #230)
一応 paper.jar
として保存します。
ダウンロードしたらふつうに一旦起動して各種フォルダの生成、 Vanilla サーバーへのパッチします。
ただし、 eula.txt
(サーバー利用許諾書) がないと怒られるので、先に作っておきます。
起動したら、 Ctrl + C
なり stop
コマンドなりで中断しちゃって大丈夫です。
Geyser と Floodgate のダウンロード
https://geysermc.org/download?project=geyser
https://geysermc.org/download?project=floodgate
Spigot/Paper と書かれているものをダウンロードしますが、
コマンドラインからだとファイルにリダイレクトされないので、 curl
を使います。
そうしたら、一旦ディレクトリを戻ってまた Paper を起動します。
地味になんか怒られていますね。
これは Geyser が要求しているバージョンと Paper のバージョンが違うことが違うという意味です。
ViaVersion もダウンロードしましょう。
これで warning がでないようになるはずです。
初期設定
さきほど Geyser を読み込んだ際に、 config.yml
ファイルが作成されています。
Geyser と floodgate をつなぐため、
その中にある auth-type: online
を auth-type: floodgate
に書き換えます。
適宜 vim
や nano
などを使ってください。
これで最低限の設定は完了です。
接続できる最大人数や motd なども server.properties
や config.yml
で設定できます。
適宜調べていろいろ試してみてください。
ポートを開放する
デフォルトポートは Java が 25565 (TCP), Bedrock が 19132 (UDP) です。
iptables
を使ってください。
これで、外部から接続できるようになるはずです。
起動スクリプトを用意する
下記のサイトで起動スクリプトが作成できます。
https://flags.sh/メモリ使用量の設定は VM 容量の 8 割程度に設定しましょう。
個人的には screen
などを使っておくと常時起動しやすいと思います。
一応サンプルを貼っておきます。 ( start.sh
/ RAM 16GB のサーバー想定)
終わりに
これで、クロスプレイが実現できました。
ただし、ここまでやっておいてなんですが、
Xbox One, Switch, PS4/PS5 は特集サーバー以外に接続できませんので、
ちょっとしたトリックが必要です。 (DNS に BedrockConnect の設定が必要)
今回はとくに説明しませんが、適宜調べてみてください。
OCI で公開したサーバーはサーバースキャナーに引っかかりやすく、
放っておくと荒らしやよくわからない bot なども接続してきます。
身内で遊ぶならホワイトリスト運用にするのがオススメです。
それでは、よき Minecraft ライフをお過ごしください。
(インストールスクリプトでも用意しとけばよかったのですが、またの機会に…。)