Minecraft Bedrock Edition のサーバーを立てる
January 07, 2023 -概要
Minecraft Bedrock Edition のサーバーを立てます。
- クライアントは サーバーに GCP のリバースプロキシを介して接続するため、サーバー側のネットワーク(LAN)内でポート開放する必要はありません。
GCP
GCP のファイアウォール、リバースプロキシ、DNS を設定します。
ファイアウォールの設定
VPC ファイアウォールのルールを作成します。
-
サイドメニューから
VPC ネットワーク
のファイアウォール
選択します。 -
ファイアウォール ルールを作成
を選択します。 -
項目に次の値を入力し
作成
ボタンを選択します。項目名 入力値 備考 名前 minecraft 任意の値 説明 minecraft のルール 任意の値 ターゲットタグ minecraft 任意の値 送信元 IPV4 範囲 0.0.0.0/0 プロトコルとポート > 指定したプロトコルとポート > UDP 19132 UDP チェックボックスにチェックを入れる
リバースプロキシの設定
Compute Engine で rathole を起動してリバースプロキシを立ち上げます。
Compute Engine のインスタンスは Google Cloud の無料プログラム を参考に設定します。
-
サイドメニューから
Compute Engine
のVM インスタンス
選択します。 -
インスタンスを作成
を選択します。 -
項目に次の値を入力し
作成
ボタンを選択します。項目名 入力値 備考 名前 instance-1 任意の値 リージョン オレゴン: us-west1 マシン構成 > シリーズ E2 マシン構成 > マシンタイプ e2-micro ブートディスク > OS Ubuntu ブートディスク > バージョン Ubuntu 18.04 LTS ブートディスク > ブートディスクの種類 標準永続ディスク ブートディスク > サイズ (GB) 30 ファイアウォール > HTTP トラフィックを許可する 許可 チェックボックスにチェックを入れる ファイアウォール > HTTPS トラフィックを許可する 許可 チェックボックスにチェックを入れる 詳細オプション > ネットワーキング > ネットワーク タグ minecraft ファイアウォールのターゲットタグを入力する
-
作成したインスタンスの
SSH
を選択し SSH 接続します。 -
インスタンスのポートを開放します。
2333
は rathole 、19132
は minecraft のポート番号です。sudo ufw allow 2333 sudo ufw allow 19132 sudo ufw reload
-
rathole の設定ファイル
server.toml
を作成します。詳細は readme を参照してください。# server.toml [server] bind_addr = "0.0.0.0:2333" [server.services.mc-be] token = "mc-be-token" type = "udp" bind_addr = "0.0.0.0:19132"
-
rathole を起動します。
sudo docker run -it --rm -p 2333:2333 -p 19132:19132/udp -v "/home/st-little/server.toml:/app/server.toml" rapiz1/rathole:latest --server /app/server.toml
予算の設定
-
サイドメニューから
お支払い
を選択します。 -
お支払いのサイドメニューから
請求先アカウント
を選択します。 -
お支払いのサイドメニューから
予算とアラート
を選択します。 -
予算を作成
を選択します。 -
項目に次の値を入力し
終了
ボタンを選択します。項目名 入力値 備考 範囲 > 名前 minecraft 任意の値 金額 > 目標金額 1000 予算の上限金額
DNS の設定
-
サイドメニューから
ネットワーキング
のCloud DNS
を選択します。 -
ゾーンを作成
を選択します。 -
項目に次の値を入力し
作成
ボタンを選択します。項目名 入力値 備考 ゾーンのタイプ 公開 ゾーン名 mc-zone 任意の値 DNS 名 DNS 名の接尾辞 説明 Minecraft DNS 任意の値 -
作成したゾーンを選択し
ゾーンの詳細
を表示します。 -
レコードセットの追加
を選択します。 -
項目に次の値を入力し
作成
ボタンを選択します。項目名 入力値 備考 DNS 名 DNS ゾーンのサブドメイン リソース レコードのタイプ A IPv4 アドレス VM インスタンスの外部 IP リバースプロキシの設定
で作成した Compute Engine のインスタンス
Minecraft BedrockEdition のサーバー
Minecraft BedrockEdition のサーバーを立ち上げます。
準備
Minecraft に必要なフォルダ、ファイルを作成します。
-
フォルダを作成します。
フォルダ名 備考 volume ワールドデータ用のフォルダ -
rathole の設定ファイル
client.toml
を作成します。詳細は readme を参照してください。# client.toml [client] remote_addr = "myserver:2333" [client.services.mc-be] token = "mc-be-token" type = "udp" local_addr = "mc:19132"
コンテナ
サーバーのコンテナを作成、起動します。
-
コンテナの定義を作成します。
WHITE_LIST_USERS
にログインできるプレイヤーを記述します。version: '3.7' services: # https://github.com/itzg/docker-minecraft-bedrock-server mc: image: itzg/minecraft-bedrock-server container_name: minecraft-bedrock-server environment: EULA: "TRUE" VERSION: LATEST SERVER_NAME: "mc-be" GAMEMODE: "survival" DIFFICULTY: "normal" ALLOW_CHEATS: "false" MAX_PLAYERS: 5 WHITE_LIST: "true" WHITE_LIST_USERS: "" VIEW_DISTANCE: 8 DEFAULT_PLAYER_PERMISSION_LEVEL: "member" OPS: "" stdin_open: true tty: true volumes: - /mc-be/volume:/data networks: - internal # https://github.com/rapiz1/rathole port_forwarding: depends_on: - mc image: rapiz1/rathole restart: unless-stopped command: ["--client", "/app/client.toml"] tty: true volumes: - /mc-be/client.toml:/app/client.toml networks: - internal networks: internal:
-
コンテナを起動します。
docker-compose up