MAATRIX GAMES / Блог / Как поднять сервер Minecraft: пошаговая инструкция

Как поднять сервер Minecraft: пошаговая инструкция

MAATRIX GAMES

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

Что нужно для старта: требования к серверу

Minecraft — игра не самая прожорливая, но и не лёгкая, особенно если планируете держать больше 5-10 игроков одновременно или ставить модпаки.

Минимальный набор для ванильного сервера на 2-5 игроков:

  • RAM: от 2 ГБ (это минимум, на котором сервер вообще запустится и не будет падать по OutOfMemory на простых картах)
  • CPU: 2 ядра — Minecraft плохо параллелится, важнее частота ядра, чем их количество
  • Диск: SSD обязательно, от 10-15 ГБ под мир, бэкапы и логи
  • ОС: Linux (Ubuntu/Debian) — стабильнее и дешевле по ресурсам, чем Windows Server, для консольного запуска сервера это оптимальный выбор
  • Java: версия зависит от версии Minecraft — для актуальных релизов нужна Java 21, для более старых сборок (1.16-1.18) может хватать Java 17

Если планируете модпак на Forge/Fabric с десятком тяжёлых модов или сборку на 15+ игроков — закладывайте 4-8 ГБ RAM. Моды едят память не хуже, чем куча игроков, а иногда и больше.

Vanilla или Paper: что ставить

Тут развилка, от которой зависит вся дальнейшая установка.

Vanilla — официальный сервер от Mojang. Плюс: 100% совместимость с любым официальным контентом, никаких сюрпризов. Минус: тяжелее по производительности, нет поддержки плагинов, меньше гибкости в настройке (нельзя, например, точечно отключить механики вроде взрыва криперов от TNT).

Paper — форк ванильного сервера (через ветку Spigot от Bukkit), заточенный под производительность и плагины. На практике для выживания с друзьями или небольшого паблика Paper почти всегда предпочтительнее: он оптимизирует нагрузку на тикрейт, даёт кучу настроек в paper-world-defaults.yml (можно, например, урезать дальность обзора мобов или частоту тика редстоуна) и открывает доступ к экосистеме плагинов — от простых /tpa и защиты территории до полноценных экономик.

Минус Paper — если вы гонитесь за модпаком (Forge/Fabric), он не подходит: плагины Bukkit/Paper и моды Forge — это разные экосистемы, совместить напрямую нельзя (есть гибридные решения вроде Mohist, но это отдельная тема со своими граблями и не для продакшена).

Для этой инструкции берём Paper как самый практичный вариант для старта — команды для Vanilla будут отличаться только именем jar-файла.

Поднять сервер Minecraft за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Скачиваем и запускаем server.jar

Заходим на сервер по SSH и создаём отдельную папку — держать файлы сервера в домашней директории вперемешку с чем-то ещё не стоит.

mkdir -p ~/mc-server && cd ~/mc-server

Проверяем, что Java установлена и какой версии:

java -version

Если Java нет или версия не та — на Ubuntu ставится так (для Java 21):

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

Скачиваем сборку Paper с официального сайта проекта (papermc.io) — там же можно выбрать конкретную версию Minecraft и билд:

wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/latest/downloads/paper-1.21.1-latest.jar -O server.jar

Для Vanilla файл скачивается со страницы minecraft.net/download/server — там прямая ссылка на server.jar под конкретную версию, команда wget аналогичная.

Первый запуск — он же генерирует служебные файлы и сразу упадёт с требованием принять лицензионное соглашение:

java -Xms2G -Xmx2G -jar server.jar nogui

Флаги -Xms и -Xmx задают начальный и максимальный размер кучи Java — стартовое и максимальное выделение памяти под сервер. Выставляйте их одинаковыми (это снижает паузы на изменение размера кучи "на лету") и не выше, чем реально доступно на VPS — если у вас 2 ГБ RAM, не ставьте -Xmx4G, сервер просто не запустится или начнёт валиться в своп.

eula.txt и первичная настройка

После первого запуска в папке появится eula.txt. Открываем его:

nano eula.txt

И меняем строку:

eula=false

на:

eula=true

Это подтверждение, что вы принимаете лицензионное соглашение Mojang — без этого сервер запускаться откажется. Сохраняем (Ctrl+O, Enter, Ctrl+X в nano).

Настройка server.properties

Главный конфиг сервера — server.properties, тоже создаётся при первом запуске. Открываем и правим под себя:

nano server.properties

Основные параметры, на которые стоит обратить внимание:

server-port=25565
motd=Мой первый сервер
max-players=10
gamemode=survival
difficulty=normal
level-name=world
online-mode=true
view-distance=10
simulation-distance=10
white-list=false

