2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GCPでJava版Minecraftサーバを建てた話(ついでにホワイトリストも設定)

Last updated at Posted at 2020-03-23

はじめに

前回建てた 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/

javadl.png

リンクをコピーしたらダウンロードしましょう。

wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

ダウンロードしたらサーバを1回起動します。エラーで終了するはずです。
root@mcapsv01_ _mcjava - Google Chrome 2020_03_24 1_06_51_2.png
サーバをダウンロードしたディレクトリに eula.txt というテキストファイルができているはずなので、開いて中身を編集します。
EULA(エンドユーザーライセンス条項)に同意するか否かというファイルなので、同意する場合は eula=false の箇所を eula=true に書き換えましょう。
root@mcapsv01_ _mcjava - Google Chrome 2020_03_24 1_06_27_2.png

eula=true

これでインストール完了です。
忘れてました。Java 版の Minecraft サーバはデフォルトで tcp/25565 ポートを使っているので GCP のファイアウォールルール設定でポートを開けておきましょう。
port2.png

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 を直接編集します。
root@mcapsv01_ _mcjava - Google Chrome 2020_03_24 2_02_04_2.png
統合版のホワイトリストはユーザの名前だけ分かれば 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

以上です。ね?簡単だったでしょ?
start2.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?