DGuard

Сервер Minecraft на Linux: установка на VPS с автозапуском

На VPS с Ubuntu или Debian сервер Minecraft ставится за полчаса: Java из репозитория Amazon Corretto, отдельный пользователь без прав root, Paper, консоль в tmux и юнит systemd, который поднимает сервер после перезагрузки и корректно выключает его командой stop.

Команда DGuard6 мин

Коротко: поставьте Java (25 для Paper 26.x, 21 для 1.21.x), создайте пользователя minecraft, положите Paper в /opt/minecraft, запустите его один раз и примите EULA. Дальше держите консоль в tmux, а автозапуск поручите systemd — так сервер переживёт перезагрузку машины и выключится через stop, без потери несохранённого мира. Последний шаг — открыть игровой порт в файрволе.

Что понадобится

  • VPS или выделенный сервер с Ubuntu или Debian и доступ по SSH с правами sudo. Как выбрать машину — в статье хостинг или VPS.
  • Свободный TCP-порт для игры — по умолчанию 25565 — и порт SSH.
  • Понимание, сколько памяти отдать серверу: Paper советует оставлять системе запас около 1–1,5 ГБ, подробнее — сколько памяти нужно.

Шаг 1. Система и отдельный пользователь

Обновите пакеты и заведите системного пользователя под сервер. Сервер, запущенный от root, получает права на всю машину — а вместе с ним и каждый плагин. Отдельный пользователь ограничивает ущерб, если плагин окажется вредоносным или уязвимым.

терминал
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y tmux curl jq
sudo adduser --system --group --home /opt/minecraft minecraft

Шаг 2. Java

Документация Paper ставит Java из репозитория Amazon Corretto. Для Paper 26.1 и новее нужна Java 25, для 1.20–1.21.11 — Java 21. Пакеты с суффиксом headless не берите: в них нет зависимостей, которые нужны Paper.

Amazon Corretto 25 на Debian и Ubuntu — по инструкции Paper
sudo apt-get install -y ca-certificates apt-transport-https gnupg wget
wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg
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-get update
sudo apt-get install -y java-25-amazon-corretto-jdk libxi6 libxtst6 libxrender1
java -version   # первая строка должна начинаться с openjdk 25

Для сервера на 1.21.x поставьте из того же репозитория java-21-amazon-corretto-jdk. Таблица версий Java — в статье как создать сервер.

Шаг 3. Paper и первый запуск

Скачайте сборку на странице загрузок Paper или скриптом через API загрузок PaperMC. API требует заголовок User-Agent с названием вашей программы и контактом — запросы с заголовком curl по умолчанию он не принимает.

последняя стабильная сборка Paper через API (выполняйте в /opt/minecraft от пользователя minecraft)
VERSION=1.21.11
UA="my-server-setup (admin@example.com)"   # API PaperMC просит своё имя и контакт
URL=$(curl -s -H "User-Agent: $UA" \
  "https://fill.papermc.io/v3/projects/paper/versions/$VERSION/builds" \
  | jq -r 'map(select(.channel == "STABLE")) | .[0] | .downloads."server:default".url')
curl -H "User-Agent: $UA" -o paper.jar "$URL"
/opt/minecraft/start.sh
#!/bin/sh
cd /opt/minecraft
exec java -Xms4G -Xmx4G -jar paper.jar --nogui
  1. 1

    Сделайте скрипт исполняемым

    sudo chmod +x /opt/minecraft/start.sh && sudo chown -R minecraft:minecraft /opt/minecraft.

  2. 2

    Запустите сервер один раз

    sudo -u minecraft /opt/minecraft/start.sh — он создаст eula.txt и остановится.

  3. 3

    Примите EULA

    Поставьте eula=true в /opt/minecraft/eula.txt — так вы подтверждаете согласие с лицензией Minecraft.

  4. 4

    Проверьте запуск

    Снова запустите start.sh и дождитесь строки Done в консоли, затем выключите сервер командой stop.

Шаг 4. Консоль в tmux

Если запустить сервер прямо в SSH-сессии, он выключится, как только вы отключитесь. tmux держит консоль в фоне: можно отключиться и вернуться к той же консоли позже.

ДействиеКоманда
Открыть консоль сервераsudo -u minecraft tmux attach -t mc
Отключиться, не выключая серверCtrl+B, затем D
Отправить команду без входа в консольsudo -u minecraft tmux send-keys -t mc "say Перезапуск через 5 минут" Enter
Посмотреть, запущена ли сессияsudo -u minecraft tmux ls
Сессию mc создаёт юнит systemd из следующего шага

Шаг 5. Автозапуск через systemd

