はじめに
前回建てた ubuntu のサーバにそのまま Java 版 Minecraft サーバを建てたときのメモです。
Java のチューニングについては書かないので別途調べてください┏(<:)
AlwaysFree(一生無料)の「f1-micro」だとメモリサイズが小さすぎるので、事前に「n1-standard-1」に拡張しておきました。
1. Java 版 Minecraft サーバの構築
1.1. Java のインストール
サーバに SSH で接続して、root ユーザにスイッチしておきます。
su
root ユーザでログインしたら mkdir コマンドでサーバをインストールするディレクトリを作ります。
作ったら cd コマンドで移動します。
mkdir /mcjava
cd /mcjava
Minecraft サーバをインストールしようと思いましたが、Java が入ってなさそうなので先に Java を入れましょう。ここでは default-jre をインストールしていますが、Java のバージョンは Mincraft サーバのバージョンが指定している適切なバージョンを入れましょう。バージョンの確認が面倒な場合は概ね最新の JRE でもよいです。
apt install default-jre
ディスク容量がどうのこうのと聞かれたら y (yes)と打っといてください。
以上で Java のインストールは完了です。
1.2. Minecraft サーバのインストール
続いて Minecraft サーバのインストールです。ダウンロード用 URL は事前に調べておきましょう。
[MINECRAFT]https://www.minecraft.net/ja-jp/download/server/
リンクをコピーしたらダウンロードしましょう。
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar
ダウンロードしたらサーバを1回起動します。エラーで終了するはずです。
サーバをダウンロードしたディレクトリに eula.txt というテキストファイルができているはずなので、開いて中身を編集します。
EULA(エンドユーザーライセンス条項)に同意するか否かというファイルなので、同意する場合は eula=false の箇所を eula=true に書き換えましょう。
eula=true
これでインストール完了です。
忘れてました。Java 版の Minecraft サーバはデフォルトで tcp/25565 ポートを使っているので GCP のファイアウォールルール設定でポートを開けておきましょう。
1.3. Minecraft サーバの起動
作ったディレクトリに移動してサーバ起動のコマンドを入力します。サーバを起動するための専用ユーザを作っておいても良いですが、今回はそのまま root ユーザで起動します。
ダウンロードしてきたファイルの名前が「server.jar」だった場合は以下のコマンドで起動します。本来は起動コマンドを start.sh などのシェルとして用意し、root 以外の専用ユーザを使ってバックグラウンドで実行するのが望ましいですがここでは解説しません。
cd /mcjava
java -Xmx1024M -Xms1024M -jar server.jar nogui
以上で起動します。
余談ですが、Java 版 Minecraft サーバは Java の仮想マシンJVM 上で、事前に設定したメモリを上限として起動します。そのため、ubuntu サーバの負荷だけを見ていても Minecraft が余裕で動いてるのかどうかは分かりません。
人が増えてきてメモリが足りてないなと思ったらサーバ起動コマンドの -Xmx や -Xms の数字を増やしてみましょう。チューニングについてはここでは説明しません。
1.4. Minecraftサーバへの接続
統合版と一緒なので説明は省略。
1.5. Minecraftサーバの停止
統合版と一緒なので説明は省略。
シェルを用意していないのでサーバを起動したコマンドを終了すれば勝手にサーバも停止します。
1.6. ホワイトリストの設定
ホワイトリストも一緒に設定しておこうと思ってやってみたんだけども、統合版と少し仕様が違っていたのでメモっておきます。
Java版は統合版と違って、ログインしていないユーザをホワイトリストに登録できません。なので whitelist.json を直接編集します。
統合版のホワイトリストはユーザの名前だけ分かれば whitelist.json の登録はできますが、Java 版では uuid が必須項目です。uuid はサーバ側のログイン履歴を見れば調べることもできますが、これからログインしてくる新規ユーザのログは無いです。
そこで Mojang が提供している uuid を調べる Mojang API を使います。
[Mojang API] https://api.mojang.com/users/profiles/minecraft/JohnikiJoestar
{"id":"1f843a4609ae4715a3b062a522193fa0","name":"JohnikiJoestar"}
これでジョニキ・ジョースターの uuid も分かったのでホワイトリストに登録しましょう。
whitelist.json の形式は xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx なので、id を少し手直ししてファイルを編集します。
[
{
"uuid": "1f843a46-09ae-4715-a3b0-62a522193fa0",
"name": "JohnikiJoestar"
}
]
ファイルを直接編集した場合は、whitelist をリロードしておきましょう。
whitelist reload