Linux MintでMinecraftサーバーを構築する

  • このエントリーをはてなブックマークに追加

MinecraftのMOD対応サーバーを立ててほしいと友人から頼まれたので構築しました。マイクラサーバーはこれまでも何度か構築してますが、その度にやり方を忘れて調べ直しているので今後のために備忘録でも残しておこうと思います。

サーバー機は自作PCの余りパーツで構築したデスクトップPCです。ストレージだけ余ってなかったのでSSDを追加で購入してます。OSは今まではずっとCentOSを使ってましたがどうもサポートが終了しているらしいので別のLinuxディストリビューションを選択します。有名どころを選んだ方がネットの情報が多くて問題が発生したときに解決方法を見つけやすいです。ここ最近はLinux Mintが人気らしいので使ったことはないですがこれにしてみます。マイクラサーバーはForgeのMODを使いたいとのことなので要望通りForgeサーバーを使います。以上をまとめるとこんな感じです。

  • サーバー機:余りパーツの寄せ集めで組んだデスクトップPC
  • OS:Linux Mint
  • マイクラサーバー:Minecraft Forge

Linux Mintのインストール

エディションを選ぶ

Linux Mintにはエディションによって複数の種類に分かれているようです。通常のエディションは以下の3つがあります。違いは主にGUI周りだけみたいなので自分の好きな見た目のエディションを選ぶと良いと思います。

  • Cinnamonエディション
  • MATEエディション
  • Xfceエディション

これらのエディションとは別にLMDE (Linux Mint Debian Edition)というエディションもあります。このエディションは名前にもあるとおりDebianをベースにしているらしいです(通常エディションはUbuntuベース)。サーバーとして運用する上でGUI周りは正直どうでも良いので今回は一番ポピュラーらしいCinnamonエディションを選択しました。

OSイメージをダウンロード

Linux Mintの公式ページから最新版のOSイメージをダウンロードします。現時点の最新版はVersion 21.1のようです。

Linux Mint:https://linuxmint.com/

エディション選択ページの「Download」をクリックするとダウンロードのページへ移動します。ミラーサイトの一覧があるのでそこから適当なサイトを選択してイメージをダウンロードします。念のためダウンロードしたイメージのハッシュ値を確認しておきます。Windowsの場合はコマンドプロンプトから以下のコマンドでイメージのハッシュ値を算出できます。

> certutil -hashfile linuxmint-21.1-cinnamon-64bit.iso SHA256

算出したハッシュ値がダウンロードページに掲載されているsha256sum.txtの中のハッシュ値と一致していれば問題なくダウンロードできています。

インストール用のUSBメモリ作成

インストール用に中身を消しても良いUSBメモリを用意します。容量は8GBあれば十分です。書き込みソフトはイメージの書き込みができれば何でも良いですが、今回はrufusを使用します。ちなみにこのソフトを使うのは初めてです。起動したら「デバイス」で書き込むUSBメモリを、「ブートの種類」で書き込むOSイメージを選択します。それ以外はデフォルトの設定で大丈夫だと思います。

「スタート」を押して書き込みを開始すると書き込みモードを選ぶウィンドウが出てきます。具体的にどう違うのかはよく分かりませんがISOイメージモードが推奨みたいなのでそちらを選択して「OK」をクリックします。

USBメモリからLinux Mintを起動してインストール実行

作成したUSBメモリからLinux Mintを起動します。起動させるためにはUEFIの設定を多少いじる必要がありますが説明が面倒なのでこのへんは割愛します。USBメモリからLinux Mintを起動させるとデスクトップ画面にポツンと1つ「Install Linux Mint」のアイコンがあるのでこれをダブルクリックしてインストールを実行します。あとはインストール画面に表示される「次へ」ボタンを押したりユーザー名やパスワードを入力したらインストール完了です。

Linux Mintの初期設定

インストールが完了したらとりあえずまずパッケージを最新版に更新しておきます。

$ sudo apt update

Linux Mintは初期の状態ではsshdがインストールされていないようです。デスクトップ向けのディストリビューションなので敢えて入れてないんだと思いますがサーバーとして運用する場合には入ってないと不便なので以下のコマンドでインストールします。

$ sudo apt install openssh-server

インストールが完了したら以下のコマンドで状態を確認します。

$ service ssh status

ステータス情報がいろいろ表示されますが「Active : active (running)」と表示されていればsshdのインストールと起動は大丈夫です。

通常であればここでファイアウォールの設定も行うところですけれど、Linux Mintは初期設定ではファイアウォールは無効になっているようです。設定が面倒なのでとりあえず無効のままにしておきます。まあ危険なのでファイアウォール無効でサーバーとして運用するのは止めた方が良いです。

Minecraftサーバーの構築

OpenJDKのインストール

Minecraftサーバーを実行するにはJava (OpenJDK)をインストールする必要があります。以下のコマンドを実行してインストール可能なOpenJDKを調べます。

$ apt search openjdk

たくさんのバージョンがヒットしますが今回は長期サポート版のJDK 17をインストールすることにしました。以下のコマンドでJDK 17をインストールできます。

$ sudo apt install openjdk-17-jdk

インストールできたら以下のコマンドでバージョンを確認します。バージョンが表示されたら問題なくインストールできています。

