← К вики

Установка сервера Minecraft (Java Edition)

Как поднять сервер Minecraft на VPS — Java, eula, systemd и настройка server.properties.

Время: 20 мин · Сложность: ★★☆☆☆

Подходит: ✓ Ubuntu 22.04 · ✓ Debian 12


Краткое описание

Официальный сервер Minecraft (Java Edition) — это обычное Java-приложение, server.jar. Ставится без какого-либо специального ПО: нужен только Java нужной версии и немного памяти под мир. Ниже — установка «ванильного» сервера с автозапуском через systemd, дальше на него можно накатывать Paper, Forge или любые моды тем же способом.

Когда пригодится

  • Вы хотите сервер для себя и друзей, без хостинг-панелей и лишней автоматики
  • Нужно поднять тестовый сервер под конкретную версию игры или набор модов
  • Старый сервер переехал на новый VPS и его нужно поднять с нуля

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

  • VPS с 2+ ГБ RAM (для 5–10 игроков хватает 2 ГБ, для сборки с модами закладывайте 4+ ГБ)
  • Доступ по SSH под root или пользователем с sudo — см. Подключение по SSH
  • Открытый порт 25565/tcp

Пошаговая инструкция

1. Установите Java

Начиная с 1.20.5 требуется Java 21, для более старых версий (1.17–1.20.4) хватит Java 17.

Ubuntu / Debian:

apt update
apt install -y openjdk-21-jre-headless

Проверьте версию:

java -version

2. Создайте пользователя и папку сервера

Запускать игровой сервер от root не стоит — заведите отдельного пользователя:

useradd -m -s /bin/bash minecraft
mkdir -p /opt/minecraft
chown minecraft:minecraft /opt/minecraft

3. Скачайте server.jar

Актуальную ссылку на нужную версию берите на официальной странице загрузок. Пример для конкретной версии:

su - minecraft
cd /opt/minecraft
curl -O https://piston-data.mojang.com/v1/objects/<hash>/server.jar

<hash> каждый раз свой — подставьте ссылку, которую даёт официальная страница для нужной версии.

4. Примите EULA

Без этого сервер откажется стартовать:

echo "eula=true" > eula.txt

5. Настройте server.properties

Первый запуск создаст server.properties — остановите сервер сразу после и отредактируйте файл:

java -Xms1G -Xmx2G -jar server.jar nogui

Дождитесь строки Done в консоли, затем Ctrl+C. Откройте server.properties и поправьте под себя:

server-port=25565
max-players=10
difficulty=normal
white-list=false
motd=Мой сервер Minecraft

6. Заведите systemd-юнит

Создайте /etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar server.jar nogui
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Значения -Xms/-Xmx подберите под RAM сервера — под саму ОС и другие процессы оставляйте минимум 512 МБ – 1 ГБ.

Включите и запустите:

systemctl daemon-reload
systemctl enable --now minecraft

7. Откройте порт

ufw allow 25565/tcp

Подробнее — Настройка UFW или Файрвол на Linux: обзор, если у вас не Ubuntu/Debian.

Проверка результата

  • systemctl status minecraft показывает active (running)
  • В логе видна строка вида Done (X.XXXs)! For help, type "help":
    journalctl -u minecraft -f
    
  • Сервер отвечает на пинг из клиента Minecraft по адресу <IP сервера>:25565

Возможные ошибки

Failed to load properties from file: server.properties — файл ещё не создан или удалён. Запустите сервер один раз вручную (шаг 5), он создаст файл заново.

Сервер стартует и сразу падает без ошибок в логе — чаще всего не хватает памяти. Проверьте free -h и уменьшите -Xmx, либо переносите сервер на VPS с большим объёмом RAM.

Клиент пишет «Connection timed out» — порт 25565 не открыт в файрволе, либо провайдер блокирует входящие. Проверьте ufw status и убедитесь, что порт проброшен именно как tcp.

После апдейта Java сервер не стартует с ошибкой про class file version — версия Java не соответствует версии Minecraft (см. шаг 1). Обновите JRE до нужной мажорной версии.

FAQ

Можно ли поставить Paper/Spigot вместо ванильного сервера? Да, процесс идентичен — просто скачайте paper-*.jar вместо server.jar и укажите его в ExecStart. EULA и systemd-юнит не меняются.

Как сделать автосохранение и бэкапы мира? Игра сама сохраняется по таймеру (команда save-all в консоли). Для бэкапов проще всего архивировать папку мира по cron:

tar -czf /opt/minecraft/backups/world-$(date +%F).tar.gz -C /opt/minecraft world

Как ограничить сервер только по белому списку? Установите white-list=true в server.properties, затем добавляйте игроков командой whitelist add <ник> в консоли сервера.

Полезные ссылки

Следующие статьи

Используем cookie, чтобы сайт работал, и — если разрешите — аналитику: видим, где людям неудобно, и чиним. Рекламных трекеров нет.