Оптимизация сервера Майнкрафт (Minecraft)

Оптимизация сервера Minecraft

Тирекс
Тирекс Самый зубастый автор
9 июля 2024

Разбираем, как правильно настроить сервер Minecraft, чтобы он работал стабильно, быстро и безопасно.

Изображение записи

В тексте расскажем, как выбрать подходящего провайдера, оптимизировать конфигурации, настроить защиту от уязвимостей и добиться стабильности в долгосрочной перспективе.

Основные виды ядер для серверов в Minecraft

Перед запуском Minecraft-сервера важно выбрать подходящее ядро — основу сервера, от которой зависят возможности оптимизации и использования модифицирующего софта. Рассмотрим наиболее популярные ядра, их преимущества и особенности.

Vanilla

Vanilla — стандартное ядро Minecraft для любительских серверов. В нем нет поддержки плагинов и модов, а оптимизация оставляет желать лучшего. Чаще всего его используют разработчики для создания форков — например, Spigot, Paper и Purpur, о которых поговорим далее.

Bukkit

Bukkit — один из первых форков ядра Vanilla. В свое время он значительно расширил возможности игры благодаря поддержке плагинов и модификаций (модов). Bukkit позволяет добавлять в игру новые блоки и выполнять различные действия, недоступные классическому «ванильному» ПО. Помимо прочего, форк требует значительно меньше памяти, чем Vanilla.

Однако сегодня проект — лишь важный элемент истории развития Minecraft-серверов. С 2014 года команда Bukkit распалась, а большинство разработчиков перешли в Mojang Studios. Форк устарел, больше не развивается и обладает проблемами с производительностью, поэтому рекомендуем обратить внимание на другие решения.

Spigot

Разработчики Spigot взяли за основу ядро Bukkit и изначально развивали проект для улучшения надежности и производительности серверов. Одним из его главных преимуществ стал API, который значительно упростил жизнь разработчикам плагинов и позволил им взаимодействовать с игровым миром.

Хотя Spigot унаследовал поддержку всех плагинов Bukkit, он обратно несовместим с оригинальным ядром. В 2014 году Git-репозиторий Spigot был заблокирован из-за претензий по закону об авторском праве в цифровую эпоху (DMCA), что сделало невозможным скачивание исходников. 

Однако сообщество нашло решение: инструмент BuildTools, который позволяет пользователям компилировать Spigot, CraftBukkit и Bukkit самостоятельно, обходя запрет DMCA. Сегодня же Spigot — не лучший инструмент, так как в нем можно встретить много багов, а разработчики перестали следить за проблемами оптимизации. 

Paper

Казалось бы, Spigot — идеальное решение, однако энтузиастам оказалось мало и его. Так появился Paper — форк Spigot «на стероидах». На странице проекта разработчики описали его главную особенность фразой «Built to perform» — действительно, Paper работает ощутимо быстрее благодаря улучшенной оптимизации. Сегодня это одно из популярнейших ядер.

Преимущества Paper

  • API, совместимое со Spigot: плагины для этого ядра работают без изменений и на Paper.
  • Развитое комьюнити оперативно решает технические вопросы.
  • Ядро можно запустить всего одной командой: java -jar paper.jar —nogui. Подробнее о старте работы с Paper можно узнать в официальной документации.
  • Совместимость с плагинами от Spigot — они работают без проблем, хотя официальной поддержки нет. Соответственно, миграция со Spigot на Paper будет максимально плавной.
Скриншот страницы проекта Paper.
Скриншот официальной страницы проекта Paper.

Purpur

Purpur — ядро на основе Paper с фокусом на глубокой настройке и оптимизации. С его помощью разработчики могут детально конфигурировать серверы на свой вкус. Помимо прочего, Purpur поддерживает плагины, разработанные для API Bukkit, Spigot и Paper. 

Однако ключевая особенность Purpur — это меньшая популярность относительно Paper. Из-за этого поддержка может быть не такой оперативной, а развертывание обновлений занимать больше времени, так как прежде нужно будет обновить Paper.

Зачем оптимизировать сервер в Minecraft

Что такое оптимизация

