Ubuntu上にMinecraftサーバーを建てる【Ubuntu 18.04 LTS】

Ubuntu 18.04 LTS上にSpigotMCを用いてMinecraftサーバーを構築します.

2020/11/11 記事内に原因不明の改行バグが起きています……。

環境

以下の環境でサーバー構築を行います.

項目 内容
OS Ubuntu 18.04 LTS
Java OpenJDK 8
Minecraft 1.15.1
SpigotMC BuildTools #105

今回は/srv/minecraft/(以下minecraft/)にサーバーを構築します.

# 管理権限が必要
sudo mkdir /srv/minecraft cd /srv/minecraft

必要物のダウンロードとインストール

JavaのインストールとSpigotMCのビルドを行います.

Javaのインストール

以下のコマンドでJDKをインストールします.

$ sudo apt install openjdk-8-jdk-headless

インストールの確認を取られた場合はYで次へ進みます.

SpigotMCのビルド

以下のコマンドでBuildTools.jarをダウンロードします.

$ curl -o BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/105/artifact/target/BuildTools.jar

ダウンロードが終わったら以下のコマンドでビルドします.

# 前準備としてgitの設定を変更
git config --global --unset core.autocrlf

# Minecraft 1.15.1用のサーバーをビルド java -jar BuildTools.jar --rev 1.15.1

# jarのリネーム
$ mv spigot-1.15.1.jar spigot.jar

暫く待つとビルドが完了して,諸々のファイルやディレクトリとspigot-1.15.1.jarBuildTools.jarと同じディレクトリに生成されます.

サーバー起動用スクリプトの作成

minecraft/start.shにサーバーを起動するためのスクリプトを記述します. -Xmx12Gでサーバーが使用出来るメモリの最大容量を12GBに設定しています.

#!/bin/sh
java -Xmx12G -XX:+UseConcMarkSweepGC -jar spigot.jar

以下のコマンドで先ほど作ったスクリプトを実行出来るようにします.

# 実行権限を付与
chmod +x start.sh
# 一度起動しておく ./start.sh

初回起動時はEULAへの同意を求められます. minecraft/eula.txtを開いて最後の行のeula=falseeula=trueに変更します.

SpigotMCのサービス化

先ほど作成したスクリプトをサービス化してPC起動時に一緒に起動するようにします.

$ cd /lib/systemd/system
$ sudo vi minecraft.service

サービス情報として以下を記述します. User=Group=は専用のユーザーやグループが用意されている場合は書き換えます.

[Unit]
Description=Minecraft Server

[Service]
Type=simple
WorkingDirectory=/srv/minecraft/
ExecStart=/srv/minecraft/start.sh
User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target
# 現在のMinecraftサービスの状態を確認
sudo systemctl list-unit-files --type=service | grep minecraft.service

# Minecraftサービスの有効化 sudo systemctl enable minecraft

SpigotMCサービスの開始

以下のコマンドで起動と状態の確認を行います.

# 起動
sudo systemctl start minecraft
# 状態の確認 sudo systemctl status minecraft

起動している事が確認出来たら作業は完了です. デフォルトでは25565番のTCPポートにサーバーが開かれているので,接続テストを行います.

終了する場合やサービスを削除する場合は以下のコマンドで終了します.

# 終了
sudo systemctl stop minecraft

# Minecraftサービスの無効化 sudo systemctl disable minecraft

ポート開放

外部に開放する場合はポート開放が必要になります.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です