初心者向け!Ubuntuでマインクラフトサーバを簡単構築 [バニラサーバ編]

初心者向け!Ubuntuでマインクラフトサーバを簡単構築 [バニラサーバ編]のサムネイル Linux
スポンサーリンク

UbuntuOSで最新バージョンのマインクラフトサーバを構築する方法を初心者でもわかりやすく解説していきます。

スポンサーリンク

環境

今回のマインクラフトサーバの環境を紹介します。

  • Ubuntu 22.04 LTS
  • マインクラフトバージョン 1.21.1
  • JAVA21

このような環境で紹介していきます。

Ubuntu環境を準備できていない場合は以前Ubuntuのインストール方法を紹介した記事があるのでそちらを参考に導入してみてください。

システム構築

マインクラフトサーバの構築をしていきます。

サーバソフトウェアをダウンロード

最初にサーバソフトウェアをダウンロードします。Minecraft公式サイトからダウンロードすることができます。

Minecraft のダウンロード: 再ダウンロード方法を確認する
Windows、macOS、Linux 用の Minecraft をダウンロードする復帰された方は、友達と遊べる Java や Bedrock のサーバーソフトの再ダウンロードが可能です。

サイトにアクセスして下の方にスクロールすると「Minecraft サーバー ソフトウェア」という項目があるのでそこの「JAVA版サーバー」の部分をクリックしてダウンロードします。

マインクラフトの公式サイト。JAVA版サーバを選択

そして真ん中にある「minecraft server.1.21.1.jar」と書かれた部分を右クリックしてリンクだけコピーします。

サーバソフトウェアのダウンロードリンクをコピー

コピーできたら作業ディレクトリを作成します。mkdirコマンドを使って「minecraft-server」という名前でディレクトリを作成します。

$ cd
$ mkdir minecraft-server

作成したら作成したディレクトリに移動します。そしてサーバソフトウェアをダウンロードします。

$ cd minecraft-server
$ wget [コピーしたURL]
$ ls
server.jar

lsコマンドの実行結果にサーバソフトウェアのファイル名が出てくると思いますが、マインクラフトのバージョンや他の要因でファイル名が異なる場合があります。

これで完了です。

JAVAのインストール

JAVAをインストールします。
まず、マインクラフトサーバに対応したJAVAのバージョンを確認していきます。これはネットで検索すると出てきます。一応2024年9月時点での対応バージョンをリストにまとめました。

Minecraft バージョン必要なJavaバージョン
Java Edition pre-Classic rd-132211 ~ 1.5.2Java 5 (1.5.0) 以上
Java Edition 1.6.1 (13w16a) ~ 1.11.2 (1.12: 17w06a)Java 6 (1.6.0) 以上
Java Edition 1.12 (17w13a) ~ 1.16.5 (1.17: 21w18a)Java 8 (1.8.0) 以上
Java Edition 1.17 (21w19a) ~ 1.17.1 (1.18: 1.18 Pre-release 1)Java 16 以上
Java Edition 1.18 (1.18 Pre-release 2) ~ 1.20.4 (1.20.5: 24w14potato)Java 17 以上
Java Edition 1.20.5 (24w14a) 以降Java 21 以上

今回ダウンロードしたバージョンは1.21.1なのでJava21以上をインストールすることになります。

ではインストールできるJAVAを検索します。以下のコマンドを実行してください。

$ sudo apt-cache search openjdk
openjdk-19-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-19-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-19-doc - OpenJDK Development Kit (JDK) documentation
openjdk-19-jdk - OpenJDK Development Kit (JDK)
openjdk-19-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-19-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-19-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-19-jre-zero - Alternative JVM for OpenJDK, using Zero
openjdk-19-source - OpenJDK Development Kit (JDK) source files
openjdk-21-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-21-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-21-doc - OpenJDK Development Kit (JDK) documentation
openjdk-21-jdk - OpenJDK Development Kit (JDK)
openjdk-21-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-21-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-21-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-21-jre-zero - Alternative JVM for OpenJDK, using Zero
openjdk-21-source - OpenJDK Development Kit (JDK) source files
openjdk-21-testsupport - Java runtime based on OpenJDK (regression test support)
openjdk-8-jdk - OpenJDK Development Kit (JDK)
openjdk-8-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-8-jre-zero - Alternative JVM for OpenJDK, using Zero

実行結果からJAVA21が見つかりました。このバージョンをインストールしていきます。

$ sudo apt update
$ sudo apt install openjdk-21-jdk

インストールができているか確認します。

$ java -version
openjdk version "21.0.4" 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu222.04, mixed mode, sharing)

