Minecraft(統合版)を自宅サーバーで遊んでみた!Ubuntuによる構築に挑戦

初めまして、新人の薄です。初めてブログの更新で不慣れな箇所もあるとは思いますが、よろしくお願いします!

みんな大好き、Minecraft

Minecraft

一度プレイしたら、 時間が溶けることで有名な「Minecraft」。「テトリス」の販売数を超え世界一売れたゲームになったとか。動画サイトのゲーム実況では、必ずといっていいほどにMinecraftの文字をみます。

Minecraftは一人でも楽しいですが、友人や家族と一緒にやるとさらに楽しくなります。しかし、マルチプレイを行うにはいくつかの条件があります。
この記事ではマルチプレイをお金をかけずに楽しむことを目的にサーバーの構築について紹介していきます。

マルチプレイ

マルチプレイを複数人の仲間のみが入れるワールドで行うのは、少々面倒です。マルチプレイを行うには以下の方法があります。

  • 専用機によるMincraftサーバーの構築・公開
     専用機を自前で運用することは難しいですから、公式・非公式の有料レンタルサーバーの利用が一般的です。
  • ゲームをしながら同じパソコンでMinecraftサーバーを構築・公開
     パソコンの性能とインターネット回線に余裕があり、遊ぶ際にゲームを起動する必要があります。セーブデータを持っている人がプレイしていない時間は、続きを遊べません。Minecraftサーバーの構築はゲームが自動でやってくれます。

Minecraftサーバーがほしいなぁ…

私の場合は友人から「セーブデータを持っている人が遊んでいない時間でも、みんなでMinecraftを遊べるようにしてほしい」との要望をもらいました。この要望からMinecraftサーバーに求める条件は以下のようになりました。

  • いつでもゲームに参加できること
  • マルチプレイ可能(2~5人)
  • 仲間だけでゲーム
  • 各ゲーム機、スマホ、タブレット、PCから利用可能なMinecraft Bedrock Edition(統合版)
  • お金はない

これらの条件を元に検討してみます。

  • 有料レンタルサーバーだと維持費が高い
  • 誰かがプレイ時にサーバーを立てる方法では、いつでもゲームに参加できない
  • 無料サーバーは他人がいる

以上の理由から、専用機を用意しMincraftサーバーを自分で構築することにしました。

サーバー?

サーバーといってもWindows10とそこそこの性能のデスクトップPCで十分です。というわけで、家に余ってるPCがないか探したところ…転がってました!

項目性能
CPUIntel core 2 duo
メインメモリ3GB
OSWindows7

失礼いたしました。”そこそこの性能のデスクトップPC”が家にありませんでした。これは”10年前のデスクトップPC”です。お詫びして訂正いたします。

みなさんご存じだとは思いますが、Windows7はサポートを打ち切られておりネットに接続するのは危険です。また、Windows10無料アップグレード期間にこのデスクトップPCは放置されていました。つまり、Windows10にお金を出してアップグレードを行う必要があります。
しかし、Windows10を買うお金はありません…。そもそも、まともに動かない可能性の方が高いです。メモリ3GBですし。

よってこのデスクトップPCを使いつつ、OSを入れ替えることにしました。

サーバーOSとサーバーソフトウェア

サーバーの構築に必要なOSとソフトウェアです。すべて無料で配布されているため、お金がかかることはありません。

サーバーOS

Ubuntu

Ubuntu

DebianベースのLinuxディストリビューションで誰でも無料で使えるOSです。

Ubuntu Server

今回使用するのはUbuntu Serverです。デスクトップPCの性能を見る限り、CUI環境にした方が良いと判断しました。

Ubuntu Server

Ubuntu Serverの特徴

ネット上に情報はいくらでも落ちてるとは思いますが、手っ取り早く書籍を参考にしました。
リクエストして図書館に入れてもらったのでお金はかかりませんでした。裏テーマは「電気代以外のお金をかけない」です。
以後、参考書を前提にしているところがあります。ご注意ください。

参考文献

Ubuntu サーバー徹底構築
著者 麻生 二郎
出版 株式会社ソーテック社

サポートページ
正誤表やコマンドが記載

サーバーソフトウェア

Minecraft Bedrock Edition(統合版)

