Собственный сервер Minecraft на VDS даёт полный контроль над миром и модами, в отличие от готового хостинга под игру: свой IP, свои плагины, свои правила доступа. Плата за эту свободу — настройку и расчёт ресурсов приходится делать самостоятельно. Разбираем, сколько ядер и памяти закладывать, как установить сервер и что сделать с сетью, чтобы его не положили чужие подключения.
Сколько ресурсов нужно серверу Minecraft
Сервер Minecraft на Java почти целиком зависит от объёма оперативной памяти, выделенной процессу Java, и от частоты процессора на одном ядре — игра плохо распределяет нагрузку между ядрами, поэтому гнаться за их числом менее важно, чем за частотой. Подбор процессора по архитектуре и частоте разобран в статье про выбор процессора для сервера.
Диск влияет меньше, но SSD заметно сокращает время генерации новых участков карты по сравнению с HDD, особенно если игроки активно исследуют мир и сервер постоянно дозагружает новые чанки.
Установка сервера на VDS
На Linux сервер Minecraft запускается как обычный Java-процесс: достаточно установить Java нужной версии, скачать файл сервера и запустить его с ограничением памяти через флаги -Xms и -Xmx. Запуск внутри screen или systemd-сервиса даёт серверу работать после отключения от SSH-сессии.
# Запуск сервера Minecraft с лимитом памяти 4 ГБ
java -Xms2G -Xmx4G -jar server.jar nogui
Сколько игроков потянет сервер
Ориентировочная зависимость числа одновременных игроков от объёма памяти и установленных модов или плагинов выглядит так — точные цифры зависят от конкретных модов и настроек прогрузки чанков:
- 2–4 ГБ памяти — ванильный сервер без модов, до 5 игроков.
- 4–6 ГБ памяти — сервер с несколькими плагинами, до 15 игроков.
- 6–8 ГБ памяти — сборка модов среднего веса, до 15 игроков с запасом.
- 8–12 ГБ памяти — несколько миров или крупная сборка модов, до 30 игроков.
- Выше 12 ГБ памяти — сборки с тяжёлой генерацией мира или большим числом плагинов одновременно.
Сеть, порты и защита от чужих подключений
Сервер Minecraft по умолчанию слушает порт 25565, и этот порт должен быть открыт в файрволе VDS, иначе игроки просто не подключатся. Открывать его стоит только для нужного протокола, а всё остальное входящее на сервере лучше закрыть по умолчанию.
Пошаговая настройка правил файрвола с нуля, включая то, как ограничить число подключений с одного адреса против простейших DDoS-попыток, разобрана в статье про настройку iptables.
Мониторинг нагрузки и что делать при лагах
Лаги на стороне сервера почти всегда сводятся к одной из трёх причин: не хватает памяти под текущее число загруженных чанков, процессор не успевает считать тики из-за частоты ниже нужной, или диск не успевает записывать автосохранения мира. Разделить эти причины помогает мониторинг ресурсов в реальном времени, а не догадки по ощущениям игроков.
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Задержка при движении игроков | не хватает частоты CPU на тик | загрузку одного ядра |
| Сервер зависает при автосохранении | медленный диск | время записи файла мира |
| Память стабильно под 100% | не хватает ОЗУ под чанки | лимит -Xmx и число игроков |
| Лаги только у части игроков | сетевая задержка, не сервер | пинг до сервера |
Как настроить сбор этих метрик и алерты до того, как сервер упрётся в лимит, описано в статье про мониторинг ресурсов VDS.
Частые вопросы
Сколько ОЗУ выделять серверу, а не всей системе?
Флагу -Xmx стоит отдавать заметно меньше, чем весь объём ОЗУ сервера — операционной системе и фоновым процессам нужен свой запас. Если на VDS 4 ГБ памяти, под -Xmx разумно оставить около 3 ГБ, а не все 4.
Можно ли ставить моды и плагины без перезапуска сервера?
Для большинства плагинов на платформах вроде Paper перезапуск не обязателен — часть систем перечитывает конфигурацию на лету. Для модов на Forge или Fabric перезапуск почти всегда нужен, потому что мод меняет код, который загружается только при старте процесса.
Нужен ли отдельный VDS под каждый мир сервера?
Нет, несколько миров обычно работают как отдельные процессы Java на одном VDS, если памяти и процессора хватает на все одновременно. Отдельный VDS имеет смысл, когда суммарная нагрузка миров превышает то, что даёт один тариф, или когда миры должны быть физически изолированы друг от друга.