Нажали «Старт», статус мигнул и вернулся в «Остановлен». Или сервер вроде работает, но подключиться нельзя. Ситуация «сервер не запускается» почти всегда объясняется одной строкой в логе — проблема в том, что её надо найти среди сотни других. Разберём порядок диагностики и десяток конкретных ошибок, которые встречаются чаще всего.
Где искать ошибку, если сервер не запускается
Первое и главное: не гадайте, читайте лог. Откройте консоль в панели и прокрутите вывод к самому началу запуска.
Смотреть нужно на первую ошибку сверху, а не на последнюю. Java-стек устроен так, что одна проблема порождает каскад сообщений, и последние из них обычно вводят в заблуждение. Ищите строку Caused by: — под ней настоящая причина.
Если консоль пуста или сервер падает быстрее, чем вы успеваете прочитать, лог остаётся в файле: logs/latest.log у Minecraft, crash-reports/ при вылете, отдельные логи Oxide у Rust. Как читать вывод и где что лежит — в статье про работу с консолью сервера.
Шпаргалка по ошибкам, которые разобраны ниже:
| Строка в логе | Причина | Что делать |
|---|---|---|
You need to agree to the EULA | Не принято соглашение Minecraft | eula=true в eula.txt |
FAILED TO BIND TO PORT | Порт занят | Подождать 30–60 секунд или сменить порт |
OutOfMemoryError, Could not reserve enough space | Не хватает памяти или -Xmx больше тарифа | -Xmx на 1 ГБ меньше лимита тарифа |
UnsupportedClassVersionError | Не та версия Java | Java 21 для 1.20.5+, Java 17 для 1.17–1.20.4 |
Could not load 'plugins/...' | Несовместимый плагин или нет зависимости | Обновить или отключить плагин |
mapping values are not allowed here | Сломан YAML или JSON | Проверить файл и строку из сообщения |
Failed to load level.dat | Повреждён мир | Восстановить из бэкапа |
Не принято лицензионное соглашение
You need to agree to the EULA in order to run the server.
Go to eula.txt for more info.Классика первого запуска Minecraft. Сервер создал файл eula.txt и завершился.
Решение: откройте eula.txt и замените eula=false на eula=true. Сохраните, запустите заново. В большинстве панелей есть кнопка принятия соглашения — тогда файл править не нужно.
Порт уже занят
FAILED TO BIND TO PORT!
java.net.BindException: Address already in useДва процесса пытаются слушать один порт. Причины: предыдущий запуск сервера не завершился до конца, или порт занят другим сервером.
Что делать: остановите сервер в панели, подождите 30–60 секунд и запустите снова. Если не помогло — проверьте, не висит ли второй сервер на том же номере, и при необходимости смените порт по инструкции из статьи про смену порта сервера.
Не хватает памяти
java.lang.OutOfMemoryError: Java heap space
Error occurred during initialization of VM
Could not reserve enough space for object heapПервый вариант — серверу не хватило выделенной памяти во время работы. Второй и третий — сервер даже не стартовал, потому что запросил больше, чем есть на тарифе.
Проверьте параметр -Xmx в строке запуска. Он должен быть меньше лимита тарифа минимум на 1 ГБ: на тарифе с 4 ГБ ставьте -Xmx3G. Частая ситуация после даунгрейда — флаг остался от старого тарифа.
Если памяти действительно мало для сборки, сначала попробуйте оптимизацию, а уже потом апгрейд — разбор в статьях про нагрузку на игровой сервер и смену тарифа.
Неподходящая версия Java
UnsupportedClassVersionError: has been compiled by a more recent version of the Java RuntimeЯдро собрано под более новую Java, чем установлена. Ориентиры для Minecraft: 1.17–1.20.4 требуют Java 17, 1.20.5 и выше — Java 21, старые версии 1.12–1.16 работают на Java 8 и 11.
В панели версия Java обычно выбирается в настройках сервера или через смену образа. Поменяйте и запустите заново. Обратная ситуация тоже бывает: старое ядро 1.12 на Java 21 падает с другими ошибками, там нужна Java 8.
Плагин или мод ломает загрузку
Could not load 'plugins/SomePlugin.jar' in folder 'plugins'
java.lang.NoClassDefFoundError: com/example/SomeLibraryПервая строка называет виновника прямо. Вторая означает отсутствующую зависимость — плагину нужен другой плагин или библиотека.
Порядок действий:
- Найдите в логе имя плагина из сообщения.
- Проверьте, что его версия совместима с версией ядра. Плагин для 1.20 на 1.21 часто просто не грузится.
- Проверьте зависимости на странице плагина: ProtocolLib, Vault, PlaceholderAPI — самые частые пропущенные.
- Временно отключите плагин, переименовав файл в
SomePlugin.jar.off, и запустите сервер.
Если сервер поднялся без него — виновник найден. Порядок установки и проверки зависимостей описан в статье про установку плагинов.
Ошибка в конфиге
while scanning a simple key
mapping values are not allowed here
Expected ',' instead of '}'Сломан YAML или JSON. Обычно после ручной правки. Сообщение содержит имя файла и номер строки — идите туда.
Три причины покрывают почти все случаи: табуляция вместо пробелов в .yml, пропущенный пробел после двоеточия (enabled:true вместо enabled: true), незакрытая кавычка или скобка. Проверить синтаксис можно любым онлайн-валидатором YAML, скопировав туда содержимое файла.
Привычка, которая экономит время: перед правкой конфига делайте копию рядом — тогда откат займёт одно переименование. Работа с файлами разобрана в статье про файловый менеджер сервера.
Повреждённый мир
Failed to load level.dat
Exception reading world/region/r.0.0.mcaМир не читается. Обычно последствие жёсткого выключения сервера или заливки файлов на работающий сервер.
Единственное надёжное решение — восстановление из бэкапа по инструкции из статьи про восстановление сервера из бэкапа. Иногда помогает удаление session.lock, если ошибка про заблокированный мир, но при битых регион-файлах спасает только копия.
Сервер запустился, но не виден
Отдельный класс проблем: в консоли Done!, а подключиться нельзя.
- Порт закрыт в фаерволе. Проверьте снаружи любым сервисом проверки портов, при необходимости откройте — как это делается.
- Query-порт не совпадает с игровым. Сервер работает, но мониторинги и список серверов его не видят.
- Сервер слушает не тот интерфейс. В
server.propertiesпараметрserver-ipдолжен быть пустым, а не содержать локальный адрес. - Онлайн-режим. Ошибки авторизации у игроков при
online-mode=trueи нелицензионных клиентах — сервер тут ни при чём, вопрос настройки. - SRV-запись со старым портом. По IP подключение проходит, по домену нет — правьте DNS, порядок в статье про SRV-запись.
Если ничего не помогает
Универсальный способ локализовать проблему — свести сервер к минимуму. Уберите все плагины и моды, поставьте чистый конфиг, запустите. Поднялся — возвращайте компоненты половинами, пока не найдёте виновника. Не поднялся — проблема в ядре, Java или файлах сервера, и тут проще развернуть чистую установку и перенести в неё мир.
И сохраняйте лог перед экспериментами. Текст ошибки — это то, что попросит поддержка первым делом, а после десяти перезапусков исходное сообщение уже потеряется. Поддержка TeaHost отвечает в Telegram: @suphost_bot.
Большинство падений при запуске лечатся за пять минут, если начать с чтения лога, а не с перебора настроек наугад. Если нужен сервер, где панель уже настроена и Java подобрана под версию, — смотрите тарифы.