しっかりインストールしたバージョンになっています。

サーバの起動

サーバを起動していきます。以下のコマンドを実行します。
※黄色マーカーの部分はダウンロードしたサーバソフトウェアのファイル名になります。

$ java -Xmx1024M -Xms1024M -jar server.jar nogui
Unpacking 1.21.1/server-1.21.1.jar (versions:1.21.1) to versions/1.21.1/server-1.21.1.jar
Unpacking com/github/oshi/oshi-core/6.4.10/oshi-core-6.4.10.jar (libraries:com.github.oshi:oshi-core:6.4.10) to libraries/com/github/oshi/oshi-core/6.4.10/oshi-core-6.4.10.jar
Unpacking com/google/code/gson/gson/2.10.1/gson-2.10.1.jar (libraries:com.google.code.gson:gson:2.10.1) to libraries/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar
Unpacking com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar (libraries:com.google.guava:failureaccess:1.0.1) to libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
Unpacking com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar (libraries:com.google.guava:guava:32.1.2-jre) to libraries/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar
Unpacking com/mojang/authlib/6.0.54/authlib-6.0.54.jar (libraries:com.mojang:authlib:6.0.54) to libraries/com/mojang/authlib/6.0.54/authlib-6.0.54.jar

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜省略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[14:25:51] [ServerMain/WARN]: Failed to load eula.txt
[14:25:51] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

赤マーカーの部分が表示してプログラムが終了すると思います。これはEULAに同意する必要があるからです。なので「eula.txt」を編集します。

$ sudo nano eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Sep 02 14:25:51 UTC 2024
eula=false

↓変更後↓

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Sep 02 14:25:51 UTC 2024
eula=true

変更したら保存してもう一度サーバ起動コマンドを実行します。

$ java -Xmx1024M -Xms1024M -jar server.jar nogui
Starting net.minecraft.server.Main
[14:34:14] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[14:34:15] [ServerMain/INFO]: No existing world data, creating new world
[14:34:16] [ServerMain/INFO]: Loaded 1290 recipes
[14:34:17] [ServerMain/INFO]: Loaded 1399 advancements
[14:34:17] [Server thread/INFO]: Starting minecraft server version 1.21.1
[14:34:17] [Server thread/INFO]: Loading properties
[14:34:17] [Server thread/INFO]: Default game type: SURVIVAL
[14:34:17] [Server thread/INFO]: Generating keypair
[14:34:17] [Server thread/INFO]: Starting Minecraft server on *:25565
[14:34:17] [Server thread/INFO]: Using epoll channel type
[14:34:17] [Server thread/INFO]: Preparing level "world"
[14:34:32] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[14:34:32] [Worker-Main-1/INFO]: Preparing spawn area: 2%
[14:34:34] [Worker-Main-1/INFO]: Preparing spawn area: 6%
[14:34:35] [Worker-Main-1/INFO]: Preparing spawn area: 6%
[14:34:36] [Worker-Main-1/INFO]: Preparing spawn area: 6%

[14:34:40] [Server thread/INFO]: Time elapsed: 7748 ms
[14:34:40] [Server thread/INFO]: Done (22.171s)! For help, type "help"

「For help, type “help”」と出れば正常に動作しています。

自動起動をする

ここまで完成したらあとはサーバ起動時に自動でマインクラフトサーバが起動するようにしていきます。まず、マインクラフトサーバの実行スクリプトを作成します。

$ sudo nano start_minecraft.sh
#!/bin/bash

# マインクラフトサーバを起動するコマンド
java -Xmx1024M -Xms1024M -jar server.jar nogui

そして実行権限を付与します。

$ sudo chmod +x start_minecraft.sh

ここまできたら実行します。

$ ./start_minecraft.sh

これでエラーなく実行できると思います。あとはこれを「systemd」で実行できるようにします。

$ sudo nano /etc/systemd/system/minecraftserver.service

開いたら以下のコードを参考に入力していきます。変更部分を黄色マーカーで示しています。
主にユーザー名の部分です。私の環境ではユーザー名は「Admin」です。

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=Admin
Group=Admin
WorkingDirectory=/home/Admin/minecraft-server
ExecStart=/bin/bash /home/Admin/minecraft-server/start_minecraft.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存できたらsystemdの設定をリロードします。

$ sudo systemctl daemon-reload

作成したサービスを有効化します。

$ sudo systemctl enable minecraftserver.service

有効化したらサービスを開始します。

$ sudo systemctl start minecraftserver.service

正常に実行できているか確認します。

