Ubuntu Server 20.04に統合版minecraftサーバ(bedrock_server)をインストールする手順です。
統合版(bedrockエディション)minecraft
Minecraftにはjava版と統合版(bedrock)があり、統合版(bedrock)は以下のプラットフォームで一緒に遊ぶことができます。
- Android
- Amazon Fire
- iOS
- Nintendo Switch
- Oculus
- PS4/5
- Windows10版
- Xbox
今回インストールする統合版(bedrock)Minecraftサーバに接続できるのは、下記のプラットフォームからとなります。
- Android
- iOS
- Windows10版(Javaエディションじゃない方)
- Amazon Fire 行けるかも…(未確認)
以下のプラットフォームからはプラットフォームの仕様により接続することができません。
- Nintendo Switch
- Xbox
- PS4
これらのプラットフォームもいっしょに遊びたい場合は、マインクラフトマーケットプレイスから「Realms for Bedrock Edition 」または「Realms Plus」のサブスクリションを購入することで、常時稼働のオンラインサーバを作成することができます。
詳しくは下記のURLを参照してください。
https://www.minecraft.net/ja-jp/realms/bedrock
インストール作業の内容
統合版(bedrock)Minecraftサーバのインストールは下記の作業工程で行っていきます。
- unzipインストール
- 19132/udpポート開放
- 動作用ユーザ作成
- インストール
- 起動・停止・バックアップスクリプト作成
- 自動起動設定
インストール環境
インストールは下記の環境で行っていきます。
- OS Ubuntu Server 20.04 LTS
- インストールディレクトリ /opt/bedrock
- 動作用ユーザ bedrockadmin
- tmuxの仮想端末上で動作
動作用ユーザやインストールディレクトリは好きなもの変更可能です。
変更した場合はこれから説明する手順を適宜読み替えてください。
unzipインストール
ダウンロードする統合版(bedrock)minecraftサーバのデータはzip形式で圧縮されているので、解凍に必要なuzipをインストールします。
$ sudo apt update $ sudo apt install unzip
19132/udpポート開放
ufwコマンドを使用して統合版(bedrock)Minecraftサーバで使用する19132/udpポートを開放します。
$ sudo ufw allow 19132/udp $ sudo ufw reload
動作用ユーザ作成
統合版(bedrock)Minecraftサーバを動作させるためのユーザbedrockadminを作成します。
$ sudo adduser bedrockadmin Adding user `bedrockadmin' ... Adding new group `bedrockadmin' (1002) ... Adding new user `bedrockadmin' (1002) with group `bedrockadmin' ... Creating home directory `/home/bedrockadmin' ... Copying files from `/etc/skel' ... New password: # パスワードを設定 Retype new password: # パスワードの再入力 passwd: password updated successfully Changing the user information for bedrockadmin Enter the new value, or press ENTER for the default Full Name []: # Enterキー押下 Room Number []: # Enterキー押下 Work Phone []: # Enterキー押下 Home Phone []: # Enterキー押下 Other []: # Enterキー押下 Is the information correct? [Y/n] y # yを入力
インストール
作業自体はとても簡単で、インストール用ディレクトリを作成後、統合版(bedrock)Minecraftのデータをダウンロードして解凍するだけです。
インストールディレクトリ作成
インストール用のディレクトリを作成し、ディレクトリの所有者を動作用のユーザに設定します。
$ sudo mkdir /opt/bedrock $ sudo chown bedrockadmin:bedrockadmin /opt/bedrock/
ダウンロード
ここからの作業は、統合版(bedrock)Minecraftサーバ動作用のユーザで行います。
$ su - bedrockadmin
インストール用のディレクトリに移動し、bedrock_serverのダウンロードを行います。
ダウンロードするためのURLは下記URLにアクセスし、「Ubuntu用 Ubuntuサーバーソフトウェア」のダウンロードボタンを右クリックし、ダウンロード用URLをコピーします。
https://www.minecraft.net/ja-jp/download/server/bedrock

