UbuntuOSで最新バージョンのマインクラフトサーバを構築する方法を初心者でもわかりやすく解説していきます。
環境
今回のマインクラフトサーバの環境を紹介します。
- Ubuntu 22.04 LTS
- マインクラフトバージョン 1.21.1
- JAVA21
このような環境で紹介していきます。
Ubuntu環境を準備できていない場合は以前Ubuntuのインストール方法を紹介した記事があるのでそちらを参考に導入してみてください。
システム構築
マインクラフトサーバの構築をしていきます。
サーバソフトウェアをダウンロード
最初にサーバソフトウェアをダウンロードします。Minecraft公式サイトからダウンロードすることができます。
サイトにアクセスして下の方にスクロールすると「Minecraft サーバー ソフトウェア」という項目があるのでそこの「JAVA版サーバー」の部分をクリックしてダウンロードします。
そして真ん中にある「minecraft server.1.21.1.jar」と書かれた部分を右クリックしてリンクだけコピーします。
コピーできたら作業ディレクトリを作成します。mkdirコマンドを使って「minecraft-server」という名前でディレクトリを作成します。
$ cd
$ mkdir minecraft-server
作成したら作成したディレクトリに移動します。そしてサーバソフトウェアをダウンロードします。
$ cd minecraft-server
$ wget [コピーしたURL]
$ ls
server.jar
これで完了です。
JAVAのインストール
JAVAをインストールします。
まず、マインクラフトサーバに対応したJAVAのバージョンを確認していきます。これはネットで検索すると出てきます。一応2024年9月時点での対応バージョンをリストにまとめました。
Minecraft バージョン | 必要なJavaバージョン |
Java Edition pre-Classic rd-132211 ~ 1.5.2 | Java 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サーバやプラグインサーバなどの構築方法も紹介していこうと思います。
コメント