Установка сервера 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 <ник> в консоли сервера.
Полезные ссылки
- Официальная страница загрузок сервера
- Wiki Minecraft: server.properties
- PaperMC — производительный форк сервера