Оптимизация Minecraft-сервера — это настройка параметров и дополнительных процессов для снижения нагрузки на оборудование. Она включает изменения в конфигурационных файлах, предварительную генерацию мира, тщательный подбор плагинов и другие меры, которые помогают серверу работать быстрее и стабильнее.

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

Ключевые преимущества оптимизации

Увеличение положительного игрового опыта игроков. Подвисания сервера во время работы и большой нагрузки скажутся на игровом опыте пользователей. Оптимизация нагрузки позволит уменьшить количество лагов и ускорить работу сервера.

Увеличение производительности хоста. Благодаря оптимизации сервера можно снизить нагрузку на хост, а следовательно увеличить его максимальную производительность.

Выбираем оптимальную конфигурацию сервера

Ядра сервера 

Основной тезис, о котором важно помнить: большая часть обработки игрового мира протекает на одном вычислительном ядре сервера. Причина этому — неидеальная реализация многопоточности. К сожалению, вы не сможете на это повлиять — так устроена архитектура приложения. 

При аренде сервера советуем в первую очередь обращать внимание не на количество ядер, а на тактовую частоту. Чем она выше, тем лучшую производительность Minecraft-сервера вы получите.

Оперативная память

Другой важный параметр — объем оперативной памяти. Запас ОЗУ обязателен, но выделять слишком много — тоже ошибка, которая приведет к лишним тратам. Тут рекомендуем исходить из следующих показателей:

  • примерное планируемое количество игроков,
  • количество миров на сервере,
  • размер каждого мира.

Помимо прочего, следует помнить, что запас оперативной памяти всегда нужен Java-приложению. Если вы рассчитываете на потребление памяти в 8 ГБ, то фактически лучше брать 12 ГБ, чтобы избежать лагов и вылетов. Здесь нет универсального соотношения запаса к потребляемому ресурсу, так что исходите из ваших уникальных параметров сервера.

Как рассчитать стоимость

Узнать стоимость произвольной конфигурации сервера можно в калькуляторе ресурсов. В нем вы можете выбрать локацию, размер и количество дисков. А также сконфигурировать ОЗУ, vCPU и рассчитать дополнительные услуги — например, резервное копирование. 

Скриншот страницы калькулятора.
Интерфейс калькулятора ресурсов.

В отдельной статье мы рассмотрели основные шаги, необходимые для создания сервера Minecraft и его бэкапирования. Помимо прочего, в ней вы найдете полезные советы и рекомендации для создания стабильной и безопасной игровой среды.

Основные проблемы производительности

Сервер Minecraft — это сложная система, а его производительность зависит от множества факторов. Разберем ключевые показатели, которые влияют на скорость работы оборудования и комфорт игроков.

Пинг (ping)

Пинг — это время отклика сервера, то есть время, за которое данные передаются от клиента к серверу и обратно. Чем ниже показатель, тем быстрее происходит реагирование сервера на действия пользователя.

Пинг может зависеть от нескольких факторов:

  • физической удаленности сервера от пользователя, 
  • нагрузки на сеть, 
  • пропускной способности канала.

Соответственно, снизить пинг можно с помощью смены локации сервера (если игроки находятся далеко от текущего) и/или оптимизации нагрузки. Помимо прочего, важно использовать решения от надежного провайдера инфраструктуры.

Лаги

Лаги — это задержки в обработке данных, когда игра реагирует на действия с опозданием. Лаги бывают двух типов: серверными и клиентскими. 

Клиентские лаги зависят от мощности компьютера игрока. Устранить или уменьшить их можно обновлением железа, упрощением параметров графики или установкой оптимизирующих модификаций — например, OptiFine.

Настройки графики с модификацией OptiFine.
Настройки графики с модификацией OptiFine.

Серверные лаги вызывает перегрузка сервера. Решение — оптимизация конфигурации, уменьшение нагрузки от плагинов или увеличение ресурсов серверного оборудования.

Нехватка оперативной памяти

Minecraft активно использует ОЗУ для загрузки чанков, обработки мобов и выполнения плагинов. Недостаток памяти ведет к лагам и «крашам» сервера. Нехватку ОЗУ можно решить настройкой флагов запуска сервера, о чем расскажем далее, или увеличением объема оперативной памяти на сервере.

