Minecraft Руководство

Как запустить сервер модпака Minecraft на NeoForge

Перенесите модпак NeoForge на Linux-сервер: серверная сборка, нужная Java, зависимости и проверка мира без копирования лишних клиентских модов.

Как запустить сервер модпака Minecraft на NeoForge

Начните с точного выпуска модпака, установленного у игроков. Сервер с другой сборкой NeoForge или самостоятельно сокращённым набором модов может запуститься, но отклонять подключения или создать мир без нужного контента. Здесь используется Ubuntu 24.04, Minecraft 1.21.1 и отдельная учётная запись Linux. Если автор сборки задаёт другие требования, ориентируйтесь на них.

Зафиксируйте выпуск сборки до установки#

Запишите вместе название и выпуск модпака, версию Minecraft, сборку NeoForge и требование к Java. Для примера с 1.21.1 нужна 64-битная Java 21; границы совместимости приведены в руководстве NeoForge по Java. Установка «последней NeoForge» не заменяет выбор версии, под которую собран модпак.

На странице конкретного выпуска найдите server pack от автора. Экспорт лаунчера с манифестом не обязательно содержит скачанные моды. Если нужен определённый лаунчер или установщик, сначала получите файлы поддерживаемым автором способом. Исходный архив и инструкцию сохраните вне рабочего каталога сервера.

Учитывайте разрешения на распространение модов. Запуск частного сервера не даёт права перепаковать чужие файлы и публично раздавать архив. Игрокам лучше устанавливать соответствующий клиентский выпуск через предусмотренный автором канал.

Подготовьте пользователя и пустой каталог#

На новой Ubuntu 24.04 выполните административные команды. Они создают отдельного пользователя, чтобы моды не работали с правами root:

bash
sudo apt update
sudo apt install openjdk-21-jre-headless unzip curl
sudo useradd --create-home --home-dir /srv/neoforge --shell /bin/bash neoforge
sudo -iu neoforge
java -version
mkdir -p /srv/neoforge/game
cd /srv/neoforge/game

Если такой пользователь уже существует, проверьте его домашний каталог и права вместо повторного создания. Убедитесь, что именно в этой оболочке java -version показывает Java 21. Настольный лаунчер может использовать собственную Java, которая никак не связана с Java в Linux.

Если скачали готовый server pack, сначала посмотрите структуру архива и установочный скрипт, распакуйте файлы в пустой каталог и выполните README. Не ставьте поверх ещё один загрузчик, если сборка уже управляет установкой. Следующий ручной вариант подходит для сборки, инструкция которой требует установить NeoForge самостоятельно.

Установите нужную NeoForge и сохраните её launcher#

Скачайте точный installer по официальной инструкции NeoForge или через указанный там Maven-репозиторий. Положите его в /srv/neoforge/neoforge-installer.jar. Это выбранное для примера локальное имя: за ним должен стоять нужный выпуск, а не случайный переименованный JAR.

Из серверного каталога выполните:

bash
cd /srv/neoforge/game
java -jar /srv/neoforge/neoforge-installer.jar --installServer
ls -l run.sh user_jvm_args.txt libraries

Сохраните вместе libraries и созданный run.sh. Запуск случайного JAR через java -jar обходит подготовленные загрузчиком аргументы и classpath. Рабочий каталог тоже важен: относительные пути конфигурации и мира должны разрешаться внутри /srv/neoforge/game.

Перенесите серверные файлы модпака по его инструкции. Помимо mods, это могут быть config, defaultconfigs, скрипты и datapacks. Если скопировать только JAR, потеряются рецепты или настройки генерации; если всю клиентскую установку — появятся зависимости, рассчитанные на графический клиент. Для спорного мода проверьте поддерживаемое окружение на странице проекта. Обсуждение сбоя NeoForge после добавления модов показывает, почему работа одиночной игры ещё не подтверждает совместимость с выделенным сервером.

Настройте память и выполните первый запуск#

Отредактируйте user_jvm_args.txt, сохранив специальные параметры сборки. Для небольшого примера на машине с 8 ГБ RAM можно начать с такого heap, оставив память системе и остальным расходам JVM:

text
-Xms2G
-Xmx4G

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

Запускайте созданный launcher из того же каталога:

bash
cd /srv/neoforge/game
bash ./run.sh nogui

Первый запуск может остановиться на EULA. Прочитайте соглашение, указанное в eula.txt; установите true, только если принимаете его, и повторите запуск. Сначала оставьте сервер в открытой консоли: так видны ошибки установки и доступны команды остановки.

При завершении с ошибкой найдите первое содержательное сообщение в logs/latest.log и crash report. Недостающая зависимость, мод для другой версии Minecraft и обращение к клиентскому классу требуют разных решений. Сохраните исходный журнал до замены файлов. Удалять половину модпака из существующего мира ради успешного запуска опасно для его содержимого.

Храните окружение и контент как единый набор версий: запуск загрузчика — только промежуточная проверка.

Разрешите подключения и проверьте мир#

После нормального старта введите stop в игровой консоли и отредактируйте созданный server.properties. Оставьте online-mode=true, для обычной установки не заполняйте server-ip, выберите нужный level-name и включите white-list=true для частной группы. После перезапуска добавьте разрешённых игроков командой whitelist add PlayerName в консоли.

Во втором административном терминале проверьте стандартный игровой порт:

bash
sudo ss -lntp 'sport = :25565'

Убедитесь, что сокет принадлежит нужному Java-процессу. Если используется UFW, разрешите выбранный TCP-порт. Проверьте также security group VPS либо настройте проброс TCP на постоянный LAN-адрес машины. Одного правила UDP для Java-сервера недостаточно. При домашнем подключении сначала исключите CGNAT.

Зайдите с точным клиентским модпаком, проверьте модифицированный объект и запись о подключении в консоли. Сделайте узнаваемое изменение, выйдите, выполните stop, запустите сервер снова и повторно зайдите. Убедитесь, что загрузился тот же мир и изменение сохранилось. После этого можно оформлять проверенную команду как службу с указанными пользователем и рабочим каталогом.

Перед обновлением сохраните комплект для отката#

Штатно остановите сервер и дождитесь завершения Java. В той же оболочке neoforge создайте архив всей установки в отдельном каталоге:

bash
umask 077
mkdir -p /srv/neoforge/backups
chmod 700 /srv/neoforge/backups
backup_file="/srv/neoforge/backups/game-$(date -u +%Y%m%dT%H%M%SZ).tgz"
tar -C /srv/neoforge -czf "$backup_file" game
tar -tzf "$backup_file" >/dev/null
sha256sum "$backup_file" > "$backup_file.sha256"

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

Храните защищённую копию вне сервера. Проверка списка файлов и контрольная сумма помогают обнаружить повреждение; отдельно проверьте восстановление, прежде чем полагаться на архив.