while True:
Skip to content
Go back

Minecraft サーバーを Oracle Cloud Inflastructure 上に建てる

Updated:  at  06:08 PM

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: onlineauth-type: floodgate に書き換えます。

適宜 vimnano などを使ってください。

これで最低限の設定は完了です。

接続できる最大人数や motd なども server.propertiesconfig.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 の設定が必要)

https://github.com/Pugmatt/BedrockConnect

今回はとくに説明しませんが、適宜調べてみてください。

OCI で公開したサーバーはサーバースキャナーに引っかかりやすく、
放っておくと荒らしやよくわからない bot なども接続してきます。
身内で遊ぶならホワイトリスト運用にするのがオススメです。

それでは、よき Minecraft ライフをお過ごしください。

(インストールスクリプトでも用意しとけばよかったのですが、またの機会に…。)



Next Post
Astro + Sanity 構成にリニューアルした