Прогрузка чанков (chunks)

Чанк — территория размером 16×16 блоков на поверхности и 384 в глубину (или 256 в старых версиях), которую генерирует сервер. Чтобы избежать лагов при подгрузке новых чанков, можно сгенерировать их заранее или настроить радиус загрузки, о чем расскажем далее. 

Чанк размером 16х16x384 блоков.
Визуализация чанка размером 16х16×384 блоков.

Количество мобов

Количество мобов напрямую влияет на производительность Minecraft-сервера. Каждая сущность требует вычислительных ресурсов для обработки своей логики, перемещения и взаимодействия с окружающей средой. Чем больше мобов одновременно загружено в мире, тем выше нагрузка на процессор и оперативную память сервера. Далее расскажем об ограничении количества мобов и других параметрах для оптимизации.

Примеры мобов в Minecraft.
Примеры мобов в Minecraft. Источник.

Как оптимизировать сервер Minecraft

Чтобы сервер работал стабильно и без лагов, важно правильно его настроить. Оптимизация проходит поэтапно: сначала настраиваем параметры запуска, затем редактируем конфигурационные файлы и, наконец, работаем с чанками. Остановимся на каждом шаге подробнее.

Настройка запуска сервера

Настройку запуска можно разделить на несколько этапов: конфигурирование файла запуска и настройка сервера после запуска.

Использование флагов запуска Java

Для настройки флагов запуска Java есть онлайн-сервис, который предоставляет оптимизационные аргументы командной. Готовый файл для запуска сервера можно получить в несколько простых шагов.

1. Укажите в поле Filename — имя файла ядра сервера. 

2. Выделите объем оперативной памяти в поле Memory. Чаще всего серверу отводят почти всю доступную на хосте ОЗУ, оставляя 512 МБ – 1 ГБ для работы системы.

3. Скопируйте код из поля Result в файл start.sh на сервере.

Интерфейс сервиса flags.sh.
Скриншот сайта flags.sh.

Инструменты для отслеживания нагрузки на сервер

Чтобы определить причины перегрузки сервера, важно использовать инструменты мониторинга. Раньше для оценки производительности использовали команду /timings, но сейчас есть более удобные и продвинутые инструменты — например, плагин Spark.

Поиск причины лагов с помощью плагина Spark

Шаг 1. Используйте команду /spark tickmonitor, чтобы отследить задержки. Она анализирует длительность тиков и сообщает в чат, если время выполнения превышает заданный порог. По умолчанию значение параметра — 100% — это значит, что тик занял в два раза больше времени, чем в среднем.

Игровой тик — чаще всего несколько десятков миллисекунд реального времени. С каждым тиком происходит симуляция игровых подсистем вперед.

Помимо прочего, вы можете указать порог как абсолютную длительность тика. Например, введите следующую команду, чтобы получать уведомления о тиках длиннее 50 миллисекунд:


    /spark tickmonitor --threshold-tick 50

Если лаги заметны в игре, сопоставьте их частоту с результатами мониторинга. Если вывод недостаточно чувствителен — попробуйте снизить порог, например, до 70:


    /spark tickmonitor --threshold-tick 70
Выполнение команды /spark tickmonitor.
Отображение команды /spark tickmonitor.

Шаг 2. Используйте команду /spark profiler --only-ticks-over, чтобы найти причину лагов. Аргумент --only-ticks-over означает, что плагин будет фильтровать только тики, которые длятся дольше заданного порога. Так мы исключим «нормальные» игровые процессы и оставим только тики, о которых стоит беспокоиться.

Рекомендуемый порог — от 50 до 100 миллисекунд, но он должен быть ниже, чем длительность «лагающих» тиков. Пример: при использовании прошлой команды время запаздывающих действий превышало 300 миллисекунд. Чтобы включить их, нужно использовать более низкий порог в 150 миллисекунд:


    /spark profiler --only-ticks-over 150