MinecraftにはJava版と統合版があり、それぞれ特徴があります。(公式ページ比較表
今回は、統合版のサーバーを構築します。
統合版では様々なデバイスを使って、Minecraftをすることができます。

  • Windows 10
  • iOS
  • Android
  • Xbox One
  • Nintendo Switch(接続不可)
  • PlayStation 4
  • Amazon Fire
  • Gear VR
  • Oculus

Minecraftサーバーについて

マインクラフト公式

Windows用とUbuntu Server用のMinecraftサーバーソフトウェアが配布されているようです。

作業内容

掃除

まず、パソコンの掃除から。発火とか怖いですので。電源を抜いて作業してください。
パソコンによって作業が全く変わりますので、説明書等を参考にしてください。

1. わたごみを取り除く
2. CPUのグリスを交換する
3. マザーボード上のボタン電池を交換する

サーバーのOSインストール・各種設定

「Ubuntuサーバー徹底入門」を参考に進めました。
また、インターネット上にUbuntu Serverの情報はたくさん出ている印象でした。わからないところは検索をかければすぐに出てくると思います。おおまかな作業内容です。

インストールメディアの作成

Ubuntu Server
上記サイトから、iosファイルをダウンロード。ディスク・フラッシュメモリのどちらに入れるかで必要なソフトウェアが異なります。

―ディスクに書き込む場合
ディスクに入れる場合は、win10標準の機能で書き込み機能があります。
「isoファイル」(右クリック)
→「ディスクイメージの書き込み」
→「Windowsディスクイメージの書き込みツール」
→「書き込み後のディスクの確認」(チェックを入れる)
→「書き込み」

―フラッシュメモリに書き込む場合
フラッシュメモリに書き込むには専用のアプリが必要です。 「Win32 Disk Imager」等のアプリをインストール後、書き込みを行ってください。

インストールメディアの接続

PCにインストールメディアを接続してください。パソコンによってはインストールメディアに指定できないものがあるのでご注意。

BIOSの起動

起動時に「F2」の連打が一般的ですが、メーカーによって違います。起動時に表示が出ることもあるので、よく見てみましょう。 以後は、私のPCについての解説になってしまいます。適宜置き換えてください。

メディア起動優先順位の変更

インストールメディアの起動優先順位を一番に設定してください。その後、設定を保存しBIOSを終了してください。

Ubuntu Serverの起動

Ubuntu Serverが起動したら、少しお待ちください。バージョンによっては、インストールするOSを選択します。画面の指示に従ってインストールしてください。

言語の選択

日本語はないので、英語にしておきましょう。

キーボードレイアウトの選択

基本的には「Japanese」ですが、お使いのキーボードによっては変更の必要があります。

インターネットの設定(IPv4の固定)

あくまで例です。ルーターの設定を確認し、固定するIPアドレスを入力してください。入力したIPアドレスはメモをしておいてください。
インターネットの設定
例)
enp0s3 eth 192.163.1.120/24 (form dhcp) ▶(選択)
→ Edit IPv4▶(選択)
→ IPv4 Method: Manual(選択)
→ (設定の例)
Subnet:192.168.1.0/24
Address:192.168.1.2
Gateway:192.168.1.1
Name Severs:192.168.1.1

我が家のルータ設定

プロキシの設定

プロキシを設定しているご自宅は稀だと思います。飛ばしましょう。

OSダウンロードサイトの設定

日本のサイトを指定するとダウンロードが早くなりますが、デフォルトでも全く問題ありません。

ストレージ設定(LVM)

「Use An Entire Disk And Set Up LVM」(内部HDDを選択)
→(自動設定されるのでそのままDone)
→「Continue」

ユーザー情報とホスト名の設定

Your name:(氏名 適当でも良い)
Your server’s name:(サーバーの名前)
Pick a username:(ユーザー名)
Choose a password:(パスワード)
Confirm your password:(パスワード2回目)
しっかりとメモをしておきましょう!

SSHの設定

「Install OpenSHH server」と表示された場合は、チェックを入れて「Done」

インストール

インストールされるまで、待ちましょう。このリストはサーバーソフトウェアの一覧です。面白そうなのもちらほらありますが、今回は入れませんので「Done」を選択しましょう。
インストールが終わったら再起動します。
rebootを選択後、インストールメディアを取り出してEnterを押すように指示がでます。
再起動すると、login:と表示されるので、先程設定したユーザー名とパスワードを入力します。Login:が表示されない場合はEnterを何回か押すとよいです。

システム更新

システムの更新をします。セキュリティの更新も含まれますのでこまめに更新しましょう。

sudo apt update
sudo apt -y upgrade
sudo reboot

タイムゾーン設定

タイムゾーンを日本に設定します。サーバー内部の時計が正確になります。

sudo timedatectl set-timezone Asia/Tokyo
timedatectl

日本語環境の導入

日本語で表示できる言語パックを導入します。

sudo apt -y install language-pack-ja
sudo nano /etc/default/locale
LANG=en_US.UTF-1

と設定されていますので、書き換えます。

LANG=ja_JP.UTF-8