Коротко по нестандартным параметрам:

  • online-mode — держите true, если хотите проверку лицензионных аккаунтов через сервера Mojang. false открывает вход пиратским клиентам и вообще без пароля — используйте только если точно понимаете зачем (например, локальный тестовый сервер без внешнего доступа).
  • view-distance / simulation-distance — чем выше, тем больше нагрузка на CPU и RAM. На слабом VPS с 2 ГБ имеет смысл держать 6-8, а не дефолтные 10.
  • white-list — включайте true и заполняйте whitelist.json (или командой /whitelist add ник из консоли сервера), если хотите закрытый список игроков — стандартная практика для приватных серверов с друзьями.

После правки конфига сервер нужно перезапустить, чтобы изменения применились.

Проброс порта и файрвол

Сервер слушает порт 25565/TCP по умолчанию (задаётся параметром server-port). Если у вас VPS с публичным IP (а не домашний ПК за роутером), задача сводится к тому, чтобы открыть этот порт в файрволе ОС.

Для Ubuntu с UFW:

sudo ufw allow 25565/tcp
sudo ufw status

Если используете iptables напрямую:

sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT

Если сервер стоит дома за роутером (не VPS) — дополнительно нужен проброс порта (port forwarding) в настройках самого роутера: пробрасываете внешний 25565 на локальный IP машины с сервером. У VPS этой проблемы обычно нет — весь трафик на публичный IP и так доходит до машины, остаётся только не заблокировать порт файрволом ОС.

Проверить, что сервер виден снаружи, проще всего с телефона на мобильном интернете (не в домашней Wi-Fi сети) — заходите в Minecraft, добавляете сервер по IP:порту и смотрите, откликается ли пинг. Либо через сторонние сервисы проверки открытых портов — вбиваете IP и 25565, смотрите статус.

Автозапуск: systemd и screen

Запускать сервер вручную и держать SSH-сессию открытой — так себе решение: закрыли терминал, сервер упал. Два рабочих варианта.

Screen — быстрый способ без прав на редактирование системных сервисов. Держит процесс в фоновой сессии, к которой можно вернуться в любой момент:

sudo apt install screen -y
screen -S minecraft
java -Xms2G -Xmx2G -jar server.jar nogui

Отсоединиться от сессии, оставив сервер работать: Ctrl+A, затем D. Вернуться обратно:

screen -r minecraft

Минус screen — если сервер (или сама VPS) перезагрузится, процесс нужно поднимать заново руками.

systemd — правильный вариант для боевого сервера: автозапуск при перезагрузке машины, автоматический рестарт при падении, управление через стандартные systemctl start/stop/restart.

Создаём юнит:

sudo nano /etc/systemd/system/minecraft.service

Содержимое:

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

[Service]
WorkingDirectory=/home/youruser/mc-server
ExecStart=/usr/bin/java -Xms2G -Xmx2G -jar server.jar nogui
User=youruser
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Замените /home/youruser/mc-server и User=youruser на реальные путь и имя пользователя, под которым крутится сервер. Дальше:

sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft

Смотреть логи и статус:

sudo systemctl status minecraft
sudo journalctl -u minecraft -f

Важный нюанс с systemd и Minecraft-сервером: консоль сервера принимает команды через stdin, а юнит systemd такого доступа не даёт напрямую. Для отправки команд в запущенный через systemd сервер (/save-all, /stop, бан игрока) обычно ставят RCON — он включается в server.properties (enable-rcon=true, rcon.password=..., rcon.port=25575) и позволяет слать команды удалённо через отдельный RCON-клиент, не трогая консоль напрямую.

Поднять сервер Minecraft за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

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

Сервер запускается, но игроки не могут подключиться — в чём дело?

В 90% случаев это порт: либо не открыт в файрволе VPS, либо (если сервер домашний) не пробросен на роутере. Проверьте sudo ufw status и убедитесь, что 25565/tcp разрешён.

Сколько RAM реально нужно на 10-15 игроков?

Для ванильного или Paper-сервера без тяжёлых модов обычно достаточно 4 ГБ с запасом. Модпаки на Forge/Fabric с десятками модов могут требовать 6-8 ГБ даже на небольшое число игроков — моды нагружают память сильнее, чем сами игроки.

Можно ли поменять версию Minecraft на уже существующем мире?

Обновиться на более новую версию обычно можно (сервер сам конвертирует чанки при первом запуске), но обязательно сделайте бэкап папки мира перед этим. Откатиться на более старую версию с уже сгенерированными новыми чанками, как правило, нельзя — формат мира вперёд совместим, назад нет.

Как часто делать бэкапы мира?

Минимум раз в сутки — простым скриптом с копированием папки world (или трёх папок world, world_nether, world_the_end) в архив с датой в имени. Перед копированием стоит выполнить /save-off и /save-all в консоли, чтобы не поймать файл в момент записи, а после бэкапа — /save-on.

Нужен ли постоянно включённый ПК, если сервер на VPS?

Нет, в этом и смысл VPS — сервер живёт на арендованной машине в дата-центре и работает 24/7 независимо от того, включён ли ваш домашний компьютер.