Так мы запустим новый профилировщик, но в него будут включены только образцы из тиков, на выполнение которых ушло более 150 миллисекунд. После завершения откроем Viewer и просмотрим профиль в обычном режиме:

Мониторинг задержек.
Выявленные задержки.

TPS и MSPT

Команда /spark tps показывает TPS (тики в секунду) и MSPT (миллисекунды на тик) сервера. Эти метрики — основной способ проанализировать работу игры. Они помогают оценить, сколько тиков происходит и сколько времени они занимают в среднем.

TPS (тики в секунду)

Метрика TPS показывает, сколько тиков в среднем обрабатывает сервер каждую секунду. Для игры без лагов максимальное значение — 20 TPS. Чтобы достичь этого, в среднем каждый тик должен составлять 50 миллисекунд или меньше.

Схематичное отображение тиков разной длинны.
16 TPS. Некоторые тики заняли более 50 миллисекунд, и только 16 тиков были завершены в течение секунды.

Примеры значений TPS

  • 20 — максимальное значение для любого сервера.
  • 19-19,99 — значение в пределах нормы, лаги не заметны.
  • 17-18,99 — могут появляться задержки.
  • 15-16,99 — заметны лаги и некорректная работа игровых механик, нужно проверить нагрузку.
  • 10-14,99 — практически неиграбельные показатели, которые требуют оптимизации сервера и/или увеличения производительности хоста.
  • Менее 10 TPS на постоянной основе — значения, при которых целесообразно пересмотреть конфигурацию и создать сервер заново.

MSPT (миллисекунды на тик)

Метрика MSPT (Milliseconds Per Tick) показывает, сколько миллисекунд в среднем уходит у сервера на обработку каждого тика. Оптимальное значение для игры без лагов — 50 MSPT и меньше.

Схематичное отображение тиков разной длинны.
16 TPS. На рисунке видно, как каждый тик меняет продолжительность.

Согласно отчету, самый быстрый тик занял всего 20 миллисекунд, поэтому spark сообщит о нем как о min MSPT. Самый медленный тик на 100 миллисекунд spark идентифицирует как max MSPT.

Конфигурационные файлы

Разберемся в ключевых конфигурационных файлах: 

  • server.properties, 
  • bukkit.yml,
  • spigot.yml, 
  • purpur.yml, 
  • pufferfish.yml.

server.properties

Файл server.properties содержит основные настройки сервера — например, количество игроков, параметры сжатия сети, максимальное время обработки тика. От правильной настройки server.properties зависит нагрузка на сервер, так как параметры view-distance и simulation-distance сильно влияют на производительность. Рассмотрим основные параметры.

enable-command-block (true / false) — определяет статус командных блоков. Рекомендуем оставить выключенным (значение false).

network-compression-threshold (128 / 256 / 512 / -1 / 0) — определяет минимальный размер пакета, начиная с которого применяется сжатие. Например, при значении 256 будут сжиматься пакеты от 256 байт и больше. Однако важно понимать, что сжатие пакетов снижает нагрузку на сеть, но увеличивает нагрузку на процессор. Рекомендуем включать его, если у игроков слабое интернет-соединение или сетевой канал перегружен. 

Важно! Спецификация Ethernet требует, чтобы пакеты размером менее 64 байт сжимались до 64 байт. Таким образом, установка значения меньше 64 может оказаться бесполезной. Если сервер работает через прокси, например BungeeCord или Velocity, параметр лучше отключить (значение -1).

max-tick-time (-1 или от 0 до 263 — 1) — максимальное время обработки одного тика. Если тик превышает установленное значение, сервер автоматически завершает работу (System.exit(1)). Значение -1 отключает ограничение. При разработке сервера рекомендуется использовать значение по умолчанию, а после запуска снизить до 30 000.

max-players — от 1 до 2147483647 — максимальное количество игроков на сервере. Если сервер рассчитан на небольшую группу, достаточно 10-20 слотов. Для крупных проектов можно установить 100-300, но важно учитывать нагрузку. Высокие значения увеличивают риск бот-атак, что может снизить TPS. При увеличении параметра важно помнить о соответствующих мерах защиты.

