これは私たちのゲームサーバー向けVPSページの実践的な相棒です。あちらはどのプランが合うかについて;こちらは実際にサーバーを立てることについて — Paper、まっとうなsystemdサービス、RAMを節約する設定、ファイアウォール、バックアップ。終わる頃には、クラッシュを生き延び、再起動を生き延び、静かに箱全体を食べないMinecraftサーバーができています。
始める前に正直なメモを一つ:ユースケースページのCPUとRAMの限界はやはり当てはまります。SmallやMediumプランのPaperは友達グループには最高です。大きなコミュニティ向けの150モッドパックはこれらのプランの用途ではなく、どんな設定でもそれは直りません。それがはっきりしたら、作りましょう。
1. Javaを入れる
PaperはJavaで動きます。headlessのJDKを入れましょう — 現行のMinecraftバージョンならJava 21です:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
Minecraftバージョンが古いなら、それが求めるJavaを入れます(1.18-1.20時代なら17)。バージョンが間違っていればサーバーログが大声で文句を言います。
2. サーバーディレクトリとPaperを用意
サーバーをrootではなく、それ自身のユーザーとして動かします — 何か問題が起きたとき、爆発半径を小さくしたいのです。
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
あなたのMinecraftバージョン向けのPaper jarをダウンロードし(downloadsページからURLを取得)、server.jar として保存します:
sudo -u minecraft wget -O server.jar "PASTE_PAPER_DOWNLOAD_URL_HERE"
設定ファイルを生成するため一度動かし、それからEULAに同意します:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# すぐに止まり、EULAに同意するよう求めます
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G はJVMヒープの上限です。4 GBの Small プランでは、JVMに〜3 GBがOSに呼吸の余地を残します。全RAMに設定しないこと — JVMにはヒープを超えるオーバーヘッドがあり、OOMキラーは交渉しません。
3. RAMを節約するようserver.propertiesを調整
ここで無料で性能を買います。server.properties を開いて設定します:
view-distance=8
simulation-distance=6
max-players=10
view-distance— 各プレイヤーの周りでロードし続けるチャンク。既定の10は気前が良い;8(あるいは6も)はRAMとCPUを目に見えて削り、ほとんど誰も違いに気づきません。simulation-distance— エンティティ、レッドストーン、作物の成長が実際にどこまでtickするか。低いほど安い。6が妥当な出発点です。max-players— 実際に見込む数に設定し、突然の群衆がRAM予算を吹き飛ばさないように。
シングルスレッドの現実を忘れずに:Minecraftのtickは一つのコアに寄りかかります。TPSが下がっても、RAMを増やしても助けになりません — simulation-distance とモブ上限を下げることが助けます。
4. systemdサービスとして動かす
これが「一度動かしたjar」を「サーバー」に変える部分です。/etc/systemd/system/minecraft.service を作成:
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
[Install]
WantedBy=multi-user.target
Restart=on-failure が肝心の行 — JVMがクラッシュしたら、systemdが10秒で戻します。SuccessExitStatus=... 143 は、通常のSIGTERMシャットダウンを失敗として扱わせないようにします。有効にして起動:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # ライブログ
これで起動時に始まり、クラッシュで再起動し、ログはjournaldへ行きます。
5. ファイアウォールポートを開ける
Minecraftは既定でTCP 25565を待ち受けます。それだけを開けましょう:
sudo ufw allow 25565/tcp
sudo ufw enable
友達にサーバーのIPを渡します(ポートを変えたなら :25565 も)。要らないものは何も開けないこと — 自分の箱を動かす全体の要点は、何が到達可能かをあなたが決めることです。
6. ワールドをバックアップ
そうしなかった日を悔やむまで人々が飛ばすもの。単純なスクリプト:
#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end
cronから動かし、そして — これが大事な半分 — アーカイブをサーバーの外へコピー します、オブジェクトストレージか別のマシンへ。ワールドと同じディスクのバックアップはディスクと共に死にます。ワールドが大事なら、tarの前にサーバーコンソールで save-off と save-all を実行し、書き込み中にスナップショットを取らないように。
それが全部です
Java、Paper、調整した設定、自動再起動するsystemdサービス、ファイアウォールポート、そしてどこか別の場所に住むバックアップ。それが、そう振る舞うMinecraftサーバーです。
まだ箱がないなら:プランを選び — 小さなグループには Small($8)、10人を押すなら Medium($12) — USDCまたはUSDTで支払い(KYCなし、書類なし)、約60秒でrootを得ます。それからこのページを下へ進めましょう。そして正直なリマインダーを最後にもう一度:これは友達とのvanillaやPaperには正しい構成です。大きなコミュニティ向けの重いモッドパックは別のハードウェアが要り、それはまず私たちから聞いてほしいのです。
コメント
まだコメントはありません。最初になりましょう。