ConoHa VPSを借りたので、試しにMinecraftサーバーでも立ててみるかということでサーバーテンプレートを使わず構築してみたので備忘録として残しておきます。
Contents
環境情報
- Minecraft 1.21 Vanillaを導入
- ConoHa VPS 2GBプラン
- CentOS(Stream9)
- macOSのターミナル.appを使用してSSH
事前準備
VPSサーバーのSSH設定は、Conoha VPS(CentOS)のSSH設定をする(公開鍵認証、rootログイン禁止、ポート変更)に記載しています。
この記事は、上記記事に従ってSSH接続設定を完了したことを想定して構成しています。VPSを借りたばかりで設定がまだという方は先に上記記事を参考にして一般ユーザでSSHできるようにしておいて下さい。
注意事項
- 設定変更時は必ずバックアップをとって下さい
- セキュリティの設定は自身の責任で行って下さい
- 設定ファイルの編集時にはnanoを使っています。使い方は各自調べるか、viやemacs等好きなエディタを使って下さい
- 一般ユーザでコマンドを実行することを想定し、sudoを使っています。
OpenJDK(ランタイム)のインストール
VPSにSSH接続して、yumコマンドでOpenJDKを探します。Javaのバージョンが色々あるのでMinecraftバージョンに合わせて選択して下さい。
yum search java
私はJava21を選択しました。
sudo yum install java-21-openjdk.x86_64
...
Total download size: 165 M
Installed size: 639 M
Is this ok [y/N]: y
...
Complete!
Complete!表示が出たら、OpenJDK(ランタイム)がきちんとインストールされているかを以下のコマンドで確認します。
java --version
openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.2.0.13-1) (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.2.0.13-1) (build 21.0.2+13-LTS, mixed mode, sharing)
今後のためにVPSのホームディレクトリ直下にminecraftディレクトリを作っておきましょう。
cd ~/
mkdir minecraft
Minecraft Serverのインストール
Minecraft公式サイトからminecraft_server.1.XX.jarをダウンロードします。記事執筆時点ではv1.21が最新だったので、 minecraft_server.1.21.jarをダウンロードしました。
ダウンロードが完了したらダウンロードした.jarファイルをscpでVPSに転送します。
# SSHポートを61234ポートに指定、VPSのIPアドレス000.000.000.000の場合↓
scp -P 61234 ~/Downloads/server.jar user@000.000.000.000:/home/user/minecraft/
これで~/minecraft/ディレクトリにserver.jarが転送されたはずです。
cd ~/minecraft/
ls -al
total 50428
drwxr--r-- 2 user user 4096 Aug 7 19:02 .
drwxr-xr-x 3 user user 4096 Aug 7 19:02 ..
-rw-r--r-- 1 user user 51623779 Aug 7 19:02 server.jar
転送できたらEULAに同意するためにとりあえずMinecraft Serverを起動します。
java -jar server.jar --nogui
...
[19:15:15] [ServerMain/WARN]: Failed to load eula.txt
[19:15:15] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
起動が失敗しますが、lsでminecraftディレクトリを見るとeula.txt
ファイルが生成さているのが分かります。
nano eula.txt
MinecraftのEULAを読んで同意する場合はfalseをtrueに変更して保存します。
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Wed Aug 07 19:15:15 JST 2024
eula=true
では本起動です。とりあえずメモリ1GBで起動してみましょう。
java -Xmx1024M -Xms1024M -jar server.jar nogui
[08:00:26] [Server thread/INFO]: Done (3.383s)! For help, type "help"
が表示されたら起動完了です。早速プレイしたいところですが、まだファイアウォールの設定が済んでいないため現時点では接続できません。一旦Done(X.XXXs)!
の一行下の空行にstop
と入力して、サーバーを停止しましょう。
Minecraft Serverのポート変更
デフォルトでは、Minecraft Serverに接続する際のポートはデフォルトで25565番になっていますが、念のため別のポートに変更しておきましょう。VPSにSSHして、minecraftディレクトリ内のserver.propertiesファイルを編集します。
cd ~/minecraft
nano server.properties
seerver-port=25565
の行を探して、別のポートに変更します。本記事では61235ポートに変更することにします。
...
server-port=61235
...
ついでにdifficulty=easy
とかの他の設定も見直すと良いでしょう。
ファイアウォールの設定
Minecraft Serverに接続できるようにするため、ファイアウォールの設定をします。
まず、ConoHaコントロールパネルから、セキュリティ›セキュリティグループを開いて、+セキュリティグループ
ボタンから新規セキュリティーグループを作ります。名前はなんでもいいですが、私はMinecraftとしました。
セキュリティグループを作ったら、以下のようにポリシーを設定します。
通信方向 | イーサタイプ | プロトコル | ポート範囲 | IP/CIDR |
---|---|---|---|---|
Out | IPv6 | all | ||
Out | IPv4 | all | ||
In | IPv6 | TCP | 61235 | |
In | IPv4 | TCP | 61235 |
次に、ConoHaコントロールパネルのサーバー›ネットワーク›セキュリティグループを編集して、先ほど作成したセキュリティグループ(Minecraft)を追加します。
次に、CLIのファイアウォールでMinecraft Serverが使うポートを開けます。一般ユーザでVPSにSSH接続して下さい。
<port protocol="tcp" port="61235"/>
を追加します。
sudo nano /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<service name="cockpit"/>
<port protocol="tcp" port="61234"/>
<port protocol="tcp" port="61235"/>
<forward/>
</zone>
設定を反映するためfirewalldを再起動します。
sudo systemctl restart firewalld.service
ファイアウォールの設定が完了したら、サーバーを起動して、接続確認をしましょう。SSHでVPSに接続して、以下のコマンドを入力します。Maxメモリは環境に合わせて調整して下さい。
java -Xmx1536M -Xms1024M -jar server.jar nogui
サーバーが立ち上がったら、PCでMinecraftを起動して「マルチプレイ」の「サーバーを追加」から、サーバーアドレスを000.000.000.000:61235
という感じにIPアドレスとポートを指定します。接続できれば成功です。
管理者にOP権限付与
あとは管理者にOP権限を付与します。なぜこれが必要かというと、SSHのセッションが異常終了するなどしたとき、OP権限がないとVPSを再起動するかMinecraft Serverのプロセスを探すかして強制終了するしか方法がなくなるからです。OP権限があれば、SSHのセッションが切れてしまってもゲーム画面からMinecraft Serverに入って安全にサーバーを停止できます。
まず、Minecraft Serverを起動し、自分のアカウントでゲームに入ります。その後、SSHの[08:01:26] [Server thread/INFO]: Done (3.383s)! For help, type "help"
の1つ下の行に以下のコマンドを打ち込みます(user部分は自分のユーザ名)。
# ユーザ名'USER'にOP権限を付与
op USER
[08:01:58] [Server thread/INFO]: Made USER a server operator
OP権限が付与されたことを確認できたら、試しにサーバーを停止してみましょう。ゲーム画面で以下のコマンドを入力します。
/stop
サーバーが停止すれば成功です。
参考
- CentOS7へのOpenJDKインストールあれこれ – Qiita
- 【マイクラ】Javaバージョンのインストール方法を紹介!【Ubuntu対応】 – 揚げポテほかほかクラフト
- JAVA 版 MINECRAFT サーバーをダウンロード – Minecraft
- チュートリアル/サーバーのセットアップ – MINECRAFT Wiki
- 【minecraft】ユーザにオペレータ権限を設定する方法
コメントを残す