Установим Paper как отдельную службу Linux, ограничим вход списком игроков и подготовим копию мира для восстановления. Инструкция рассчитана на чистую Ubuntu 24.04 x86_64, публичный IP, доступ по SSH и пользователя с правами sudo.
Paper поддерживает Java-клиенты и серверные плагины. Для Bedrock и модпаков Fabric, Forge или NeoForge нужна другая установка; для технического выживания сначала проверьте отличия Paper от ванильной игры.
Выберите версию игры до установки Java#
Выберите версию, которую поддерживают клиенты игроков и нужные плагины. По требованиям Paper, для 26.1 и новее нужна Java 25; для веток 1.20–1.21.11 рекомендована Java 21. Ниже используем Paper 26.1+ и Java 25. Требования проверены 12 октября 2026 года.
В примере Java heap ограничен 2 ГиБ на VPS с минимум 4 ГиБ RAM. Это начальное распределение памяти, а не оценка количества игроков. Оставьте запас Ubuntu, памяти JVM за пределами heap и другим службам. Регион выбирайте поближе к игрокам; требования к CPU оценивайте по нагрузке реального мира.
Установите Java и создайте пользователя игры#
Выполняйте команды на VPS. Они добавляют репозиторий Amazon Corretto, устанавливают JDK и библиотеки из инструкции Paper по Java:
sudo apt update
sudo apt install -y ca-certificates curl gnupg nano ufw
curl -fsSLo /tmp/corretto.key https://apt.corretto.aws/corretto.key
sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg /tmp/corretto.key
echo 'deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main' | sudo tee /etc/apt/sources.list.d/corretto.list
sudo apt update
sudo apt install -y java-25-amazon-corretto-jdk libxi6 libxtst6 libxrender1
/usr/bin/java -version
Убедитесь, что выбрана Java 25. Если нет, выполните sudo update-alternatives --config java и выберите Corretto 25. Если на VPS уже есть другие Java-приложения, закрепите абсолютный путь к Corretto в обеих командах запуска ниже вместо смены общей Java.
Создайте пользователя без административных прав:
sudo adduser --system --group --home /srv/minecraft minecraft
sudo install -d -o minecraft -g minecraft -m 750 /srv/minecraft
Скачайте конкретную сборку Paper#
На своём компьютере откройте загрузки Paper, выберите согласованную версию игры и сборку. Сохраните исходное имя файла и номер сборки в своих заметках, затем переименуйте скачанную копию в paper.jar.
Загрузите файл из каталога, где он находится. Замените SSH_USER и VPS_IP; для нестандартного SSH-порта добавьте -P YOUR_SSH_PORT ко всем командам scp.
scp paper.jar SSH_USER@VPS_IP:/tmp/paper.jar
Вернитесь на VPS, установите файл, запишите его контрольную сумму и запустите:
sudo install -o minecraft -g minecraft -m 640 /tmp/paper.jar /srv/minecraft/paper.jar
sudo -u minecraft /bin/bash -c 'cd /srv/minecraft && sha256sum paper.jar > paper.jar.sha256'
sudo -u minecraft /bin/bash -c 'cd /srv/minecraft && /usr/bin/java -Xms1G -Xmx2G -jar paper.jar --nogui'
Контрольная сумма фиксирует установленный файл, но сама по себе не подтверждает подлинность загрузки. Не добавляйте в автозапуск скрипт, который каждый раз незаметно скачивает последнюю сборку.
Первый запуск остановится для принятия EULA. Прочитайте Minecraft EULA. Если согласны, откройте sudo -u minecraft nano /srv/minecraft/eula.txt, замените eula=false на eula=true и повторите команду запуска.
Дождитесь сообщения Done. В консоли игрового сервера выполните команды без начального слеша, подставив настоящие имена игроков:
whitelist on
whitelist add YourNickname
whitelist add FriendNickname
op YourNickname
stop
Права оператора нужны только администратору. Перед продолжением дождитесь окончания сохранения и возврата приглашения оболочки.
Настройте вход и параметры мира#
Откройте sudo -u minecraft nano /srv/minecraft/server.properties. Заменяйте существующие значения, не дописывайте одинаковые ключи:
server-ip=
server-port=25565
online-mode=true
white-list=true
enforce-whitelist=true
enable-rcon=false
gamemode=survival
difficulty=normal
max-players=10
view-distance=8
simulation-distance=6
motd=Our survival world
Оставьте server-ip пустым и сохраните проверку аккаунтов. Whitelist разрешает вход указанным игрокам; max-players ограничивает подключения. Значения дистанций нужно оценить на своём мире: они не гарантируют производительность. Описание параметров есть в справочнике настроек.
Запускайте Paper через systemd#
Создайте sudo nano /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft Paper server
Wants=network-online.target
After=network-online.target
[Service]
Type=exec
User=minecraft
Group=minecraft
WorkingDirectory=/srv/minecraft
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=180
SuccessExitStatus=0 130 143
NoNewPrivileges=true
PrivateTmp=true
ProtectHome=true
[Install]
WantedBy=multi-user.target
Этот unit запускает Paper от minecraft, включает запуск при загрузке ОС и повторяет неудачный запуск через десять секунд. На остановку отведено три минуты, после чего systemd может завершить процесс принудительно; большому миру может потребоваться больше времени. Параметры описаны в руководстве systemd.
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft --no-pager
sudo journalctl -u minecraft -n 80 --no-pager
sudo ss -ltnp 'sport = :25565'
Проверьте Done в журнале и TCP-порт 25565 в выводе ss. Статус active сам по себе не означает, что игра готова. После изменения конфигурации используйте sudo systemctl restart minecraft и снова смотрите журнал. При таком запуске оператор управляет whitelist командами в игре; journalctl показывает вывод, но не предоставляет интерактивную консоль сервера.
Если позже понадобится управление из браузера, можно использовать панель Nexardo для своего VPS. Подключение VPS и настройка сервера в панели — отдельный этап.
Откройте порт и проверьте подключение#
Перед включением UFW разрешите свой настоящий SSH-порт. Оставьте текущую сессию открытой и после изменения проверьте второе SSH-подключение.
В примере SSH использует порт 22. Подставьте свой порт и сохраните правила для других служб:
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status
Синтаксис приведён в инструкции Ubuntu по firewall. Если у провайдера есть отдельный firewall, разрешите там TCP 25565. Открытие только UDP не позволит Java-клиентам подключиться к этой установке.
В Minecraft Java добавьте VPS_IP:25565 в разделе Multiplayer и используйте версию игры сервера. Если вход не работает, начните с конкретного симптома:
| Симптом | Что проверить | Какое исправление проверить |
|---|---|---|
UnsupportedClassVersionError при запуске | /usr/bin/java -version и ветку Paper | Выбрать подходящую Java; проверить и ExecStart |
| Connection refused | ss и журнал запуска | Исправить запуск или адрес и порт прослушивания |
| Connection timed out | Публичный IP, UFW и firewall провайдера | Исправить адрес или правило TCP |
| Несовпадение версий клиента и сервера | Версию клиента и скачанную сборку | Использовать совпадающие версии |
| Игрока нет в whitelist | Точное имя аккаунта в whitelist.json | Оператору выполнить /whitelist add PlayerName |
Если вход работает, но игра тормозит, переходите к диагностике лагов Minecraft через spark.
Сделайте копию остановленного сервера и заберите её с VPS#
Предупредите игроков о перерыве, остановите службу и проверьте завершение сохранения:
sudo systemctl stop minecraft
sudo journalctl -u minecraft -n 40 --no-pager
sudo systemctl show minecraft -p ActiveState -p Result
Продолжайте только после штатной остановки. Таймаут или принудительное завершение не подтверждают корректное сохранение. Проверьте место командой df -h /srv /var/backups, затем упакуйте весь каталог сервера:
(
set -e
sudo install -d -m 700 /var/backups/minecraft
MC_BACKUP="/var/backups/minecraft/backup-$(date +%F-%H%M%S).tar.gz"
sudo tar -C /srv -czf "$MC_BACKUP" minecraft
sudo tar -tzf "$MC_BACKUP" > /dev/null
sudo install -m 600 -o "$(id -un)" "$MC_BACKUP" "$HOME/minecraft-backup.tar.gz"
sudo systemctl start minecraft
)
Проверяйте результат каждой команды. Если создание или проверка архива не удалась, устраните причину; Paper можно запустить, чтобы закончить перерыв, но считать такой архив резервной копией нельзя. Архив включает миры, JAR, плагины и локальные настройки. Внешние базы данных плагинов нужно копировать отдельно.
На своём компьютере заберите подготовленный файл:
scp SSH_USER@VPS_IP:minecraft-backup.tar.gz ./minecraft-backup.tar.gz
Ограничьте доступ к архиву: в нём могут быть данные игроков и секреты из конфигурации плагинов. Ещё одна копия на диске самого VPS не поможет при потере VPS.
Проверьте восстановление заранее#
Чтобы проверить полученный архив, не перезаписывая рабочий мир, выполните команды на отдельном Linux-компьютере или тестовом VPS:
MC_RESTORE_DIR="$(mktemp -d)"
tar -xzf minecraft-backup.tar.gz -C "$MC_RESTORE_DIR"
ls "$MC_RESTORE_DIR/minecraft"
cd "$MC_RESTORE_DIR/minecraft"
sha256sum -c paper.jar.sha256
Убедитесь, что есть ожидаемые каталоги миров, server.properties, плагины и JAR. Так проверяется распаковка и записанная контрольная сумма JAR, а не работоспособность восстановленного сервера. Для полноценной проверки запустите копию на отдельном тестовом сервере с подходящей Java, изолируйте её от игроков и проверьте мир в игре.
Для восстановления на исходном VPS загрузите выбранный архив в /tmp/minecraft-restore.tar.gz. На VPS остановите Paper, подтвердите штатную остановку, как выше, и выполните:
(
set -e
MC_RESTORE_STAGE="$(mktemp -d)"
sudo tar -xzf /tmp/minecraft-restore.tar.gz -C "$MC_RESTORE_STAGE"
sudo test -f "$MC_RESTORE_STAGE/minecraft/paper.jar"
sudo test -f "$MC_RESTORE_STAGE/minecraft/server.properties"
sudo mv /srv/minecraft "/srv/minecraft.before-restore-$(date +%F-%H%M%S)"
sudo mv "$MC_RESTORE_STAGE/minecraft" /srv/minecraft
sudo chown -R minecraft:minecraft /srv/minecraft
sudo systemctl start minecraft
sudo journalctl -u minecraft -n 80 --no-pager
)
Используйте только свой доверенный архив и остановитесь при ошибке любой проверки. Старый каталог сохраняется для отката. Восстановление заменяет мир состоянием из копии: изменения игроков после её создания будут потеряны. Подберите Java под версию Paper в архиве и заново проверьте готовность и вход игроков.
Перед обновлением сделайте и заберите резервную копию, остановите службу и замените JAR выбранной совместимой сборкой. Запишите новый номер сборки и контрольную сумму. В инструкции Paper по обновлению перечислены файлы, которые нужно сохранить; храните старый JAR вместе со старым миром, поскольку обновлённый мир может не поддерживать безопасный откат версии.