$ sudo systemctl status minecraftserver.service
● minecraftserver.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraftserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-09-02 14:55:22 UTC; 1s ago
   Main PID: 15737 (bash)
      Tasks: 21 (limit: 38340)
     Memory: 129.7M
        CPU: 2.386s
     CGroup: /system.slice/minecraftserver.service
             ├─15737 /bin/bash /home/remylog/minecraft-server/start_minecraft.sh
             └─15738 java -Xmx1024M -Xms1024M -jar server.jar nogui

 9月 02 14:55:22 ubuntu-testserver systemd[1]: Started Minecraft Server.
 9月 02 14:55:22 ubuntu-testserver bash[15738]: Starting net.minecraft.server.Main

このようになれば完成です。

ネットワークの設定

マインクラフトサーバに外からの友達を参加させるには、ネットワークの設定が必要です。ここでは、サーバのネットワーク設定を説明します。

ファイアウォールの設定

サーバのファイアウォールを設定し、マインクラフトが使用するポート(デフォルトでは25565番)を開放します。以下の手順でUFW(Uncomplicated Firewall)を使用してポートを開放します。
UFWの使い方は以前にブログで紹介したので参考にしてください。

UFWのインストールと有効化

UbuntuにUFWがインストールしていきます。以下のコマンドでインストールすることができます。

$ sudo apt update
$ sudo apt install ufw

インストールができたらUFWを有効化します。

$ sudo ufw enable

ポートの開放

マインクラフトサーバが使用するポート(25565)を解放します。

$ sudo ufw allow 25565/tcp
$ sudo ufw reload

設定の確認

開放したポートが含まれているか確認します。

$ sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
25565/tcp                  ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
25565/tcp (v6)             ALLOW       Anywhere (v6)            

確認することができました。

サーバの固定IP設定

サーバのIPアドレスが変わるとポートフォワーディングが機能しなくなるため、固定IPを設定します。

現在のネットワーク設定の確認

現在のネットワーク設定を確認します。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0@if100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:a1:76:d7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.91/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:fea1:76d7/64 scope link 
       valid_lft forever preferred_lft forever

固定IPの設定

ネットワーク設定ファイルを編集し、固定IPを設定します。

$ sudo nano /etc/netplan/01-network-manager-all.yaml

そして設定ファイルを編集します。

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

この設定は環境によって異なります。間違った設定をするとネットワークに接続できなくなるので十分注意して設定してください。

最後に設定を適用します。

$ sudo netplan apply

これで完了です。

ポートフォワーディングの設定

家庭内ネットワークやクラウド環境からマインクラフトサーバにアクセスするためには、ルーターまたはクラウドのセキュリティグループでポートフォワーディングを設定する必要があります。
ここからの設定は環境によって大きく異なります。各ルーターやセキュリティグループの設定を自分で調べて変更してください。
ここではNTTの「PR-500MI」でのやり方を紹介します。

ネットワーク構成

この記事を作成している時のネットワーク構成になります。ホームゲートウェイの部分が今回紹介するNTTの「PT-500MI」になります。

ネットワーク構成図

ルーターの管理画面にアクセス

ルーターの管理画面にアクセスします。管理画面はルーターのIPアドレスを入力することでアクセスできることが多いです。
アクセスしたらユーザー名とパスワードを入力してください。

ルータのログイン画面

ポートフォワーディングの設定

ポートフォワーディングの設定をします。
詳細設定 → 静的IPマスカレード設定 の順に開きます。

設定画面に移動

右側の編集をクリックします。

編集をクリック

必要な情報を入力します。ここは各メーカーで項目名は違いますが入力する内容はあまり変わりません。
変換対象ポート番号:25565
宛先IPアドレス:[サーバのIPアドレス]
宛先ポート:25565

必要な情報を入力中

入力ができたら「設定」をクリックします。そして「有効/無効」にチェックを入れて左上の「設定」をクリックします。

有効化中

これでポートフォワーディングの設定が完了しました。

サーバにアクセス

最後にマルチサーバにアクセスしてみます。アクセスする前にマインクラフトサーバがしっかり起動しているか確認してください。以下のコマンドで確認できます。

$ sudo systemctl status minecraftserver.service

これで起動していたらクライアントソフト「マインクラフト」を起動します。

「サーバーを追加」をクリックしてサーバーアドレスを入力します。

サーバを追加

そうするとサーバが追加されます。これでサーバにアクセスすることができます。

追加したサーバが表示している

以上で全ての設定が終了しました。

まとめ

以上がサーバーの構築方法になりました。今回はバニラサーバの構築方法を紹介しましたが、今後Modサーバやプラグインサーバなどの構築方法も紹介していこうと思います。

コメント

タイトルとURLをコピーしました