Перейти к содержимому
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