ubuntu server 22.04をminecraft serverとして動作させます。
環境
Server
・Ubuntu Server 22.04.2 LTS
・MINECRAFT: JAVA EDITION 1.20.1
Client
・Windows 11 Pro
・MINECRAFT: Launcher for Windows 10.0.2.5.9
・MINECRAFT: JAVA EDITION 1.20.1
構成
自宅ローカル環境のubuntu serverにてminecraftを動作させ、クライアントとしてwindows 11 Proから接続します。
インターネットから接続できるような構成・設定ではありません。
vmware Workstation/ESXi周りの説明は本稿では行いません。
必要に応じて以下を参照ください。
https://qiita.com/Higemal/items/f0a2758b892f710d1eb3
1.サーバ要件
ubuntu serverの構成要件を確定します。
OS/Software
・ubuntu server 22.04 LTS
・openjdk-19-jdk
・MINECRAFT: JAVA EDITION 1.20.1
Hardware
・CPU 4core
・Memory 6GB
・Disk 30GB
以下のRecommendedスペックを参考にしています。
https://minecraft.fandom.com/wiki/Server/Requirements/Dedicated
Requirements | Players | CPU | RAM | HDD |
---|---|---|---|---|
Recommended | 5-7 | Intel Core-Based CPUs or AMD K8-Based CPUs at 3.4GHz or higher | 5 GB | 18 GB empty space |
2.インストーラダウンロード
2.1 ubuntu server
ubuntu serverは以下からダウンロードします。
desktopとserver、またLTSと最新版がありますが、今回は Server の LTS をダウンロードします。
ubuntu-22.04.2-live-server-amd64.iso
2.2 minecraft
minecraftは以下からダウンロードします。
client用の WINDOWSレガシーランチャーをダウンロード
、Server用の JAVA版サーバー
をダウンロードします。
Client: MinecraftInstaller.exe
Server: server.jar
3.ubuntu serverインストール
ubuntu serverをインストールします。
3.1 HW準備
#割愛しますが、以下のスペックでVMを準備しています。
Hardware
・CPU 4core
・Memory 6GB
・Disk 30GB
3.2 OSインストール
以下のISOメディアを利用し、インストールを開始します。
ubuntu-22.04.2-live-server-amd64.iso
BIOSが起動したら、Try or Install Ubuntu Server
を選択し、Enter
を押下します。
Continue without updating
を選択し、Enter
を押下します。
キーボードレイアウトについて、以下を選択し、Done
を押下します。
・Layout: Japanese
・Variant: Japanese
Network connection設定では表示されているNICを選択し、Edit IPv4
を押下します。
IPアドレス等を設定し、Save
を押下します。
・IPv4 Method: Manual
・・・手動設定
・Subnet: 192.168.142.0/24
・・・ネットワークサブネット
・Address: 192.168.142.53
・・・サーバのIPアドレス
・Gateway: 192.168.142.2
・・・デフォルトゲートウェイ
・Name servers: 192.168.142.2,8.8.8.8
・・・DNSサーバ
・Search domains: test.local
・・・DNSサフィックス
Configration proxyは何も設定せずDone
を押下します。
Configration ubuntu archive mirrorは何も設定せずDone
を押下します。
Guided storage configrationは何も設定せずDone
を押下します。
Storage configrationは何も設定せずDone
を押下します。
ユーザ名・ホスト名を設定し、Save
を押下します。
・Your name: -
・・・管理者の氏名。入力不要
・Your server's name: ubnt22-mc
・・・サーバホスト名
・Pick a username: ubuntu
・・・一般ユーザのユーザ名
・Choose a password: ******
・・・パスワード
・Confirm your password: ******
・・・パスワード確認入力
Skip for now
を選択し、Continue
を押下します。
SSH Setupは以下を選択し、Done
を押下します。
・Install OpenSSH Server: [x]
・Import SSH identity: No
Feratured Server Snapsは何も設定せずDone
を押下します。
インストールが開始されます。
完了した場合、上部にInstall Complete!
と表示されるので、Reboot Now
を押下します。
3.3 OS初期設定
3.3.1 root昇格
以降、sudoが必要な場面が多いためroot昇格しておきます。
# sudo su -
3.3.2 タイムゾーン設定
タイムゾーン設定を行います。
# timedatectl set-timezone Asia/Tokyo
# timedatectl
Local time: Sun 2023-07-16 21:02:11 JST ### JSTとなっていることを確認 ###
Universal time: Sun 2023-07-16 12:02:11 UTC
RTC time: Sun 2023-07-16 12:02:11
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
3.3.3 パッケージアップデート
導入済みパッケージのアップデートを実施します。
# apt -y update
# apt -y upgrade
導入済みパッケージ確認は以下コマンドになります。
apt list --installed
dpkg-query -l
3.3.4 ufw設定
ubuntu firewallを設定し、必要なネットワークポートのみ解放します。
事前状態が無効(inactive
)であることを確認します。
# ufw status verbose
Status: inactive
デフォルトで外→内について全ポートの閉塞、またSSHで利用するTCP22およびminecraftで利用するTCP25565を開放します。
# ufw default deny
# ufw allow 22/tcp
# ufw allow 25565/tcp
ufwを起動します。
# ufw enable
動作確認をします。
Statusがactive
になっていること、Defaultにてdeny (incoming)
となっていること、解放したポートがallow
となっていることを確認します。
#ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
25565/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
25565/tcp (v6) ALLOW IN Anywhere (v6)
4.minecraft server設定
minecraft serverのための設定等を実施します。
4.1 JDKインストール
JDKをインストールします。今回はapt search
のうち最新のopenjdk-19-jdk
をインストールします。
インストールするパッケージの確認を行います。
# apt search --names-only openjdk-19-jdk
openjdk-19-jdk/jammy-updates,jammy-security 19.0.2+7-0ubuntu3~22.04 amd64
OpenJDK Development Kit (JDK)
openjdk-19-jdk-headless/jammy-updates,jammy-security 19.0.2+7-0ubuntu3~22.04 amd64
OpenJDK Development Kit (JDK) (headless)
パッケージのインストールを行います。
# apt install -y openjdk-19-jdk
javaバージョン確認コマンドでインストールされたことを確認します。
# java --version
openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)
4.2 jarファイル配置
minecraft server本体であるserver.jar
を配置します。
teratermのファイル
からSSH SCP...
を押下します。
minecraft用ディレクトリ /minecraft
を作成します。
# mkdir /minecraft
jarファイルをminecraft用ディレクトリに配置します。
# cp -p /tmp/server.jar /minecraft
# cd /minecraft
# ll
total 46680
drwxr-xr-x 2 root root 4096 Jul 16 21:09 ./
drwxr-xr-x 20 root root 4096 Jul 16 21:08 ../
-rw-r--r-- 1 ubuntu ubuntu 47791053 Jul 16 07:05 server.jar
4.3 初回起動とEULA同意
minecraft serverを初回起動します。
必ずライセンスエラーで終了します。
# java -Xmx5120M -Xms5120M -jar server.jar nogui
<中略>
[21:10:57] [ServerMain/WARN]: Failed to load eula.txt
[21:10:57] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
初回起動を行うと、以下ファイルが生成されます。
# ll
total 46700
drwxr-xr-x 5 root root 4096 Jul 16 21:10 ./
drwxr-xr-x 20 root root 4096 Jul 16 21:08 ../
-rw-r--r-- 1 root root 158 Jul 16 21:10 eula.txt
drwxr-xr-x 8 root root 4096 Jul 16 21:10 libraries/
drwxr-xr-x 2 root root 4096 Jul 16 21:10 logs/
-rw-r--r-- 1 ubuntu ubuntu 47791053 Jul 16 07:05 server.jar
-rw-r--r-- 1 root root 1272 Jul 16 21:10 server.properties
drwxr-xr-x 3 root root 4096 Jul 16 21:10 versions/
eula.txt
の中身を変更する必要があるので、内容を編集します。
・変更前: eula=false
・変更後: eula=true
# vi eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Sun Jul 16 21:10:57 JST 2023
eula=true
4.4 minecraft server起動
minecraft serverを起動します。
コマンド内容
・-Xmx5120M
:最大メモリ使用量を5120MBに指定
・-Xms5120M
:最小メモリ使用量を5120MBに指定
・nogui
:CUI環境で必要なオプション
# java -Xmx5120M -Xms5120M -jar server.jar nogui
<中略>
[21:11:57] [Server thread/INFO]: Time elapsed: 16947 ms
[21:11:57] [Server thread/INFO]: Done (20.672s)! For help, type "help"
以後、teratermやコンソールを閉じず、そのままにしておきます。
5.minecraft clientからの接続
minecraft clientからminecraft serverへ接続します。
5.1 minecraft server接続
サーバのIPアドレスおよびポート(デフォルトの場合は25565)を入力し、サーバに接続
をします。
サーバ側のターミナルより、ユーザログインに関する内容が出力されます。
以降、minecraftユーザ名は<username>
と表現しています。
[21:15:25] [User Authenticator #1/INFO]: UUID of player <Username> is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[21:15:25] [Server thread/INFO]: <Username>[/192.168.142.1:49542] logged in with entity id 188 at (-2.5, 102.0, -5.5)
[21:15:25] [Server thread/INFO]: <Username> joined the game
5.2 minecraft server操作
サーバ側のターミナルにてminecraftコマンドを利用することができます。
例として、kill
コマンドを利用することでユーザをキルします。
kill <Username>
[21:19:16] [Server thread/INFO]: <Username> was killed
[21:19:16] [Server thread/INFO]: Killed <Username>
5.3 minecraft server終了
サーバ側のターミナルにてstop
コマンドを利用することでminecraft serverを停止することができます。
接続中のユーザは強制退出となります。
stop
[23:55:24] [Server thread/INFO]: Stopping the server
[23:55:24] [Server thread/INFO]: Stopping server
[23:55:24] [Server thread/INFO]: Saving players
[23:55:24] [Server thread/INFO]: Saving worlds
[23:55:25] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[23:55:26] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[23:55:26] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[23:55:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[23:55:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[23:55:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[23:55:26] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
参考
Windows10上のvmware Workstationにvmware ESXi 8.0 u1aをインストールしてVMを作成する
Server/Requirements/Dedicated
Ubuntuを入手する
MINECRAFT をダウンロード
コマンド