Raspberry Pi で Minecraft マルチプレイサーバーを構築する

はじめに

ラズベリーパイにマインクラフトの自宅サーバーを立てて、家族や友人達と一緒にマルチプレイが楽しめるまでの構築手順をここに残しています。小学生、中学生、高校生、大学生の自由研究にいいかもしれません。自分だけのマルチサーバーで楽しみましょう。

注意

自宅サーバーを立てるには、パソコンとネットワークの基本知識が要求されます。

パソコンが苦手な方は、Minecraft Realms Plus をご検討ください。

ネットワークが苦手な方は、有料レンタルサーバーの ConoHa VPS をご検討ください。また、Xserver のような共用サーバーは、管理者(root)権限を運営会社が保持しているので Minecraft のマルチプレイサーバーを立てることができません、ご注意ください。

なるべくお金をかけたくない方は、無料レンタルサーバーの AternosServer.pro をご検討ください。

また、本記事では Raspberry Pi に Debian ベースの Raspberry Pi OS(Raspbian)をインストールして Minecraft Java Edition をインストールします。Windows 10 Edition とのマルチプレイはできないのでご注意ください。

最後に、自宅サーバーをインターネットに公開した際のセキュリティリスクなどについては自己責任でよろしくお願い致します!

Raspberry Pi とは

Raspberry Pi Foundation(ラズベリーパイ財団)によって開発された名刺サイズのシングルボードコンピューターです。

入手

Raspberry Pi は、Amazon.com や楽天市場などの EC サイト、東京の秋葉原電気街や大阪の日本橋電気街などで購入できます。

今回、私は EC サイトで下記の Raspberry Pi セットを購入しました。

  • Type : Raspberry Pi 4 Model B
    • CPU : Broadcom BCM2711B0(ARM Cortex A72 1.5GHz x 4)
    • GPU : VideoCore VI 500MHz
    • RAM : 8GB
    • USB : 3.0 x 2, 2.0 x 2
    • HDMI : Type-D x 2
    • Bluetooth : 5.0
    • Wi-Fi : IEEE 802.11ac
  • Options :
    • USB-C Power Adapter with 5.1V/3A switch
    • SanDisk microSDXC Ultra 128GB class 10
    • Heat Sink x 3
    • Cooling Fan
    • Micro HDMI to HDMI Cable
    • Raspberry Pi Case

構築

Raspberry Pi に OS をインストールする

手始めに、下記の手順で Raspberry Pi に Raspberry Pi OS をインストールします。

購入した microSD カードに Raspberry Pi OS がプリインストールされている場合は、Raspberry Pi に microSD カードを挿入して電源を入れてください。

  1. NOOBS Lite を NOOBS からダウンロードする。
  2. NOOBS Setup に従って Raspberry Pi OS をインストールする。

Raspberry Pi OS を CUI に変更する

Raspberry Pi OS が CUI で起動するように設定を変更します。

LXTerminal を起動して下記のコマンドを実行します。

$ sudo raspi-config

raspi-config 起動後、下記の手順で設定を変更します。

  • 3 Boot Options」を選択して Enter key を押下する。
  • B1 Desktop / CLI」を選択して Enter key を押下する。
  • B2 Console Autologin Text console, automatically logged in as ‘pi’ user」を選択して Enter key を押下する。
  • <Finish>」を選択して Enter key を押下する。
  • 「Would you like to reboot now?」と聞かれるので、「<Yes>」を選択して Enter key を押下する。

OS の再起動後、CUI になっていることを確認します。

CUI から GUI を起動する場合は、下記のコマンドを実行します。

$ sudo startx

Raspberry Pi に SSH 接続する

Raspberry Pi OS は、2016 年 11 月 25 日の Raspbian PIXEL セキュリティアップデートにより、デフォルトで SSH の設定が無効になっています。

A security update for Raspbian PIXEL に従って SSH の設定を有効にします。

設定後、下記のコマンドでネットワーク設定情報を出力して、現在のプライベート IP アドレスを確認します。

$ ifconfig

