Minecraftは、これまでで最も人気のあるゲームの1つです。これは、プレイヤーが無限の世界を探索し、単純な家からそびえ立つ高層ビルまでさまざまな構造を構築するサンドボックスビデオゲームです。
このチュートリアルでは、Ubuntu20.04でMinecraftサーバーを作成する方法について説明します。 Systemdを使用してMinecraftサーバーとmcrcon
を実行します 実行中のインスタンスに接続するためのユーティリティ。また、定期的なサーバーバックアップを実行するcronジョブを作成する方法も示します。
前提条件#
Minecraftの公式サイトによると、一般的なセットアップの最小構成として4GBのRAMが推奨されています。
mcrcon
のビルドに必要なパッケージをインストールします ツール:
sudo apt update
sudo apt install git build-essential
Javaランタイム環境のインストール#
MinecraftにはJava8以降が必要です。 Minecraftサーバーはグラフィカルユーザーインターフェースを必要としないため、ヘッドレスバージョンのJavaをインストールします。このバージョンは、依存関係が少なく、システムリソースの使用量が少ないため、サーバーアプリケーションに適しています。
次のコマンドを実行して、ヘッドレスOpenJRE11パッケージをインストールします。
sudo apt install openjdk-11-jre-headless
Javaバージョンを印刷してインストールを確認します:
java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Minecraftユーザーの作成#
セキュリティ上の理由から、Minecraftはrootユーザーの下で実行しないでください。ホームディレクトリ/opt/minecraft
を使用して新しいシステムユーザーとグループを作成します 。ユーザーには、Minecraftサーバーを実行するために必要な最小限の権限があります:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
このユーザーのパスワードは設定しません。このように、ユーザーはSSH経由でログインできなくなり、侵害されることはありません。 minecraft
に変更するには ユーザーの場合、rootまたはsudo権限を持つユーザーとしてサーバーにログインする必要があります。
UbuntuへのMinecraftのインストール#
インストールプロセスを開始する前に、minecraft
に切り替えてください ユーザー:
sudo su - minecraft
次のコマンドを実行して、ユーザーのホームディレクトリ内に3つの新しいディレクトリを作成します。
mkdir -p ~/{backups,tools,server}
backups
ディレクトリには、Minecraftサーバーのバックアップが保存されます。このディレクトリをリモートバックアップサーバーに同期できます。tools
ディレクトリはmcrcon
を保持します クライアントとバックアップスクリプト。server
ディレクトリには、実際のMinecraftサーバーとそのデータが含まれます。
mcrcon
のダウンロードとコンパイル #
RCONは、Minecraftサーバーに接続してコマンドを実行できるようにするプロトコルです。 Cで記述されたmcronisRCONクライアント。
GitHubからソースコードをダウンロードして、mcrcon
をビルドします バイナリ。
Tiiffi/mcrcon
のクローンを作成します GitHubから~/tools/mcron
へのリポジトリ ディレクトリ:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
終了したら、mcron
に切り替えます ディレクトリを作成してユーティリティをビルドします:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
完了したら、mcrcon
であることを確認します そのバージョンを印刷することにより、正常にコンパイルされました:
./mcrcon -v
出力は次のようになります:
mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
tiiffi+mcrcon at gmail
https://github.com/Tiiffi/mcrcon/issues/
Minecraftサーバーのダウンロード#
サーバーに機能(プラグイン)を追加し、サーバー設定をさらにカスタマイズおよび微調整できるCraftbukkitorSpigotなどのMinecraftサーバーmodがいくつかあります。
このガイドでは、最新のMojangの公式バニラMinecraftサーバーをインストールします。他のサーバーMODのインストールにも同じ手順が適用されます。
Minecraftダウンロードページにアクセスして、最新のMinecraftサーバーのJavaアーカイブファイル(JAR)のダウンロードリンクを取得します。執筆時点では、最新バージョンは1.16
です。 。
~/server
にjarファイルをダウンロードします wget
のあるディレクトリ :
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Minecraftサーバーの構成#
ダウンロードが完了したら、~/server
に切り替えます ディレクトリを作成し、Minecraftサーバーを起動します:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
初めて起動すると、サーバーはいくつかの操作を実行し、server.properties
を作成します およびeula.txt
ファイルと停止。
[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
サーバーを実行するには、上記の出力に示されているように、MinecraftEULAに同意する必要があります。 eula.txt
を開きます ファイルを作成してeula=false
を変更します eula=true
へ :
nano ~/server/eula.txt
〜/ server / eula.txt eula=true
ファイルを閉じて保存します。
次に、server.properties
を開きます ファイルを作成してrconプロトコルを有効にし、rconパスワードを設定します。
nano ~/server/server.properties
以下に示すように、次の行を見つけて値を更新します。
〜/ server / server.propertiesrcon.port=25575
rcon.password=strong-password
enable-rcon=true
strong-password
を変更することを忘れないでください 離れた場所からMinecraftサーバーに接続したくない場合は、rconポートがファイアウォールによってブロックされていることを確認してください。 ここで、サーバーのデフォルトのプロパティを調整することもできます。サーバー設定の詳細については、server.propertiesページにアクセスしてください。
Minecraftサーバーを手動で起動する代わりに、Systemdユニットファイルを作成し、Minecraftをサービスとして実行します。
exit
と入力して、sudoユーザーに戻ります。 。
テキストエディタを開き、minecraft.service
という名前のファイルを作成します /etc/systemd/system/
にあります ディレクトリ:
sudo nano /etc/systemd/system/minecraft.service
次の構成を貼り付けます:
/etc/systemd/system/minecraft.service[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
[Install]
WantedBy=multi-user.target
Xmx
を変更します およびXms
サーバーリソースに応じたフラグ。 Xmx
フラグは、Java仮想マシン(JVM)の最大メモリ割り当てプールを定義し、Xms
初期メモリ割り当てプールを定義します。また、正しいrcon
を使用していることを確認してください ポートとパスワード。
ファイルを保存し、systemdマネージャー構成をリロードします:
sudo systemctl daemon-reload
これで、次のように入力してMinecraftサーバーを起動できます。
sudo systemctl start minecraft
初めてサービスを開始すると、Minecraftの世界を含むいくつかの構成ファイルとディレクトリが生成されます。
次のコマンドでサービスステータスを確認します。
sudo systemctl status minecraft
● minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
Main PID: 1338035 (java)
Tasks: 15 (limit: 1074)
Memory: 465.3M
CGroup: /system.slice/minecraft.service
└─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
最後に、Minecraftサービスが起動時に自動的に開始されるようにします:
sudo systemctl enable minecraft
Ubuntuには、UFWと呼ばれるファイアウォール構成ツールが付属しています。システムでファイアウォールが有効になっていて、ローカルネットワークの外部からMinecraftサーバーにアクセスする場合は、ポート25565
を開く必要があります。 :
sudo ufw allow 25565/tcp
バックアップの構成#
このセクションでは、Minecraftサーバーを自動的にバックアップするためのバックアップシェルスクリプトとcronジョブを作成します。
minecraft
に切り替えます :
sudo su - minecraft
テキストエディタを開き、次のファイルを作成します。
nano /opt/minecraft/tools/backup.sh
次の構成を貼り付けます:
/opt/minecraft/tools/backup.sh#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}
rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
ファイルを保存し、スクリプトを実行可能にします:
chmod +x /opt/minecraft/tools/backup.sh
次に、1日に1回、決まった時間に自動的に実行されるcronジョブを作成します。
次のように入力してcrontabファイルを開きます。
crontab -e
毎日23:00にバックアップスクリプトを実行するには、次の行を貼り付けます。
0 23 * * * /opt/minecraft/tools/backup.sh
Minecraftコンソールへのアクセス#
Minecraftコンソールにアクセスするには、mcrcon
を使用します 効用。ホスト、rconポート、rconパスワードを指定し、-t
を使用する必要があります mcrcon
を有効にするスイッチ ターミナルモード:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
>
離れた場所からMinecraftコンソールにアクセスする場合は、rconポートがブロックされていないことを確認してください。
Minecraftコンソールに定期的に接続している場合は、この長いコマンドを入力する代わりに、bashエイリアスを作成します。