view-distance (5–32) — радиус загружаемых чанков вокруг игрока. Рекомендуемые значения: 5-8 для больших серверов и 8-16 для небольших. Однако оптимальные значения зависят от мощности сервера и лучше высчитывать их самостоятельно.

simulation-distance (5–32) — максимальное расстояние от игроков, на котором могут находиться живые существа, чтобы сервер их обновлял. Рекомендуемое значение — 5.

bukkit.yml

bukkit.yml — один из ключевых конфигурационных файлов. Он отвечает за настройки спавна мобов и игровых сущностей, что влияет на производительность и стабильность сервера. Помимо прочего, файл позволяет контролировать количество мобов, их типы и частоту появления, отключать генерацию мира Края, а также скрыть отображение установленных плагинов по протоколу query.

Настройка спавна мобов

Общие настройки

query-plugins: false — отключает просмотр установленных плагинов через протокол query. По умолчанию включено, но лучше отключить для повышения безопасности.

Настройки спавна мобов

spawn-limits — указывает, сколько мобов может одновременно находиться на сервере.


    spawn-limits:
  monsters: 20  # Враждебные мобы (монстры)
  animals: 10   # Животные
  water-animals: 3  # Водные существа
  water-ambient: 3  # Рыбы
  water-underground-creatures: 2  # Светящиеся спруты
  axolotls: 3  # Аксолотли
  ambient: 2  # Общие окружающие мобы

Частота спавна существ 

ticks-per — определяет, через сколько тиков сервер будет пытаться заспавнить новых мобов.


    ticks-per:
  monster-spawns: 10  # Враждебные мобы
  animal-spawns: 400  # Животные
  water-spawns: 400  # Водные существа (дельфины)
  water-ambient-spawns: 400  # Рыбы
  water-underground-creature-spawns: 400  # Светящиеся спруты
  axolotl-spawns: 400  # Аксолотли
  ambient-spawns: 400  # Общие окружающие мобы

spigot.yml

Файл spigot.yml включает настройки обработки плагинов, сжатия, производительности и механиками игры. Его часто используют для оптимизации на высоком уровне. Рассмотрим несколько ключевых параметров. 

Настройки мира (world-settings)


    world-settings:
  default:
	simulation-distance: default # Максимальное расстояние от игроков, на котором могут находиться живые существа, чтобы сервер их обновлял. Рекомендуем оставить по умолчанию

	view-distance: default # Радиус загружаемых чанков вокруг игрока. Рекомендуем оставить по умолчанию

Объединение предметов и опыта (merge-radius)

Параметр merge-radius управляет расстоянием, на котором предметы и сферы опыта сливаются друг с другом. С его помощью можно уменьшить количество сущностей на поверхности и снизить нагрузку на сервер.


    merge-radius:
  exp: 4  # Радиус слияния сфер опыта
  item: 3.5  # Радиус слияния предметов

Слишком высокие значения могут привести к визуальному исчезновению предметов, поломке ферм и телепортации предметов через блоки.

Настройки воронок (ticks-per)

Параметр ticks-per определяет задержку в тиках перед перемещением или проверкой предметов в воронках. 


    ticks-per:
  hopper-transfer: 8  # Интервал перемещения предметов (в тиках)
  hopper-check: 8  # Интервал проверки наличия предмета над воронкой (в тиках)

paper.yml

В новейших версиях файл paper.yml не актуален. Его заменил файл paper-world-defaults.yml в папке config, настройку которого рассмотрим далее в тексте.

purpur.yml

purpur.yml — дополнительный файл конфигурации для сервера, который включает нестандартные улучшения. 


    use-alternate-keepalive: true  

Этот параметр изменяет поведение KeepAlive ping и отправляет пинг раз в секунду. Отключение игрока по «таймауту» происходит только если в течение 30 секунд не было ответа ни на один KeepAlive-пакет.

pufferfish.yml

Файл pufferfish.yml предназначен для расширенной оптимизации производительности Pufferfish-сервера. Помимо прочего, с его помощью можно регулировать обработку летящих объектов, таких как стрелы и трезубцы, снижая нагрузку. Воспользуемся параметром, который запрещает использование книг на сервере:


    enable-books: false # Отключение использования книг.