有線 LAN の場合は、interface が eth0inet に出力されているアドレスを確認します。

私の場合は Wi-Fi ネットワークに接続しているので、interface が wlan0inet に出力されている IPv4 アドレスを確認しました。

クライアントのターミナルから、下記のコマンドでサーバーに SSH 接続します。ユーザー名の初期値は pi です。192.168.xx.xx には、あなたのサーバーのプライベート IP アドレスを入力してください。

$ ssh pi@192.168.xx.xx

パスワードを入力します、初期値は raspberry です。

pi@192.168.10.10's password: 

SSH 接続に成功すると下記のように出力されます。

pi@raspberrypi:~ $ 

Permission denied, please try again. と出力される場合、OS のインストール後にパスワード変更をしていないか記憶をサルベージしてみてください。

また、Wi-Fi ルーターのネットワーク分離機能によって端末間接続が拒否されている場合などがあるので、Wi-Fi ルーターの設定を慎重に確認しましょう。

プライベート IP アドレスを固定化する

下記のコマンドで dhcpcd.conf ファイルを nano または vi で編集します。

$ sudo nano /etc/dhcpcd.conf

下記のネットワーク設定を追加して保存します。

  • interface : インターフェース名
  • static ip_address : DHCP サーバー割当範囲内のプライベート IP アドレス
  • static routers : Wi-Fi ルーターのプライベート IP アドレス
  • domain_name_servers : DNS サーバーのプライベート IP アドレス
interface wlan0
static ip_address=192.168.xx.xx/24
static routers=192.168.xx.xx
static domain_name_servers=192.168.xx.xx

下記のコマンドで OS を再起動してネットワーク設定を反映します。

$ sudo reboot

OS 再起動後、ip_address に記述しているプライベート IP アドレスから SSH 接続ができます。

OpenJDK をインストールする

下記のコマンドで Java が既にインストールされているか確認します。

$ java -version

Java がインストールされていない場合、下記のコマンドでパッケージリストを更新して、OpenJDK(Open Java Development Kit)をインストールします。

$ sudo apt update
$ sudo apt install default-jdk

下記のコマンドで Java が正常にインストールされているか確認します。

$ java -version

Minecraft Server を起動する

下記のコマンドで Minecraft Server のファイルを保存するフォルダを作成します。作成場所とフォルダ名は任意に変更して大丈夫です。

$ mkdir /home/pi/minecraft

下記のコマンドでカレントディレクトリを変更します。

$ cd /home/pi/minecraft

Minecraft 公式サイトの download から、Minecraft Server の JAR をダウンロードするリンクをコピーして、下記のコマンドに URL を貼り付けて実行します。また、過去バージョンは MCVersions.net から入手できます。

$ sudo wget https://xxx

下記のコマンドでファイルがダウンロードできているか確認できます。

$ ls

下記のコマンドを実行して Minecraft Server を起動します。

$ sudo java -jar server.jar nogui

すると、「サーバーを実行するには、EULA に同意する必要があります。詳細については、eula.txt にアクセスしてください。」と出力されます。

[15:18:30] [main/ERROR]: Failed to load properties from file: server.properties
[15:18:31] [main/WARN]: Failed to load eula.txt
[15:18:31] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

EULA に同意できるなら、下記のコマンドで eula.txt ファイルの eula=falseeula=true にテキストエディタで編集します。

sudo nano eula.txt

再度、下記のコマンドを実行して Minecraft Server を起動します。

$ sudo java -jar server.jar nogui

下記のようなログが出力がされていれば、Minecraft Server の起動に成功しています。

[18:40:11] [Server thread/INFO]: Done (64.443s)! For help, type "help"

サーバーの動作確認をします。クライアントの Minecraft を起動して、マルチプレイを選択します。

サーバーを追加します。

サーバー名を適当に決めて、サーバーアドレスに Raspberry Pi の プライベート IP アドレス を入力して完了します。

サーバーが追加されて接続できました、成功です。

Minecraft Server を停止させる場合は、下記のコマンドを実行します。

/stop