エディタにも慣れましょう。
CTRL+Xで記入をやめる。そのまま、Yで保存。続いて、ファイル名の変更です。(今回はファイル名を変更しませんので、そのままEnterを押す)

システムの再起動をかけて設定を有効にします。

sudo reboot

リモートアクセス環境の構築

自分の普段使っているPCにTera Termをインストールしましょう。
起動すると、ホストを入れる欄があります。

→Tera TermのホストにUbuntu Serverの固定IPを入力、OK
→既存の鍵を、新しい鍵で上書きするにチェックを入れ、続行
→ホスト名とパスフレーズを入力して続行

このとき、サーバーとリモートアクセス環境が同一のネットワークであることを確認してください。
サーバーに接続できましたか?私はここでつながったことに感動してました。

ドメインを取得しよう!

「ドメイン」かっこいい響きですね。しかし、今回はお金をかけません。ですので正確には「DDNS」、ダイナミックドメインになります。
詳しく説明するとDDNSサービスにアカウントを作成し名前を登録します。
その後、(例えば)自宅のグローバルIPアドレスを5分おきDDNSサービスに通知します。
グローバルIPアドレスは変動してしまうものですが、登録した名前はそのままです。
この名前を呼び出し、グローバルIPアドレスに変換してくれるサービスがDDNSということです。

DDNSの登録

MyDNS.JP
サイトにアクセスして、アカウントを作成しましょう。
右上のJOIN USから登録を行えます。画面にしたがって登録を行ってください。登録が終了すると、IDとパスワードが登録したメールで送られて来ます。これを使ってログインしてください。

ログインしたら、左のメニューからDOMAIN INFOを選択
ページ下部にて、それぞれの設定を行います。

Domain
好きな文字とサービスで指定されている文字列を組み合わせて作成する。
MX
空欄でもOK。自動的に入力される。
Hostname,Type,Content,Delegateid or your id.
写真のように2行に*(半角アスタリスク)とA,AAAAをそれぞれ設定。

CHECKを押し、確認画面で確認してからOKをクリックする。

グローバルIPアドレス自動通知処理の作成

Ubuntu Serverに戻ります。
(MyDNS ID)と(MyDNS Password)は、自分のものに置き換えてください。

/usr/bin/wget -o – ‘https://(MyDNS ID):(MyDNS Password)@www.mynds.jp/login.html’

Ubuntu Server上でエラーなく実行できたかを確認してください。


次にMyDNSのLOGINFOを確認して、IPv4が更新されているかを確認してください。LOGの中に下記のように表示されていたら成功。
(日付)IPv4 UPDATE:(MyDNSのID)(IPアドレス)

LOG INFOの位置

→MyDNSのIP ADDR DIRECTを押す。
ここで、確認が容易にできるようにIPアドレスをリセットしましょう。
説明の通りに設定してください。
「動的IPの場合、IPv4アドレスは「0.0.0.0」、IPv6アドレスは「0:0:0:0:0:0:0:0」でリセットされます。」
→CHECKを押す
→OKを押す

Ubuntu Server画面に戻ります。
以下のコマンドを入力してください。

crontab -e

このような画面がでます。

no crontab for linux – using an empty one
*
Select an editor. Tocange later, run ‘select-editor’.

エディタを選択する。1の「nano」を選択。(そのまま、Enterです)

22行ほどの文章が表示されるので、次の2行を追加してください。
(MyDNS ID)と(MyDNS Password)は、自分のものに置き換えてください。

   */5 * * * * /usr/bin/wget -o - ‘https://(MyDNS ID):(MyDNS Password)@ipv4.mydns.jp/login.html’
   */5 * * * * /usr/bin/wget -o - ‘https://(MyDNS ID):(MyDNS Password)@ipv6.mydns.jp/login.html’

最後にエディタの内容を保存します。

CTRL + X
→y
→Enter

余談

通知するたびに、ホームディレクトリにログが蓄積されていきます。5分ごとに更新されるので、膨大な数のファイルになります。私はログが貯まることを嫌ったので、crontabを利用してファイルの削除を行っています。

*/5 * * * * rm -r ./login.html*

ファイヤーウォールに穴を開けよう!

ルータの設定を変更してゲーム参加者が、我が家のファイヤーウォールにはじかれないように入り口を用意しましょう。
セキュリティは入り口の分だけ弱まりますが、通れないドアに価値はありませんので、仕方ありません。慎重に作業をしましょう。
こちらも参考書と説明書を参考にしながら進めました。
ルーターによって名称や設定が全く違います。説明書をみると一番早いと思います。

  1. ルーターの設定にアクセス
  2. サーバーに割り当てるIPアドレスをDHCPの範囲外に設定
    (DHCPの予約、DHCP範囲など設定の名前多数)
  3. ゲームで使用するポートをサーバーに転送するように設定
    TCP、ポート番号、サーバーのIPアドレスを入力します。ポートは自由に決めて大丈夫ですが、初期値は避けた方が良いです。後で、ポート番号をMinecraftサーバープロパティに入力します。メモしておいてください。
    (ポートフォワーディング、静的IPマスカレードなど設定の名前多数)

