【Ubuntu Server 24.04】Minecraft Bedrock Server(統合版マインクラフト)をインストールする方法

記事内に広告が含まれています。

VPS上の「Ubuntu Server 24.04 LTS」に、「Minecraft Bedrock Server(統合版マインクラフト)」をインストールする手順について説明します。

使用VPS: ConoHa VPS

unzipとtmuxをインストール

「Minecraft Bedrock Server」(以降「Bedrock Server」と記述)はzip形式で圧縮された形で提供されています。

そのため、ダウンロードしたzipファイルを解凍するために「unzip」というソフトをインストールする必要があります。

また、「Bedrock Server」をユーザがログインしていない状態でも動作し続けるように、バックグラウンドで動かし続けるために「tmux」とソフトを使用するので、こちらもあわせてインストールします。

$ sudo apt update
$ sudo apt install unzip tmux

管理用ユーザ作成

「Bedrock Server」の起動や停止などを行うための管理用ユーザを作成します。

ユーザ名に決まりはありませんが、今回はminecraftというユーザ名で作成していきます。

$ sudo adduser minecraft

19132番ポート(udp)の通信許可

「Bedrock Server」で使用するポート(19132/udp)の通信を許可するため、「ufw」コマンドでファイアウォールの設定を変更します。

$ sudo ufw allow 19132/udp

設定変更後、ファイアウォールに「Bedrock Server」が使用する19132/udpポートが正しく追加されたかを確認するために、「ufw status」コマンドを実行します。

以下の設定が表示されていれば設定は完了です。

$ sudo ufw status | grep 19132
19132/udp                  ALLOW       Anywhere                  
19132/udp (v6)             ALLOW       Anywhere (v6)   

Minecart Bedrock Server(統合版)のインストール

Bedrock Serverのインストールディレクトリ作成

今回は、「Bedrock Server」をインストールするためのディレクトリとして、管理用ユーザのホームディレクトリに「bedrock」というディレクトリを作成します。

$ su - minecraft
$ mkdir bedrock
$ cd bedrock

ダウンロード

「Bedrock Server」のダウンロードはMinecraft公式サイトの下記ページから行うことができます。

Webブラウザでアクセスすると、WindowsとUbuntuそれぞれのソフトウェアをダウンロードできるページが表示されます。

「Minecraft エンドユーザー ライセンス契約とプライバシー ポリシー に同意します。」にチェックを入れて「ダウンロード」ボタンをクリックすること、サーバの実行ファイル(zip形式)がダウンロードされます。

以前は、curlコマンドでサーバに直接ダウンロードすることが出来たのですが、現在はこの方法ではダウンロード出来ないようです。

これは、ライセンス契約とプライバシーポリシーに同意したことを確認するチェックを入れてからダウンロードする必要があると考えられるので、webブラウザ上で同意のチェック入れて、ダウンロードボタンを押してダウンロードする方法をとることにします。(UserAgentを偽装すればcurlでもダウンロード出来るようですが、ブラウザからダウンロードして欲しそうなのでちょっとやめときます)

アップロード

ダウンロードされた実行ファイル(zip形式)を、Bedrock Serverをインストールするサーバにアップロードをします。

アップロード先は先程インストール用に作成したディレクトリにとなります。

今回の場合、minecraftユーザのホームディレクトリにある「bedrock」というディレクトリにアップロードします。

アップロードの方法としては以下のような方法がありますので、お好きな方法アップロードして下さい。

  • scp
  • sftp
  • SSHクライアント(TeraTerm等)のscp・sftp機能を使用
  • WinSCP等のクライアントソフトを使用

「WinSCP」の使用方法以外については、以下のページで説明していますのでよければ参照してみて下さい。

「scp」と「sftp」の説明はクライアント側の環境としてUbuntuを想定して説明していますが、Windowsのコマンドラインでも同様の方法でアップロード出来ると思います。

解凍

