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の使い方: https://vpslife.server-memo.net/ubuntu_scp/
- sftpの使い方: https://vpslife.server-memo.net/ubuntu_sftp
- TeraTermのscpを使う方法: https://www.server-memo.net/memo/teraterm/teraterm-scp.html
「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
問題なく起動してくればインストール作業は完了となります。
たのしいマイクラライフをお過ごし下さい!!
コメント