Raspberry Pi の電源を切りたい場合は、下記のシャットダウンコマンドを実行した後に電源スイッチを OFF にします。

$ sudo shutdown -h now

UFW をインストールする

UFW(Uncomplicated Firewall)とは、netfilter ファイアウォールの管理プログラムのことです。

下記のコマンドで UFW をインストールします。

$ sudo apt install ufw

下記のコマンドで UFW の状態が inactive になっていることを確認します。

$ sudo ufw status

下記のコマンドで外部通信を全て遮断します。

$ sudo ufw default deny

下記のコマンドで SSH 接続ができるようにポート番号 22 の通信を許可します。

$ sudo ufw allow 22

下記のコマンドでサーバーと通信ができるようにポート番号 25565 の通信を許可します。

$ sudo ufw allow 25565

下記のコマンドで UFW を active にします。

$ sudo ufw enable

下記のコマンドで OS を再起動して、SSH 接続ができることを確認します。

$ sudo reboot

Wi-Fi ルーターのポートを開放する

現在利用している Wi-Fi ルーターのメーカーと型を確認して、検索エンジンでマニュアルを検索します。

マニュアルからポートマッピング機能の設定手順を読み、Wi-Fi ルーターの設定画面からポート番号 25565 を開放します。下記の画像は私の設定例になります。

Wi-Fi ルーターを再起動して、Portチェックテスト からアクセスできるか確認します。

下記の画像にある赤枠をクリックして グローバル IP アドレス を入力、チェックポート番号 を入力、ご注意・制約事項 にチェックを入れて Portチェック実行 をクリックします。

下記の画像より、ポート番号 25565 が開放されていることを確認できました。

通信に失敗する場合は、以下の原因が考えられます。

  • サーバーの Minecraft Server が起動していない。
  • サーバーの UFW でポート番号 25565 が許可されていない。
  • Wi-Fi ルーターのポートマッピング機能設定に間違いがある。

サーバーの動作確認をします。クライアントのネットワークを別のネットワークに切り替えます。例えば、スマートフォンの Wi-Fi テザリングに切り替えるなど。

クライアントの Minecraft を起動して、マルチプレイを選択します。

サーバーを追加します。

サーバー名を適当に決めて、サーバーアドレスにサーバーの グローバル IP アドレス を入力して完了します。

サーバーが追加されて接続できました、成功です。

接続に失敗する場合は、以下の原因が考えられます。

  • サーバーと同じネットワークで接続しようとしている。
  • クライアントのファイアウォール、またはセキュリティソフトでポート番号 25565 の通信を許可していない。
  • クライアントとサーバーの Minecraft バージョンが違う。
  • Windows 10 Edition からサーバーに接続しようとしている。

マルチプレイをする

サーバーに SSH 接続して Minecraft Server を起動します。

一緒に遊びたい相手には以下のことを伝えます。

  • Minecraft 公式サイトから Minecraft Java Edition を購入してダウンロードしてね。
  • ファイアウォール、またはセキュリティソフトでポート番号 25565 の通信を許可してね。
  • Minecraft のマルチプレイからこのアドレス(現在のグローバル IP アドレス)でサーバーを追加してね。

相手がサーバーに接続できたら、自分も プライベート IP アドレス からサーバーに接続します。

友人とリスポーン地点で合流できました、成功です。

接続に失敗する場合は、以下の原因が考えられます。

  • サーバーアドレスの入力に誤りがある。
  • Windows 10 Edition を起動している。
  • クライアントとサーバーの Minecraft バージョンが違う。
  • ファイアウォール、またはセキュリティソフトでポート番号 25565 の通信が許可されていない。

その他、サーバー構築に関する情報は Minecraft Wiki Tutorials/Setting up a server に情報があります。

以上です。

おわりに

ホロライブ所属 VTuber の桐生ココが、ゲームサーバーをシステム保守しているのを知って興味を持ったのが自宅サーバーの構築をするキッカケだったりします。

結果的に、四苦八苦しながらサーバーを一から構築することはとても良い学びとなりました。

参考資料