「unzip」コマンドを使用して、アップロードされたzipファイルを解凍します。

$ unzip bedrock-server-1.21.71.01.zip -d ./bedrock-server-1.21.71.01

※ダウンロードされてくるファイル名は、バージョンによって数字部分が異なるので適宜読み替えて下さい。

起動の確認

解凍された「Bedrock Server」の実行ファイルに問題が無いか、実際に起動させて動作確認を行います。

起動に問題がなければ「Server started.」とログに表示されます。

$ cd bedrock-server-1.21.71.01
$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2025-04-07 20:45:41:040 INFO] Starting Server
[2025-04-07 20:45:41:040 INFO] Version: 1.21.71.01

##### 中略 #####

[2025-04-07 20:45:42:541 INFO] IPv4 supported, port: 19132: Used for gameplay and LAN discovery
[2025-04-07 20:45:42:541 INFO] IPv6 supported, port: 19133: Used for gameplay
[2025-04-07 20:45:42:589 INFO] Server started.  ## Bedrock Serverが開始されたログです 
[2025-04-07 20:45:42:589 INFO] ================ TELEMETRY MESSAGE ===================
[2025-04-07 20:45:42:589 INFO] Server Telemetry is currently not enabled. 
[2025-04-07 20:45:42:589 INFO] Enabling this telemetry helps us improve the game.
[2025-04-07 20:45:42:589 INFO] 
[2025-04-07 20:45:42:589 INFO] To enable this feature, add the line 'emit-server-telemetry=true'
[2025-04-07 20:45:42:589 INFO] to the server.properties file in the handheld/src-server directory
[2025-04-07 20:45:42:589 INFO] ======================================================

動作確認

「Bedrock Server」の起動が確認できたら、Minecraftのゲームクライアントから実際に接続して、問題なくプレイできることを確認して下さい。

プレイヤーがログインすると、サーバのコンソール上には以下のようなログが表示されます。

[2025-04-07 21:00:14:659 INFO] Player connected: tamohiko, xuid: xxxxxxxxxxxxxx
[2025-04-07 21:00:23:142 INFO] Player Spawned: tamohiko xuid: xxxxxxxxxxxxxx, pfid: xxxxxxxxxx

停止

動作確認が出来たら、「stop」と入力して「Bedrock Server」を停止します。

stop
[2025-04-07 21:02:23:769 INFO] Server stop requested.
[2025-04-07 21:02:23:806 INFO] Stopping server...
Quit correctly

自動起動設定

「Bedrock Server」の起動と動作確認が完了したら、Ubuntuサーバが起動した時に自動で「Bedrock Server」を起動させるために、以下の設定を行っていきます。

  • シンボリックリンク作成
  • 「Bedrock Server」起動・停止スクリプト作成
  • systemdで自動起動設定

シンボリックリンク作成

シンボリックリンクを作成して、「Bedrock Server」をバージョンアップしても「Bedrock Server」起動・停止スクリプトの書き換えを行わなくても良いようにします。

$ cd ~/bedrock
ln -s bedrock-server-1.21.71.01 bedrock-server
$ ls -l bedrock-server
lrwxrwxrwx 1 minecraft minecraft 25 Apr  7 21:31 bedrock-server -> bedrock-server-1.21.71.01

バージョンアップする場合は、シンボリックリンクのリンク先を実行したいバージョンが格納されているディレクトリに変更します。

BedrockBedrock Serverの起動・停止スクリプトの作成

「Bedrock Server」の起動・停止を行うためのスクリプトを作成します。

$ vi bedrock_script.sh

スクリプト内の変数説明です。

  • USERNAME: bedrock_server実行ユーザ
  • SESSION_NAME: tmuxのセッション名
  • BEDROCK_PATH: bedrock_serverのインストールディレクトリを設定
  • LD_LIBRARY_PATH: LD_LIBRARY_PATHを設定
  • SERVICE: 実行するbedrock_server