$ javac --version
javac 17.0.5

Minecraft Forgeのインストール

マイクラサーバーには公式が配布しているもの以外にサードパーティ製のサーバーがいくつもあります。これまではプラグインが使用できるSpigotでサーバー構築してきましたが今回はMineAllやcreateといったMODを使いたいという要望があるのでForgeを使用します。Forgeでサーバーを構築するのは今回がはじめてです。まずはForgeのダウンロードサイトからインストーラ(jarファイル)をダウンロードします。現在の最新版は1.19.3ですが、最新版はMOD側がまだ対応してなかったりするので1つ古い1.19.2を使用することにしました。

Minecraft Forge : https://files.minecraftforge.net/net/minecraftforge/forge/index_1.19.2.html

ダウンロードしたら以下のコマンドでインストーラを実行します。

$ java -jar forge-1.19.2-43.2.3-installer.jar

インストーラが起動したら「Install server」を選択し、インストール先のディレクトリを設定します。「OK」をクリックするとインストールが始まります。

インストールが完了したらインストール先のディレクトリに移動して起動スクリプトを実行します。

$ ./run.sh

最初の実行時にはサーバーは起動せずeula.txtというファイルが作成されます。このファイルを編集して「eula=false」の部分を「eula=true」に書き換えます。

#eula=false
eual=true

もう1度起動スクリプトを実行するとForgeサーバーが起動します。

$ ./run.sh

停止させるには起動スクリプトを実行した端末からMinecraftサーバーの停止コマンドを実行します。

> stop

サーバーに割り当てるメモリサイズ設定

マイクラサーバーに割り当てるメモリサイズを設定します。Forgeをインストールしたディレクトリに「user_jvm_args.txt」というファイルが作成されているのでサーバー起動時のオプションを設定するようです。メモリサイズを設定するには以下の行を追加します。

-Xms4G
-Xmx4G

上の設定ではサーバーに割り当てるメモリサイズを4GBに設定しています。「-Xms」は起動時に割り当てられるメモリサイズで、「-Xmx」は割り当てるメモリの最大サイズを設定するオプションです。このあたりはJavaの仕様なので詳しくはJavaのオプションで調べてください。割り当てるメモリを4GBではなく2GBに変更したい場合は「-Xmx2G」といった感じに書き換えます。割り当てるメモリサイズは大きくした方がゲームが快適になります。小さすぎるとそもそもサーバーの起動に失敗したりするので注意が必要です。

マイクラサーバーの自動起動設定

screenのインストール

一応ここまでで最低限のサーバー構築は完了です。ただ、PCを再起動する度にrun.shを手動で実行するのは面倒なので自動起動するようにサービスとして登録します。また、終了する際はサーバー内に通知を出して安全に終了するためにscreenを使ってMinecraftサーバーのコマンドを実行します。以下のコマンドでscreenをインストールします。

$ sudo apt install screen

起動用と終了用のスクリプト作成

Forgeをインストールしたディレクトリにサービス起動時と終了時に実行するスクリプトを作成します。ファイル名は「start_server.sh」と「stop_server.sh」としましたが他の名前でも構いません。ファイルを作成したら実行するためにパーミッションを設定します。

$ touch start_server.sh
$ chmod +x start_server.sh
$ touch stop_server.sh
$ chmod +x stop_server.sh

起動用スクリプトの中身はこんな感じ。

#!/usr/bin/bash
SCREEN_NAME='minecraft'
screen -UAmdS $SCREEN_NAME <Forgeをインストールしたディレクトリのパス>/run.sh

終了用はこんな感じ。

#!/usr/bin/bash
SCREEN_NAME='minecraft'
if [ -n "$(screen -list | grep -o "${SCREEN_NAME}")" ]; then
    echo [`date '+%F %T'`] 'server stop script start'
    screen -S $SCREEN_NAME -X stuff 'say Stop this server after 30 seconds!\015'
    sleep 30s
    screen -S $SCREEN_NAME -X stuff 'save-all\015'
    sleep 5s
    screen -S $SCREEN_NAME -X stuff 'stop\015'
    sleep 30s
else
    echo [`date '+%F %T'`] 'server is not running'
fi

サービスとして登録

サービスとして登録するためにserviceファイルを作成します。サービス名は「minecraft_forge」にしました。以下のコマンドでまずファイルを作成します。

$ sudo touch /usr/lib/systemd/system/minecraft_forge.service

serviceファイルの中身は以下の通りです。ユーザー名やForgeをインストールしたディレクトリは自分の環境に合わせて適宜補完してください。

[Unit]
Description=Minecraft Forge Server
After=network.target

[Service]
Type=forking
User=<ユーザー名>
Group=<ユーザー名>
WorkingDirectory=<Forgeをインストールしたディレクトリのパス>
ExecStart=/usr/bin/bash <Forgeをインストールしたディレクトリのパス>/start_server.sh
ExecStop=/usr/bin/bash <Forgeをインストールしたディレクトリのパス>/stop_server.sh
Restart=always

[Install]
WantedBy=multi-user.target

以下のコマンドを実行してサービスとして登録します。

$ sudo systemctl daemon-reload
$ sudo systemctl enable minecraft_forge

これで次からはPCを起動した際に自動でマイクラサーバーが起動するようになります。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*