Запрещать книги на сервере нужно для предотвращения крашей и защиты от вредоносного контента.

Прогрузка карты (чанков)

Прогрузка карты — это процесс загрузки чанков мира, который помогает улучшить производительность сервера и предотвратить лаги, связанные с загрузкой нового контента. Этот процесс можно разделить на два этапа: предварительную генерацию карты и управление чанками во время работы сервера.

Предварительная генерация карты

Для предварительной генерации чанков рекомендуем установить плагин Chunky. При этом лучше всего проводить операцию на ядре Purpur

Пример генерации мира радиусом 1 000 блоков:


    chunky radius 1000 # Устанавливаем радиус прогрузки

chunky start # Запускаем процесс прогрузки чанков

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

Скриншот консоли.
Ответ консоли на прописанные команды.

Управление чанками

Основные настройки чанков на сервере можно задать в конфигурационном файле server.properties, который мы рассмотрели ранее. Важно помнить, что фермы животных или сложные механизмы в игре могут значительно снизить производительность сервера.

Плагины оптимизации

Рассмотрим популярные плагины для оптимизации производительности.

ClearLagg

ClearLagg — плагин для оптимизации Minecraft-серверов, который удаляет лишние предметы, ограничивает спавн мобов и оптимизирует работу чанков.

Основные команды плагина:

  • lagg killmobs — удалить всех мобов;
  • lagg clear — удалить все предметы с земли.

Дополнительные настройки ClearLagg можно найти в файле config.yml.

VillagerOptimiser

Плагин VillagerOptimiser оптимизирует работу жителей (Villagers) при их большом количестве, снижая нагрузку на процессор. Работает на версиях Minecraft-серверов с 1.14.2 по 1.16.5.

Новые версии Minecraft (1.17+) не поддерживают плагин, так как его функции заменили встроенные оптимизации в современных версиях сервера.

Другие полезные плагины

  • LagAssist (для версий Minecraft от 1.8) — автоматическая очистка мобов и предметов по таймеру.
  • Spark (для версий Minecraft от 1.8) — анализ нагрузки и выявление слабых мест в работе сервера.

Какие плагины лучше не использовать

Не рекомендуем устанавливать пиратские и взломанные плагины — они могут содержать вирусы, бэкдоры и уязвимости, через которые злоумышленники получат доступ к серверу. Также избегайте скачивания плагинов из подозрительных источников и используйте проверенные площадки.

Фиксы багов и эксплоитов

Защиту от багов и эксплоитов можно разделить на два этапа. 

  • Предотвращение уязвимостей — защита от эксплойтов на уровне плагинов и настроек.  
  • Настройка конфигурационных файлов — отключение уязвимых механик в серверных файлах.

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

Для защиты от уязвимостей рекомендуем регулярно проверять актуальность версий плагинов и сервера. Помимо прочего, важно ограничить доступ к функциям плагинов с помощью разграничения прав в LuckPerms (для версий Minecraft от 1.8). Так обычные игроки не смогут использовать потенциально опасные для сервера команды.

Настройка конфигурационных файлов для защиты

Приступим к закрытию эксплойтов. Для начала настроим файл paper-world-defaults.yml в папке configs

1. Включим стандартный Anti-Xray, чтобы предотвратить просмотр драгоценных блоков через стены.


    anticheat:
  anti-xray:
	enabled: true

2. Отключим гравитацию для оружейных стоек. Это защитит сервер от «лаг-машин» — сущностей, которые прогружают множество объектов — с механикой перемещения оружейных стоек.


    entities:
  armor-stands:
	do-collision-entity-lookups: false
	tick: false

На этих простых шагах настройка файла paper-world-defaults.yml закончена. Перейдем к файлу paper-global.yml в той же папке configs.

1. Отключим возможные «книжные эксплоиты» — например, эксплоиты дублирования, критические уязвимости и методы перегрузки сервера через создание огромных объемов фрагментированных данных.


    item-validation:
  book-size:
     page-max: 1024
  display-name: 4096
  lore-line: 4096

