kotoyuuko

CORE

昨日より、明日より、笑える今が一番大好き。
github
telegram
email

現代的なMinecraftサーバーの作成方法

どの少年が Minecraft サーバーを持ちたくないでしょうか?

システム#

Minecraft サーバーは Java で書かれており、クロスプラットフォームで実行できるため、さまざまな Linux ディストリビューションや Windows でサーバーを開くことができます。ただし、サーバーの安定した動作のためには、Windows でのサーバーの開設はお勧めしません。

この記事では、Debian 10 をサーバーシステムとして使用し、他のシステムの操作方法もほぼ同じです。

Java ランタイムのインストール#

Debian では、Java 環境のインストールは非常に簡単です。apt を使用して直接インストールします。

apt install default-jre

Paper サーバーのダウンロード#

Minecraft には公式のサーバーがありますが、もちろん多くのサードパーティのサーバーもあります。ここでは、Paper サーバーを選択しました。

Paper サーバーは、彼らの公式ウェブサイトから直接ダウンロードできます:papermc.io/downloads

ダウンロードした jar ファイルを scp を使用してサーバーにアップロードします。

実行ユーザーの作成#

サーバーのセキュリティのために、Paper サーバーを実行するための専用のユーザーを作成する必要があります:

adduser minecraft

Paper サーバーを /opt/minecraft に移動し、ユーザーに権限を付与します:

mv /path/to/paper.jar /opt/minecraft/paper.jar
chown -R minecraft:minecraft /opt/minecraft

初回実行#

以下のコマンドを使用してサーバーを実行します:

java -Xmx4G -Xms2G -jar paper.jar nogui

サーバーを初めて実行すると、ライセンス契約に同意する必要があるとのメッセージが表示されます。eula.txtを開き、eulatrueに変更してください。

systemd サービスの作成#

Minecraft サーバーとして、Paper サーバーは 24 時間稼働する必要があります。管理を容易にするために、ここでは systemd を使用して管理します。

まず、必要なソフトウェアをインストールする必要があります:

apt install screen

/lib/systemd/system/minecraft.serviceファイルを作成し、以下の内容を記述します。ディレクトリ、サーバーファイル、およびメモリの使用量に応じて変更する必要があります:

# From: https://minecraft.gamepedia.com/Tutorials/Server_startup_script
[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/opt/minecraft
PrivateUsers=true
User=minecraft
Group=minecraft
ProtectSystem=full
ProtectHome=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
ExecStart=/bin/sh -c '/usr/bin/screen -DmS minecraft /usr/bin/java -server -XX:+UseCompressedOops -Xss256k -XX:ParallelGCThreads=16 -Xms3G -Xmx5G -jar paper.jar'
ExecReload=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "reload"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "save-all"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\\015'
ExecStop=/bin/sleep 10
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

これで systemd を使用して Paper サーバーを管理できます:

systemctl enable minecraft.service
systemctl start minecraft.service
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。