Перейти до вмісту
VPS і сервери · 7 хв

Сервер Майнкрафт на VPS: Paper, systemd і скільки потрібно RAM

Власний хостинг майнкрафт-сервера — це звичайний VPS: щоб запустити на ньому Minecraft Java, встановіть Java, завантажте Paper, запустіть його від окремого користувача як службу systemd і відкрийте TCP-порт 25565. Добирати сервер треба насамперед за пам’яттю: для компанії до десяти друзів розумний мінімум — тариф із 4 ГБ RAM, а кожен наступний гігабайт додає приблизно п’ятьох гравців.

Що знадобиться

  • VPS з Ubuntu 24.04 або Debian 12 і root-доступ через SSH (див. Підключення через SSH).
  • Достатньо пам’яті. Близько 1 ГБ залиште системі та накладним витратам JVM, решту віддайте під купу (-Xmx):
Гравців (Paper, легкі плагіни) Тариф Купа
до 5 Pulse — 2 vCPU, 2 ГБ, $10 на місяць -Xmx1G
5–10 Drive — 2 vCPU, 4 ГБ, $15 на місяць -Xmx3G
10–20 Forge — 4 vCPU, 8 ГБ, $22 на місяць -Xmx6G
20–30 Titan — 8 vCPU, 12 ГБ, $32 на місяць -Xmx10G

Важким модпакам і 30+ гравцям потрібен виділений сервер. Стежте й за диском: у Drive 20 ГБ, а світ, який гравці вільно досліджують, зростає на гігабайти, тож межу світу встановлюйте одразу. Докладніше про вибір — у статті Як обрати тариф VPS.

1. Встановлення Java

Paper для Minecraft 1.21.x потребує Java 21; новішим версіям може знадобитися Java 25 — це зазначено на сторінці завантаження Paper. У репозиторії Adoptium є обидві версії для Ubuntu 24.04 і Debian 12:

apt update && apt install -y wget gpg
wget -qO- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(. /etc/os-release; echo $VERSION_CODENAME) main" > /etc/apt/sources.list.d/adoptium.list
apt update && apt install -y temurin-21-jre
java -version

2. Користувач, Paper і перший запуск

Скопіюйте посилання на останню збірку зі сторінки papermc.io/downloads/paper і вставте його в команду:

useradd -r -m -d /opt/minecraft -s /usr/sbin/nologin minecraft
cd /opt/minecraft
runuser -u minecraft -- wget -O paper.jar "<link to the Paper build>"
runuser -u minecraft -- java -Xmx1G -jar paper.jar --nogui
sed -i 's/eula=false/eula=true/' eula.txt
runuser -u minecraft -- java -Xmx1G -jar paper.jar --nogui

Перший запуск лише створює eula.txt і завершується. Другий генерує світ. Коли в консолі з’явиться Done, введіть op ВашНік, whitelist add ВашНік і stop. Для закритого сервера пропишіть у server.properties:

white-list=true
enforce-whitelist=true
max-players=10
view-distance=8
simulation-distance=6

3. Служба systemd

/etc/systemd/system/minecraft.service (купу вказано для Drive, свою візьміть із таблиці):

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

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
TimeoutStopSec=90

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now minecraft
journalctl -u minecraft -f

systemctl stop minecraft надсилає SIGTERM, і Paper зберігає світ перед виходом. Після перезавантаження сервер підніметься сам.

4. Файрвол: порт 25565

apt install -y ufw
ufw allow OpenSSH
ufw allow 25565/tcp
ufw enable

Гравці додають сервер за IP-адресою; 25565 — порт за замовчуванням, вказувати його не потрібно.

Типові помилки

  • UnsupportedClassVersionError під час запуску: Java застара для цієї збірки Paper. Встановіть ту версію, що вказана на сторінці завантаження.
  • Сервер падає без помилки в журналі: ядро завершило його через брак пам’яті. Перевірити: journalctl -k | grep -i "out of memory". Зменште -Xmx або перейдіть на більший тариф — зміна тарифу виконується на запит, зазвичай без перевстановлення.
  • Лаги за кількох гравців: зменште view-distance, заздалегідь згенеруйте світ усередині межі й знайдіть, що з’їдає тік, вбудованим /spark profiler.
  • Ніхто не може підключитися: перевірте ss -tlnp | grep 25565 і ufw status.
  • Немає резервних копій: це ваше завдання. Зупиніть сервер, заархівуйте світи й скопіюйте архів за межі VPS:
systemctl stop minecraft
tar czf /root/world-$(date +%F).tar.gz -C /opt/minecraft world world_nether world_the_end
systemctl start minecraft

Замовити Drive

Сервер Майнкрафт на VPS: Paper, systemd і скільки потрібно RAM · dedisrv