2. Уменьшим максимальное количество игроков на сервере. Так мы снизим вероятность атак через массовые подключения.


    misc:
    max-joins-per-tick: 2

Эти изменения повышают базовую безопасность сервера, предотвращая самые распространенные уязвимости. 

Выбор сервера и провайдера

Запускать Minecraft-сервер можно на домашнем компьютере или в облаке. Мы воспользуемся облачным сервером — это гибкое решение с доступом к нужным ресурсам. Что выбрать в конкретном случае — услуги провайдера или домашний компьютер — решать вам. Исходите из преимуществ и особенностей каждого.

Облачный сервер

  • Работает бесперебойно, а в случае неполадок можно связаться с технической поддержкой.
  • Обладает бесплатной базовой защитой от DDoS-атак и обеспечивает стабильное интернет-соединение.
  • Не зависит от ресурсов основного компьютера.
  • Обладает открытыми портами и белым IPv4-адресом — то есть требует меньше настроек и дает больше гибкости для безопасности.

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

Локальный сервер на домашнем компьютере 

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

  • Сервер работает, пока включен компьютер и потребляет ресурсы вашего железа. Для иных задач вам придется брать второй ПК или значительно обновлять комплектующие.
  • Для онлайн-игры необходимо открывать порты.
  • Нет защиты от атак на Minecraft-сервер, если вы не позаботитесь об этом дополнительно.

Остановимся на использовании услуг облачного провайдера и рассмотрим, как создать и запустить сервер.

Создание и запуск сервера

1. В панели управления в верхнем меню нажмите Продукты и перейдите в раздел Облачные серверы.

Переход в раздел «Облачные серверы» в панели управления Selectel.

2. Нажмите кнопку Создать сервер

Создание нового сервера.

3. Выберите регион и сегмент пула для сервера. Важно: от сегмента пула зависит список доступных конфигураций и стоимость ресурсов. После создания сервера менять сегмент пула нельзя. Рекомендуем выбрать Москву или Санкт-Петербург.

Настройка имени, региона и пула для облачного сервера.

4. Выберите операционную систему, в нашем случае — Ubuntu 24.04. Конфигурацию для примера возьмем базовую — 2 vCPU и 8 ГБ RAM, а в поле Диски выберем SSD Быстрый на 60 ГБ. Однако советуем исходить из ваших требований, количества плагинов и предполагаемой нагрузки.

Настройка конфигурации облачного сервера.

5. В поле Сеть выберите Приватная подсеть и добавьте новый публичный IP-адрес.

Настройка сети для облачного сервера.

6. Добавьте SSH-ключ в поле Доступ.

Добавление SSH-ключа для сервера.

7. Ознакомьтесь с ценой и нажмите кнопку Создать сервер

Поле со стоимостью обачного сервера.

Сервер готов к использованию! Подробнее о развертывании и бэкапировании мира на сервере мы подробно рассказали в отдельной инструкции

Поддержание стабильности сервера Minecraft

Чтобы сервер работал стабильно и без лагов, важно регулярно обновлять его, делать резервные копии и следить за нагрузкой. Остановимся на каждом шаге подробнее.

Регулярное обновление плагинов и конфигураций

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

Бэкапы

Не забывайте регулярно делать резервные копии. Бэкапы — это ваша страховка на случай сбоя, взлома или ошибки. Лучше хранить их сразу в нескольких местах — в облаке, на локальном диске или внешнем накопителе. Помимо прочего, не будет лишним периодически проверять корректность работы копий

Советы для поддержания сервера на долгосрочной основе

Своевременно обновляйте Java Minecraft-сервер, так как новые версии обеспечивают максимальную безопасность и функциональность. Помните о мониторинге нагрузки и на его основе принимайте решения о расширении или увеличении мощности вашей хост-машины. Дополнительно используйте сервисы для защиты от DDoS-атак.

Заключение

Соблюдая рекомендации, вы получите стабильный и быстрый сервер Minecraft. Главное — не перегружайте сервер плагинами без необходимости, регулярно обновляйте конфигурации, контролируйте нагрузку и масштабируйте сервер, если нужно.