環境
Xserver VPS 2GB
真っ新な状態からDebian + Pepperでサーバーを構築します
たまたま余ったVPSを使っていますが、普通の人はVPSじゃなくて海外サーバーのPebblehostとかで契約したほうがずっと安いと思います。同じくらいの環境なら年間3,800円くらいで維持できます。しかも設定不要。Xserver GAMEsだと、6,300円くらい(更新費用はなぜかもっと高い)。私のVPSは年間8,400円程度で、Pebblehostなら同じ金額でメモリを5GBにすることができます。
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のバージョンを確認。

今回インストールする予定のMinecraftは26.1.2なので、記載の通りJava 25をインストール。
sudo apt update
sudo apt install openjdk-25-jdk
Paperをダウンロード
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 など

コメント