#!/bin/bash
#
# bedrock_server start/stop/backup script
#

# bedrock_server 実行ユーザ
USERNAME='minecraft'

# session名
SESSION_NAME='bedrock'

# bedrock_serverインストールディレクトリ
BEDROCK_PATH='/home/minecraft/bedrock/bedrock-server'

# LD_LIBRARY_PATH設定
LD_LIBRARY_PATH="$BEDROCK_PATH"

# 実行する bedrock_server
SERVICE="$BEDROCK_PATH/bedrock_server"

cd $BEDROCK_PATH

if [ ! -d $BK_DIR ]; then
    mkdir $BK_DIR
fi

ME=`whoami`

if [ $ME != $USERNAME ]; then
    echo "Please run the $USERNAME user."
    exit
fi

# 開始処理
start() {
    if pgrep -u $USERNAME -f $SERVICE > /dev/null; then
        echo "$SERVICE is already running!"
    else
        echo "Starting $SERVICE..."
        tmux new-session -d -s $SESSION_NAME
        tmux send-keys -t $SESSION_NAME:0 "LD_LIBRARY_PATH=$LD_LIBRARY_PATH $SERVICE" C-m
    fi
}

# 停止処理
stop() {
    if pgrep -u $USERNAME -f $SERVICE > /dev/null; then
        echo "Stopping $SERVICE"
        tmux send-keys -t $SESSION_NAME:0 "say SERVER SHUTTING DOWN IN 30 SECONDS." C-m
        sleep 30
        tmux send-keys -t $SESSION_NAME:0 "stop" C-m
        sleep 10
        echo "Stopped bedrock_server"
    else
        echo "$SERVICE is not running!"
        exit
    fi
    while :
    do
        if
            pgrep -u $USERNAME -f $SERVICE > /dev/null; then
            echo "Stopping $SERVICE"
            sleep 10
        else
            tmux kill-session -t $SESSION_NAME
            echo "Stoped $SERVICE"
            break
        fi
    done
}

case "$1" in
    start)
        echo "Bedrock Server Start"
        start
        ;;
    stop)
        echo "Bedrock Server Stop"
        stop
        ;;
    *)
        echo "Invalid option"
        echo "Usage: $0 {start|stop}"
esac

スクリプトの使用方法

スクリプトを実行する際に「start」「stop」を引数として指定します。

  • start: 起動
  • stop: 停止
bedrock_script.sh 引数

パーミッションの設定

スクリプトを実行可能にするためにパーミッションを設定します。

$ chmod 744 bedrock_script.sh

起動確認 bedrock_script.sh start

スクリプトを実行して、正常に「Bedrock Server」が起動するか確認していきます。

スクリプトを実行すると「SESSION_NAME」で設定した名前で「tmux」のセッションが作成され、そのセッション内で「bedrock_server」が起動します。

スクリプト実行時に「-x」オプションをつけると、実行状況が画面に表示されます。

これは、スクリプトが正常に動作しない場合の原因特定や問題解決に役立ちます。

動作確認後は、「-x」オプションをつける必要はありません。

$ sh -x ./bedrock_script.sh start

「tmux」のセッションが起動しているかは「tmux ls」を実行することで確認することができます。

下記の例では、1つのセッションが作成されていることが確認できます。

$ tmux ls
bedrock: 1 windows (created Mon Apr  7 22:31:24 2025)
tmuxのセッションへAttach(接続)

「Attach(アタッチ)」とは、すでに起動しているセッションに接続することを意味します。

「tmux a」と実行することでセッションにAttach(接続)することができるので、正常に「Bedrock Server」が起動しているか確認してください。

$ tmux a

「Bedrock Server」が正常に起動している場合、tmuxのセッションに接続すると「Bedrock Server」の起動ログが表示されます。

