Свой сервер Minecraft на VPS работает круглосуточно и не зависит от того, включён ли ваш компьютер. Друзья могут заходить в любое время, а вы сами решаете, какие правила, плагины и настройки будут на сервере. В этой статье мы установим сервер для Minecraft Java Edition на ядре Paper, настроим его автозапуск, откроем порт, добавим игроков в белый список и настроим резервные копии мира. Все шаги мы повторили на тестовом сервере с Debian 12. На момент проверки актуальная версия Minecraft 26.3, ядро Paper 26.3.
Как устроен сервер Minecraft
Сервер Minecraft – это программа на Java. Она хранит мир, обсчитывает всё, что в нём происходит, и рассылает изменения подключённым игрокам. Mojang выпускает официальный сервер, но для собственного сервера обычно берут Paper. Это сервер для Java Edition, который создан, чтобы работать заметно быстрее официального, и поддерживает плагины. Игроки заходят на Paper с обычной игрой, никакие моды им ставить не нужно. Чем Paper отличается от других ядер и как ставить плагины, рассказано в статье про ядра и плагины Minecraft.
Главное требование сервера – память. Java заранее выделяет себе объём, который вы указываете при запуске параметром -Xmx, и ещё немного сверху для собственных нужд. На нашем сервере с -Xmx2G процесс занял 2,4 ГБ. Чем больше игроков, плагинов и прогруженных участков мира, тем больше памяти нужно, поэтому начинать стоит с 2–4 ГБ под игру и при необходимости добавлять.
Второй важный момент – версия Java. Каждая новая версия Minecraft требует всё более новую Java. Для Minecraft 26.1 и новее нужна Java 25, а в стандартных репозиториях Debian 12 есть только Java 17. Поэтому Java мы поставим из репозитория Eclipse Adoptium.
Только Java Edition
Статья про сервер для Minecraft Java Edition, в которую играют на компьютере. Для Bedrock Edition, в которую играют на телефонах и консолях, нужен другой сервер.
Что понадобится
- Сервер с Debian 12 или Ubuntu 24.04 и не меньше 4 ГБ памяти, например тариф DE-RZ9-2. Если сервера ещё нет, закажите его по инструкции.
- Подключение по SSH, например через Termius. Команды выполняются от имени
root. - Лицензионная Minecraft Java Edition у вас и у игроков. По умолчанию сервер проверяет аккаунт каждого игрока.
Шаг 1. Установите Java 25
Подключите репозиторий Eclipse Adoptium и установите из него Java 25. Команды одинаковы для Debian и Ubuntu.
apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
apt update
apt install -y temurin-25-jreПроверьте версию.
java -versionВ ответе должна быть строка openjdk version "25…". На нашем сервере установилась версия 25.0.4.1.
Шаг 2. Создайте пользователя и скачайте Paper
Запускать сервер от имени root небезопасно. Если через сервер Minecraft или плагин найдут уязвимость, злоумышленник получит полный доступ к VPS. Поэтому создадим для игры отдельного пользователя minecraft с папкой /opt/minecraft. Подробнее о пользователях рассказано в статье про пользователей Linux.
useradd -r -m -d /opt/minecraft -s /bin/bash minecraft
apt install -y screenПрограмма screen понадобится, чтобы заходить в консоль сервера, когда он работает в фоне.
Теперь скачайте Paper. Откройте страницу papermc.io/downloads/paper, скопируйте ссылку на последнюю сборку нужной версии и скачайте файл под именем paper.jar. Мы скачивали сборку 209 для Minecraft 26.3.
cd /opt/minecraft
curl -fsSL -o paper.jar "https://fill-data.papermc.io/v1/objects/0a056c7648cfa0ca8d9b8c833a2bd2e1313ed4f1393a5125dd3444a4ee257e22/paper-26.3-209.jar"
chown minecraft:minecraft paper.jarПоследняя команда передаёт файл пользователю minecraft, иначе сервер не сможет с ним работать.
Шаг 3. Запустите сервер первый раз
Перейдите в пользователя minecraft и запустите сервер вручную.
su - minecraft
java -Xms2G -Xmx2G -jar paper.jar --noguiПри первом запуске Paper скачает файлы игры, создаст настройки и остановится с сообщением You need to agree to the EULA. Так сервер просит принять лицензионное соглашение Minecraft.

