【Debian 13】Minecraftサーバーを構築

環境

Xserver VPS 2GB
真っ新な状態からDebian + Pepperでサーバーを構築します

たまたま余ったVPSを使っていますが、普通の人はVPSじゃなくて海外サーバーのPebblehostとかで契約したほうがずっと安いと思います。同じくらいの環境なら年間3,800円くらいで維持できます。しかも設定不要。Xserver GAMEsだと、6,300円くらい(更新費用はなぜかもっと高い)。私のVPSは年間8,400円程度で、Pebblehostなら同じ金額でメモリを5GBにすることができます。

VPS側のポート開放

パケットフィルターの設定 | 圧倒的な性能・圧倒的なコスパVPS【XServer VPS】サポートサイト
パケットフィルターの設定方法をご案内しています。

フィルター:カスタム
プロトコル:TCP
ポート番号:単一/25565
許可する送信元IPアドレス:すべて許可

SSHの設定(セキュリティのため)

一旦Powershellとかコンソールとか使ってローカルのPCでSSHキーを生成

ssh-keygen -t ed25519

適当にエンターキーを押していくと~/.ssh以下にid_ed25519とid_ed25519.pubが生成されるので、id_ed25519.pubをメモ帳で開くかcatするかして中身をコピー。

SSHでサーバーに接続して、

echo "コピーしたキー" >> ~/.ssh/authorized_keys

次に鍵なし・パスワードのみのログインを防ぐため、

sudo vi /etc/ssh/sshd_config

エディタが開くので、38行目らへんのコメントアウトされているPubkeyAuthentication yesをコメントから外して有効化して、57行目らへんのPasswordAuthenticationをnoにする。

その後、SSHを再起動。

sudo systemctl restart ssh

以降、鍵が登録されていない他のPCからのログインは拒否されます。

ユーザーを追加

ここからはVPS上で作業していきます。

rootを常用するのはよろしくないので、ユーザーを追加。
ここではuserという名前のユーザーを扱っていきます。

adduser user

追加したユーザーがsudoを使えるようにする

usermod -aG sudo user

追加したユーザーへ切り替え

su - user

Javaをインストール

先に、Paper側が推奨するJavaのバージョンを確認。

Getting started | PaperMC Docs
How to get started with downloading and setting up a Paper server.

今回インストールする予定のMinecraftは26.1.2なので、記載の通りJava 25をインストール。

sudo apt update

sudo apt install openjdk-25-jdk

Paperをダウンロード

Paper
Download Paper, our Minecraft server software offering unrivaled performance and stability.

jarファイルへのリンクを確認して、wgetとかで保存する。

mkdir ~/minecraft

cd ~/minecraft

wget -o paper.jar https://fill-data.papermc.io/v1/objects/cfb9281c2657e21ecc8acdaa9efbd6b5b3e873fb5bac4c3b8ba4bba67aa13ee2/paper-26.1.2-65.jar

起動確認

起動するためのコマンドはこんな感じ。

java -Xms512M -Xmx1000M -jar paper.jar --nogui

でもこれを毎回入力するのもめんどくさいので、シェルスクリプトを用意。

touch start.sh

cat >> start.sh <<EOF
#!/bin/bash
java -Xms512M -Xmx1000M -jar paper.jar --nogui
EOF

chmod +x ./start.sh

これで次からは./start.shで起動できるようになる。
Minecraftのサーバーは初回起動時はファイルの生成だけして処理を終了する。
eula.txtのeula=falseをeula=trueに書き換えて再度起動する必要がある。

常時起動に対応させる

今の状態だと、VPSの管理者がオフラインになるとサーバーも落ちてしまう。
screenやtmuxなどのツールを使うのが一般的らしいが、パッケージ追加の必要がないのと、クラッシュ時の管理がしやすいらしいのでsystemdサービスを使ってみる。

/etc/systemd/system/minecraft.serviceに以下の内容を書き込み

[Unit]
Description=Minecraft Paper Server
After=network-online.target
Wants=network-online.target

[Service]
User=user
Group=user
WorkingDirectory=/home/user/minecraft
ExecStart=/home/user/minecraft/start.sh
Restart=on-failure
RestartSec=10
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target

その後

sudo systemctl daemon-reload

sudo systemctl restart minecraft

これで、常時起動が有効になります。

自動再起動

cronで定期的に再起動させます。Debianにはcronがデフォルトではインストールされていないので、以下の通りインストールしていきます。

sudo apt install -y cron

sudo systemctl enable --now cron

sudo crontab -e

cronを設定するためのエディタが開くので、例えば毎朝6時に再起動するとしたら以下の通り。

0 6 * * * /usr/bin/systemctl restart minecraft.service

コマンド送信

サーバー側のコンソールにコマンドを直接送るためにrconの設定をします。
この設定は任意で、特定のユーザーがOP権限を持っていれば普段はそこまで困らなさそうな部分でもあります。

/home/user/minecraft/server.propertiesを開いて、

  • enable-rcon=true
  • rcon.password=長くて強いパスワード
  • broadcast-rcon-to-ops=false

に変更します。

設定を読み込ませるために再起動して、rconをインストールして、設定ファイルを編集します。

sudo systemctl restart minecraft

sudo apt install -y rcon

/etc/rcon.confに以下の内容を書き込み

[mc]
host = 127.0.0.1
port = 25575
passwd = RCONパスワード

これでコマンドが使えるようになる

rconclt mc コマンド
rconclt mc whitelist on など

コメント

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