$ LD_LIBRARY_PATH=/home/minecraft/bedrock/bedrock-server /home/minecraft/bedrock/bedrock-server/bedrock_server
NO LOG FILE! - setting up server logging...
[2025-04-07 22:31:25:045 INFO] Starting Server

##### 中略 #####

[2025-04-07 22:31:26:619 INFO] IPv4 supported, port: 19132: Used for gameplay and LAN discovery
[2025-04-07 22:31:26:619 INFO] IPv6 supported, port: 19133: Used for gameplay
[2025-04-07 22:31:26:682 INFO] Server started.
[2025-04-07 22:31:26:682 INFO] ================ TELEMETRY MESSAGE ===================
[2025-04-07 22:31:26:682 INFO] Server Telemetry is currently not enabled. 
[2025-04-07 22:31:26:682 INFO] Enabling this telemetry helps us improve the game.
[2025-04-07 22:31:26:682 INFO] 
[2025-04-07 22:31:26:683 INFO] To enable this feature, add the line 'emit-server-telemetry=true'
[2025-04-07 22:31:26:683 INFO] to the server.properties file in the handheld/src-server directory
[2025-04-07 22:31:26:683 INFO] ======================================================
tmuxのセッションからDetach(切断)

「Detach(デタッチ)」とは、接続しているセッションから切断することを意味します。

起動確認後、「Ctrl + b」を押してから「d」を押すと、現在接続しているセッションから抜ける(Detach)ことができます。

セッションから抜けると、「[detached (from session セッション名)]」と表示され、元のターミナル画面に戻ります。

[detached (from session bedrock)]
$

停止確認 bedrock_script.sh stop

「Bedrock Server」が正常に起動することを確認したら、今度は停止させる動作を確認します。

「Bedrock Server」を停止させるまでに30秒の余裕を持たせていますので、処理が完了するまで待っていて下さい。

$ sh -x ./bedrock_script.sh stop

正常に停止すると、「Bedrock Server」を起動するために作成された「tmux」のセッションが終了し、セッション一覧から消えているはずです。

$ tmux ls
no server running on /tmp/tmux-1001/default

no server runningと表示されて、セッションが無いことが確認できます。

これは、サーバが正常に停止したことを意味します。

systemd登録用ファイル作成

「Bedrock Server」を自動起動するように設定するため、「systemd」に登録する設定ファイルを「/etc/systemd/system/bedrock_server.service」という名前で作成します。

自動起動の設定ファイル作成には管理者権限が必要なため、「sudo」コマンドを使用します。

ここまで手順通りに作業を行っている場合は、現在は「minecraft」ユーザになって作業を行っているはずなので、「exit」コマンドでログアウトして「sudo」できるユーザに戻ってください。

$ exit
logout

「sudo」出来るユーザに戻ったら、「systemd」に登録するための設定ファイルを作成します。

$ sudo vi /etc/systemd/system/bedrock_server.service

設定内容は以下のとおりです。

[Unit]
Description=Minecraft Bedrock Server
After=network.target local-fs.target

[Service]
Type=forking
User=minecraft
ExecStart=/home/minecraft/bedrock/bedrock_script.sh start
ExecStop=/home/minecraft/bedrock/bedrock_script.sh stop

[Install]
WantedBy=multi-user.target

設定ファイルが完成したら、以下のコマンドを実行して設定ファイルを再読み込みし、「systemd」に認識させてください。

$ sudo systemctl daemon-reload

自動起動設定

「systemd」登録用のファイルの作成が終わりましたら、以下のコマンドを実行して自動起動を登録します。

$ sudo systemctl enable bedrock_server.service

動作確認

自動起動の設定が完了したら、実際にUbuntuサーバを再起動して「bedrock_server」が自動的に起動してくるか確認をしてください。

$ sudo reboot

問題なく起動してくればインストール作業は完了となります。

たのしいマイクラライフをお過ごし下さい!!

コメント

タイトルとURLをコピーしました