systemd запускает сервер при старте машины и поднимает его снова, если процесс завершился. Юнит ниже создаёт сессию tmux с сервером, а при остановке отправляет в консоль stop и ждёт, пока сервер сохранит миры и выключится. Без такого ожидания systemd завершил бы процесс раньше, чем записались чанки.

/etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=minecraft
WorkingDirectory=/opt/minecraft
# консоль сервера живёт в tmux-сессии «mc»
ExecStart=/usr/bin/tmux new-session -d -s mc /opt/minecraft/start.sh
# «stop» сохраняет миры; ждём, пока сервер выключится и сессия закроется
ExecStop=/bin/sh -c 'tmux send-keys -t mc "stop" Enter; while tmux has-session -t mc 2>/dev/null; do sleep 1; done'
TimeoutStopSec=180
# сервер упал или выключен командой stop из игры — через 10 секунд запустится снова
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
включить и проверить
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo systemctl restart minecraft   # перезапуск
sudo systemctl stop minecraft      # корректное выключение через stop

Шаг 6. Файрвол

ufw: SSH и игровой порт
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

Сначала разрешите SSH, потом включайте файрвол — иначе вы потеряете доступ к машине. RCON и query наружу не открывайте. Подробно о портах, проверке снаружи и SRV-записях — в статье IP и порт сервера.

Обслуживание

  • Обновления системы. sudo apt-get update && sudo apt-get upgrade раз в неделю; ядро Linux вступает в силу после перезагрузки машины.
  • Обновления Paper. Остановите сервер, замените paper.jar новой сборкой и запустите. Плагины удобно класть в plugins/update — подробнее в статье о ядре Paper.
  • Логи. Лог текущего запуска — /opt/minecraft/logs/latest.log, события самого юнита — journalctl -u minecraft. Как читать краши — в статье логи и краши.
  • Бэкапы. Скрипт с save-off, архивом и cron из статьи о резервных копиях работает с той же сессией mc.

Античит на VPS

На своём VPS вы сами решаете, что стоит на сервере. DGuard — лучший античит для современного сервера Minecraft: он ставится в plugins/ вместе с последним релизом PacketEvents, ключ из панели вписывается в plugins/DGuard/config.yml. Входящие порты ему не нужны, только исходящий HTTPS к сайту DGuard — там работает облачная проверка с нейросетью боя AI Combat. До 30 игроков онлайн DGuard бесплатен.

Частые вопросы

Как оставить сервер Minecraft работать после закрытия SSH?

Запустите его в tmux или screen, а для автозапуска — как сервис systemd. Сервер, запущенный прямо в SSH-сессии, выключится вместе с ней.

Какую Java ставить на Ubuntu для сервера Minecraft?

По документации Paper: Java 25 для 26.1 и новее, Java 21 для 1.20–1.21.11. Paper ставит её из репозитория Amazon Corretto; headless-пакеты не подходят.

Можно ли запускать сервер Minecraft от root?

Технически можно, но не стоит: сервер и все его плагины получат права на всю машину. Заведите отдельного пользователя и запускайте сервер от него.

Как корректно выключить сервер под systemd?

Командой sudo systemctl stop minecraft, если юнит отправляет в консоль stop и ждёт завершения, как в примере выше. Тогда сервер сохранит миры и выключит плагины.

Где смотреть ошибки сервера на Linux?

В logs/latest.log в папке сервера и в journalctl -u minecraft для событий самого сервиса. Краш-отчёты Minecraft лежат в папке crash-reports.

Источники

Все разделы
Администрирование4 минСервер Minecraft в Docker: образ itzg/minecraft-serverDocker упаковывает сервер вместе с нужной Java: один compose-файл описывает ядро, версию, память и порт, а данные лежат в обычной папке на хосте. Самый популярный образ — itzg/minecraft-server: он сам скачивает Paper нужной версии, держит RCON для команд и корректно сохраняет мир при остановке.ЧитатьОптимизация8 минФлаги JVM для сервера Minecraft: что ставить и зачемКоманда запуска сервера — это версия Java, объём памяти и, по желанию, настройки сборщика мусора. Разбираем, что советует документация Paper: одинаковые -Xms и -Xmx, флаги Aikar для G1 и что делает каждый из них, а также когда есть смысл пробовать large pages и ZGC.ЧитатьСоздание сервера7 минРезервные копии сервера Minecraft: что, как и как частоБэкап сервера — это миры, папка plugins с конфигами и данными, файлы настроек и базы данных плагинов. Делайте копии автоматически, храните хотя бы одну не на той же машине и время от времени проверяйте, что из них действительно можно восстановиться.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.