ダウンロード用のURLはバージョンによって違ってくるので、ダウンロード用のウェブページを確認してください。
$ cd /opt/bedrock $ curl -L -O https://minecraft.azureedge.net/bin-linux/bedrock-server-1.17.11.01.zip
ダウンロードしたzipファイルをbedrock-serverという名前のディレクトリで解凍します。
$ unzip bedrock-server-1.17.11.01.zip -d bedrock-server
bedrock_server起動
解凍したディレクトリ内にあるbedrock_serverというファイルを「LD_LIBRARY_PATH=. ./bedrock_server」という形で実行することで、統合版(bedrock)Minecraftサーバを起動することができます。
$ cd bedrock-server $ LD_LIBRARY_PATH=. ./bedrock_server NO LOG FILE! - setting up server logging... [2021-08-03 11:24:05 INFO] Starting Server [2021-08-03 11:24:05 INFO] Version 1.17.10.04 [2021-08-03 11:24:05 INFO] Session ID 9e06301a-5d2e-4b6f-bf6d-6bcbc968a5e0 [2021-08-03 11:24:05 INFO] Level Name: Bedrock level [2021-08-03 11:24:05 INFO] Game mode: 0 Survival [2021-08-03 11:24:05 INFO] Difficulty: 1 EASY [INFO] opening worlds/Bedrock level/db [INFO] IPv4 supported, port: 19132 [INFO] IPv6 supported, port: 19133 [INFO] IPv4 supported, port: 56457 [INFO] IPv6 supported, port: 34996 [INFO] Server started.
無事起動できましたら、Server Started.と表示されます。
接続確認
Minecraftクライアントからサーバに接続出来るかの確認を行ってください。
問題無く接続できたらstopコマンドでbedrockサーバを一旦停止させてください。
[INFO] Player connected: tamohiko, xuid: xxxxxxxxxxxxxxx
[INFO] Player disconnected: tamohiko, xuid: xxxxxxxxxxxxxxx
stop # stopと入力
[INFO] Server stop requested.
[INFO] Stopping server...
Quit correctly
起動・停止・バックアップスクリプト作成
起動・停止・バックアップを行うためのスクリプトを作成します。
$ vi bedrock_script.sh
作成するスクリプトで設定する変数についての説明です。
| 変数 | 説明 |
|---|---|
| USERNAME | bedrock_server動作ユーザ |
| SESSION_NAME | tmuxで作成するセッション名 |
| BEDROCK_PATH | インストールディレクトリ |
| LD_LIBRARY_PATH | LD_LIBRARY_PATH設定 |
| SERVICE | 実行するbedrock_serverファイル |
| BK_DIR | バックアップデータ格納ディレクトリ |
| BK_TIME | バックアップ取得日時 |
| FULL_BK_NAME | 完全バックアップデータ名 |
| WORLD_BK_NAME | ワールドデータのバックアップデータ名 |
| WORLD_DIR | バックアップ対象ワールドデータディレクトリ |
| BK_GEN | バックアップデータ保存する日数 |
#!/bin/bash
#
# bedrock_server start/stop/backup script
#
# bedrock_server 実行ユーザ
USERNAME='bedrockadmin'
# session名
SESSION_NAME='bedrock'
# bedrock_serverインストールディレクトリ
BEDROCK_PATH='/opt/bedrock/bedrock-server'
# LD_LIBRARY_PATH設定
LD_LIBRARY_PATH="$BEDROCK_PATH"
# 実行する bedrock_server
SERVICE="$BEDROCK_PATH/bedrock_server"
## バックアップ用設定
# バックアップ格納ディレクトリ
BK_DIR="/home/$USERNAME/bedrock_backup"
# バックアップ取得日時
BK_TIME=`date +%Y%m%d-%H%M%S`
# 完全バックアップデータ名
FULL_BK_NAME="$BK_DIR/bedrock_full_backup_${BK_TIME}.tar.gz"
# ワールドデータパックアップデータ名
WORLD_BK_NAME="$BK_DIR/bedrock_world_backup_${BK_TIME}.tar"
# 取得対象ワールドデータディレクトリ
WORLD_DIR="$BEDROCK_PATH/worlds"
# バックアップデータ保存数
BK_GEN="3"
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 10 SECONDS. Saving map..." C-m
sleep 10
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
}
# ワールドバックアップ処理
w_backup() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null; then
echo "Backup start minecraft world data..."
tmux send-keys -t $SESSION_NAME:0 "save hold" C-m
sleep 10
tmux send-keys -t $SESSION_NAME:0 "save query " C-m
tar cfv $WORLD_BK_NAME $WORLD_DIR
sleep 10
tmux send-keys -t $SESSION_NAME:0 "save resume" C-m
echo "bedrock_server world data backup compleate!"
gzip -f $WORLD_BK_NAME
find $BK_DIR -name "bedrock_world_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \;
else
echo "Backup start ..."
gzip -f $WORLD_BK_NAME
find $BK_DIR -name "bedrock_world_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \;
fi
}
# 完全バックアップ処理
f_backup() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null; then
echo "Full backup start minecraft data..."
tmux send-keys -t $SESSION_NAME:0 "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..." C-m
sleep 10
tmux send-keys -t $SESSION_NAME:0 "stop" C-m
while :
do
if
pgrep -u $USERNAME -f $SERVICE > /dev/null; then
echo "Stopping $SERVICE"
sleep 10
else
echo "Stopped bedrock_server"
echo "Full Backup start ..."
tar cfvz $FULL_BK_NAME $BEDROCK_PATH
echo "Full Backup compleate!"
find $BK_DIR -name "bedrock_full_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \;
break
fi
done
echo "Starting $SERVICE..."
tmux send-keys -t $SESSION_NAME:0 "$SERVICE" C-m
else
echo "Full Backup start ..."
tar cfvz $FULL_BK_NAME $BEDROCK_PATH
echo "Full Backup compleate!"
find $BK_DIR -name "bedrock_full_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \;
fi
}
# 起動状態確認処理
status() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null; then
echo "$SERVICE is already running!"
exit
else
echo "$SERVICE is not running!"
exit
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
w_backup)
w_backup
;;
f_backup)
f_backup
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|w_backup|f_backup|status}"
esac
作成したスクリプトに実行権限を設定します。
$ chmod 744 bedrock_script.sh
スクリプト使用方法
スクリプトの実行は動作用ユーザ(bedrockadmin)で行う必要があります。
- 起動 bedrock_script.sh start
- 停止 bedrock_script.sh stop
- ワールドデータバックアップ bedrock_script.sh w_backup
- 完全バックアップ bedrock_script.sh f_backup
- 起動状態確認 bedrock_script.sh status
起動
引数としてstartを指定することで、SESSION_NAMEで指定した名前のセッションがtmuxで作成され、その中でbedrock_serverが実行されます。
$ /opt/bedrock/bedrock-server/bedrock_script.sh start
tmuxセッションへの接続(アタッチ)
tmuxのセッションに接続(アタッチ)する場合は、統合版(bedrock)Minecraftサーバ動作用のユーザで下記コマンドを実行します。
tmux ls コマンドで起動しているtmuxのセッションを表示させます。
$ tmux ls bedrock: 1 windows (created Sat Aug 7 15:03:55 2021)
minecraftサーバ起動しているセッションを指定して接続します。
$ tmux a -t bedrock
bedrock_serverが動作している仮想端末に接続することが出来ます。
[2021-08-07 15:03:56 INFO] Game mode: 0 Survival [2021-08-07 15:03:56 INFO] Difficulty: 1 EASY [INFO] opening worlds/Bedrock level/db [INFO] IPv4 supported, port: 19132 [INFO] IPv6 supported, port: 19133 [INFO] IPv4 supported, port: 38314 [INFO] IPv6 supported, port: 44492 [INFO] Server started.
tmuxセッションから切断(デタッチ)
セッションから抜けたい(デタッチ)場合は「Ctrl」+「b」キーを押下した後に「d」キーを押下します。
セッションから抜けることができたら、コンソールには[detached]と表示されます。
[detached (from session bedrock)]
停止
引数としてstopを指定することで、bedrock_serverを停止させることができます。
$ /opt/bedrock/bedrock-server/bedrock_script.sh stop
停止後はtmuxで作成したセッションも自動的に削除されます。
ワールドデータバックアップ
引数としてw_backupを指定することで、bedrcok_serverを停止せずワールドデータのバックアップを行うことができます。
WORLD_DIRで指定したワールドデータのディレクトリが、BK_DIRで指定したディレクトリにWORLD_BK_NAMEで指定された名前で保存されます。
$ /opt/bedrock/bedrock-server/bedrock_script.sh w_backup
バックアップを行う際はbedrock_serverが起動している必要があります。
完全バックアップ
引数としてf_backupを指定することで、bedrock_serverを停止後にインストールディレクトリを丸ごとBK_DIRで指定したディレクトリにバックアップします。
バックアップデータはFULL_BK_NAMEで指定された名前で保存されます。
$ /opt/bedrock/bedrock-server/bedrock_script.sh f_backup
バックアップを行う際はbedrock_serverが起動している必要があります。
起動状態確認
引数としてstatusを指定することで、bedrock_serverが起動しているかの確認を行えます。
$ /opt/bedrock/bedrock-server/bedrock_script.sh status
スクリプト動作確認
スクリプトが完成しましたら、実際にスクリプトを実行し各機能の動作テストを行ってください。
自動起動設定
サーバ起動時に自動的に統合版(bedrock)Minecraftサーバが起動するようにします。
systemd登録用ファイル作成
systemdに登録するための設定ファイルを作成します。
ここからの作業はsudoができるユーザで行います。
$ su - sudoができるユーザ $ sudo vi /etc/systemd/system/bedrock_minecraft.service
設定内容
[Unit] Description=Bedrock Edition Minecraft Server After=network.target local-fs.target [Service] Type=forking User=bedrockadmin ExecStart=/opt/bedrock/bedrock-server/bedrock_script.sh start ExecStop=/opt/bedrock/bedrock-server/bedrock_script.sh stop [Install] WantedBy=multi-user.target
systemctコマンドで自動起動の設定を行います。
$ sudo systemctl enable bedrock_minecraft.service
動作確認
サーバを再起動して自動起動するか確認をしてください。
$ sudo reboot
サーバ再起動後にbedrock_serverが自動起動していればインストール作業は完了となります。
ゲーム内容の設定
インストール作業が完了しましたら、以下のファイルを編集してサーバの設定を行いましょう。
- server.properties ゲーム設定
- permissions.json ユーザの権限設定
- whitelist.json 接続可能ユーザの指定
各ファイルの設定方法はインストールディレクトリ内にあるbedrock_server_how_to.htmlを確認してください。



コメント
ワールドデータバックアップのコマンドの記載で、本来w_backupであるはずのところがs_backupになっています。
坂さん
コメントありがとうございます。
ご指摘頂いた部分の修正の方させていただきました。
ご指摘ありがとうございました。