サーバーソフトウェアのインストール

OS・ネットワークの準備は整いました。いよいよMinecraftサーバーソフトウェアをインストールします。ファイルはサーバーで直接操作するのではなく、「WinSCP」といったソフトを使用すると楽です。このとき、ファイルの権限(パーミッション)を変更する必要がありますが、これも「WinSCP」で簡単にできます。
Java版に関する情報は沢山あったのですが、bedrock版(統合版)に関する情報はごく少数でした。といっても、難しいことはやっていません。

  1. 公式サイトからコンテナをダウンロード
  2. サーバーの好きなフォルダに解凍・配置
  3. 実行権限をファルダ内の「bedrock_server」に付与
  4. 当該フォルダに移動
  5. コマンドでゲームサーバーが起動します
LD_LIBRARY_PATH=. ./bedrock_server

ゲームの設定を変更しよう

ゲームの設定(難易度etc…)を変更して遊びやすい環境を整えましょう。

  1. コンテナ内の「bedrock_server_how_to.html」に詳しい設定項目があります
  2. 「server.properties」や「whitelist.json」、「permissions.json」を書き換えることでゲームに関する設定を変更可能です

ルーターで設定したポート番号の設定を行う必要があります。
設定には、難易度の他に読み込みチャンクやポート番号などがあります。
どれも重要な設定です。すべて確認してみてください。

さぁ、ゲームを始めよう

ゲームからサーバーに接続する方法を紹介します

  1. マインクラフト(統合版)を開きます
  2. 設定からXboxアカウントと連携
  3. スタートメニューから「遊ぶ」を選択
  4. 「サーバー」タブのサーバーを追加を選択
  5. サーバー名、サーバーアドレス、ポートを入力
  6. 「保存」を選択
  7. 「さらに多くのサーバー」にサーバーが表示されます
項目詳細
サーバー名サーバに表示される名前
自分がわかりやすいものを入れる
サーバーアドレスDDNSサービスに登録した文字列を入力
ポートサーバープロパティやルータで転送設定したものを指定

接続することができたでしょうか?

Minecraftに更新が入ったら?

Minecraft に更新が入った場合、サーバーソフトウェアも更新する必要があります。

1. 公式サイトからコンテナをダウンロード
2. サーバー内の「bedrock_server」ファイルのみを最新版コンテナのものと置き換える
3. 実行権限を付与

結果

サーバー機の性能が足りないのではないかと心配でしたが、杞憂でした。友人と5人でログインしましたが安定していました。そこまで重い作業はしていないのですが、十分遊べると思います。

サーバーを構築することは、時間があれば特に難しい作業ではありませんでした。問題はそこから先の維持・運用です。エラーやゲームの更新でサーバーが止まることがありました。自動で再起動やシステム更新チェックなどをやろうとしたら、もっと大変になるような気がします。また、パソコンによってはBIOS設定でキーボードが接続されていないと再起動時にエラーがでるものもあり注意が必要です。私はdiscordで連絡を取り合いながら、更新や再起動を手作業でやっていました。

今回のブログではMinecrafサーバーの構築をしていきましたが、構築してから期間が空いてしまいました。よって、抜けている部分や書ききれていない部分がたくさんあります。随時、検索や参考書等で補完していただけるとよろしいかと思います。

感想

ここまでブログを書いてきて「サーバー」がゲシュタルト崩壊してしまいました。しばらく「サーバー」の文字を見ないようにしようと思います。
とはいうものの、ゲームサーバーに興味がでたのも事実です。プレイヤーがサーバーを建てられるゲームは、そこそこあります。
以下はしっかり調べたわけではないのですが、多分立てられます。いつか挑戦できたらいいなと思いました。

  • Factorio
  • Terraria
  • ARK
  • 7days to die

本題とはずれますが「Minecraft」、「Factorio」、「Terraria」はそれぞれSandboxゲームでよくできています。時間があればぜひ。

追記
ゲームサーバー機をこれから探して買おうと思っている方には、Minecrafサーバーが構築できる低コストハードウェアについての記事があります。
よろしければどうぞ。

Minecraftサーバーを低コストハードウェアで検証 (デスクトップPC/Pine64/Android)

1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    日本語が含まれない投稿は無視されますのでご注意ください。