Сервер ждёт, пока вы примете лицензию
Примите соглашение и запустите сервер снова.
sed -i 's/eula=false/eula=true/' eula.txt
java -Xms2G -Xmx2G -jar paper.jar --noguiКогда появится строка Done и приглашение >, сервер готов. На нашем сервере первый запуск вместе с созданием мира занял 12,6 секунды.

Сервер запущен и ждёт команд
Остановите сервер командой stop в его консоли и вернитесь в root командой exit. Дальше сервер будет запускаться сам.
Шаг 4. Настройте автозапуск
Чтобы сервер работал в фоне, запускался вместе с VPS и поднимался после сбоя, оформим его как службу systemd. Как устроены службы, подробно рассказано в статье про systemd.
Сначала создайте скрипт запуска.
nano /opt/minecraft/start.sh#!/bin/sh
# Paper с 2 ГБ памяти и параметрами Java, которые рекомендует PaperMC
exec java -Xms2G -Xmx2G -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -jar paper.jar --noguiЗначения -Xms2G -Xmx2G задают память для игры. Если на сервере больше памяти, увеличьте оба значения, но оставьте системе хотя бы 1–1,5 ГБ.
Затем скрипт остановки. Он отправляет в консоль команду stop, чтобы сервер сохранил мир, и ждёт, пока сервер завершится.
nano /opt/minecraft/stop.sh#!/bin/sh
# Отправляет команду stop в консоль сервера и ждёт его завершения
screen -p 0 -S minecraft -X stuff "stop$(printf '\r')"
while kill -0 "$MAINPID" 2>/dev/null; do sleep 1; doneСделайте скрипты исполняемыми и создайте службу.
chmod +x /opt/minecraft/start.sh /opt/minecraft/stop.sh
chown minecraft:minecraft /opt/minecraft/*.sh
nano /etc/systemd/system/minecraft.service[Unit]
Description=Minecraft server
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/screen -DmS minecraft /opt/minecraft/start.sh
ExecStop=/opt/minecraft/stop.sh
Restart=always
RestartSec=10
TimeoutStopSec=90
[Install]
WantedBy=multi-user.targetВключите автозапуск и запустите сервер.
systemctl daemon-reload
systemctl enable --now minecraft
systemctl status minecraft
Служба работает, внутри screen запущена Java
Управлять сервером теперь нужно через systemd.
systemctl stop minecraft– сохранить мир и выключить сервер.systemctl restart minecraft– перезапустить.systemctl start minecraft– включить.
Мы проверили, что служба поднимает сервер после сбоя. Когда мы принудительно завершили процесс Java, systemd сам запустил сервер заново. Учтите, что из-за этого команда stop в консоли игры тоже приводит к перезапуску, а не к выключению. Чтобы выключить сервер, используйте systemctl stop minecraft.
Шаг 5. Откройте порт 25565
Игроки подключаются к серверу по порту 25565. Если на VPS включён брандмауэр UFW, откройте этот порт.
ufw allow 25565/tcpНа нашем сервере до этой команды сервер не был виден снаружи, а после неё сразу появился. Проверить сервер из интернета можно на сайте mcsrvstat.us, введя IP-адрес VPS. Если сервер в порядке, сайт покажет его версию и число игроков. Подробнее о брандмауэре рассказано в статье про UFW.
Шаг 6. Добавьте игроков и станьте оператором
В версии 26.3 белый список включён по умолчанию. Это значит, что зайти на сервер смогут только те, кого вы в него добавите. Остальные увидят сообщение о том, что их нет в белом списке.
Откройте консоль сервера.
su - minecraft -c "screen -r minecraft"Добавьте себя и друзей в белый список, а себя сделайте оператором, то есть администратором с доступом ко всем командам. Вместо Steve укажите ник в игре.
whitelist add Steve
op Steve
Игрок добавлен в белый список и стал оператором
Чтобы выйти из консоли и оставить сервер работать, нажмите Ctrl + A, затем D. Подробнее о работе с screen рассказано в отдельной статье.
Теперь запустите Minecraft на компьютере, откройте Сетевая игра и нажмите Добавить. В поле Адрес сервера укажите IP-адрес VPS и нажмите Готово, затем выберите сервер в списке и нажмите Подключиться. Порт можно не писать, если он стандартный. Вместо IP-адреса удобно использовать домен, как это сделать, описано в статье про привязку домена.
Основные настройки server.properties
Настройки сервера хранятся в файле /opt/minecraft/server.properties. После изменения перезапустите сервер командой systemctl restart minecraft.
| Параметр | По умолчанию | Что означает |
|---|---|---|
motd | A Minecraft Server | Описание сервера в списке серверов игры |
max-players | 20 | Сколько игроков может быть на сервере одновременно |
white-list | true | Пускать только игроков из белого списка |
online-mode | true | Проверять, что у игрока есть лицензионный аккаунт Minecraft |
difficulty | easy | Сложность. Варианты peaceful, easy, normal, hard |
gamemode | survival | Режим игры для новых игроков |
view-distance | 10 | На сколько участков мира вокруг игрока сервер отправляет данные |
simulation-distance | 10 | На каком расстоянии от игрока мир живёт, растут растения и двигаются мобы |
server-port | 25565 | Порт сервера |
Если сервер не справляется с нагрузкой, первым делом уменьшите view-distance и simulation-distance. Тогда сервер держит в памяти и обсчитывает меньшую часть мира вокруг каждого игрока.
Не выключайте online-mode без защиты
При online-mode=false сервер не проверяет аккаунты, и зайти можно под любым ником, в том числе под ником администратора. Не делайте так без плагина авторизации и белого списка.
Резервные копии мира
Мир хранится в папке /opt/minecraft/world. Ниже скрипт, который сохраняет мир на диск, упаковывает его в архив в папке /opt/minecraft/backups и хранит 7 последних архивов. Игра на время копирования не останавливается.
nano /opt/minecraft/backup.sh#!/bin/sh
# Сохраняет мир, архивирует его в /opt/minecraft/backups и хранит 7 последних архивов
cd /opt/minecraft || exit 1
screen -p 0 -S minecraft -X stuff "save-off$(printf "\r")"
screen -p 0 -S minecraft -X stuff "save-all flush$(printf "\r")"
sleep 10
mkdir -p backups
tar -czf "backups/world-$(date +%F-%H%M).tar.gz" world
screen -p 0 -S minecraft -X stuff "save-on$(printf "\r")"
ls -1t backups/world-*.tar.gz | tail -n +8 | xargs -r rm --Сделайте скрипт исполняемым и добавьте его в расписание пользователя minecraft, например каждую ночь в 4:00.
chmod +x /opt/minecraft/backup.sh
chown minecraft:minecraft /opt/minecraft/backup.sh
echo "0 4 * * * /opt/minecraft/backup.sh" | crontab -u minecraft -Мы проверили скрипт и вручную, и по расписанию, оба раза архив появился. Подробнее о расписании рассказано в статье про cron. Копии на этом же сервере не спасут, если пропадёт сам сервер, поэтому время от времени скачивайте архивы к себе или отправляйте их на другой сервер, например командой rsync.
Частые вопросы
Minecraft 26.1 and newer requires running the server with Java 25 or above
Сервер запущен на слишком старой Java. Мы получили это сообщение, когда запустили Paper на Java 17 из стандартного репозитория Debian 12. Установите Java 25, как описано в шаге 1.

Paper сообщает, какая версия Java нужна
You need to agree to the EULA in order to run the server
Не принято лицензионное соглашение. Откройте файл eula.txt в папке сервера и замените eula=false на eula=true.
Вас нет в белом списке этого сервера!
Игрока нет в белом списке. Добавьте его командой whitelist add Ник в консоли сервера. В английской версии игры сообщение звучит как You are not white-listed on this server!
Не удаётся подключиться, время ожидания истекло
- Проверьте, что сервер запущен, командой
systemctl status minecraft. - Проверьте, что порт 25565 открыт в брандмауэре, командой
ufw status. - Проверьте сервер на сайте mcsrvstat.us. Если он там виден, проблема на стороне игрока.
FAILED TO BIND TO PORT
Порт уже занят. Чаще всего это значит, что сервер уже запущен, например службой systemd, а вы запускаете второй вручную. Мы получили эту ошибку именно так. Остановите лишнюю копию или укажите другой порт в server-port.
Клиент несовместим! Используйте 26.3
Версия игры у игрока не совпадает с версией сервера. Выберите в лаунчере ту же версию, что указана в сообщении.
Наши ресурсы
Telegram-канал: https://t.me/f3cloud_news
Официальный сайт: https://f3cloud.com