Minecraft на сервере: частые ошибки и решения
Сервер Minecraft поднимается за десять минут, а дальше начинаются настоящие вопросы: не запускается после обновления, вылетает с ошибкой памяти, лагает уже при пяти игроках или к нему не могут подключиться друзья. Ниже разобраны частые ошибки по схеме «симптом — причина — что делать», с расшифровкой непонятных слов и готовыми командами. Знать заранее ничего не нужно: если вы умеете подключаться по SSH и копировать команды, этой статьи хватит.
Содержание
- Что получится в итоге
- Словарь: что значат слова из инструкций
- Сервер не запускается вообще
- Сервер запустился, но никто не может подключиться
- Сервер лагает: почему падает TPS
- Сервер падает через несколько часов работы
- Мир повредился или откатился назад
- Таблица: текст ошибки, что значит и что делать
- Как запускать сервер, чтобы он не падал
- Шесть приёмов, которые экономят нервы
- Шпаргалка команд
- Когда проблема не в настройках, а в железе
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что получится в итоге
После прочтения вы сможете:
- Понимать, что написано в консоли сервера, и определять проблему по тексту ошибки.
- Чинить четыре самые частые беды: не стартует, не пускает игроков, лагает, падает через пару часов.
- Настроить запуск так, чтобы сервер сам поднимался после перезагрузки и не умирал при закрытии SSH.
- Делать автоматические копии мира, чтобы сбой стоил десяти минут прогресса, а не всего сохранения.
Сразу оговорка про цифры: сколько памяти и какой процессор нужен вашему серверу, зависит от версии игры, набора модов и числа игроков. Универсальных значений тут нет, поэтому все рекомендации ниже — ориентир с проверкой по факту.
Словарь: что значат слова из инструкций
Половина трудностей у новичка не техническая, а языковая: непонятно, что за JAR, что такое heap и почему все говорят про TPS. Вот минимальный словарь.
| Слово | Что это простыми словами |
|---|---|
| JAR | Файл программы на Java, обычно server.jar. Это и есть ваш сервер: один файл, запускаемый командой. |
| Java | Среда, без которой JAR не запустится. Игра написана на Java, поэтому на сервере она обязана быть. |
| JRE и JDK | JRE — только запуск программ, JDK — ещё и инструменты разработчика. Серверу хватит пакета -jre-headless. |
| Версия Java (17, 21) | Каждой крупной версии Minecraft нужна своя. Старая Java не поймёт новый сервер, слишком новая ломает старые сборки. |
| Heap, -Xmx, -Xms | Heap — кусок оперативной памяти, выделенный серверу. -Xmx — максимум, -Xms — сколько занять сразу при старте. |
| Порт 25565 | «Дверь» в сервер: по умолчанию Minecraft ждёт игроков на этом порту по TCP. |
| EULA | Лицензионное соглашение. При первом запуске сервер создаёт eula.txt и не работает, пока вы не согласитесь вручную. |
| Tick и TPS | Tick — один такт обсчёта мира. TPS — сколько тактов сервер успевает за секунду, норма 20. Меньше — игроки видят лаги. |
| Whitelist | Белый список: зайти могут только явно добавленные вами игроки. Защита от случайных гостей. |
| Ванильный сервер | Официальное ядро от Mojang без изменений: работает как есть, но оптимизировано слабо. |
| Paper, Spigot | Переработанные ядра: тот же геймплей, но с оптимизациями и плагинами. Обычный выбор для игры с друзьями. |
| Forge, Fabric, NeoForge | Ядра под моды. Со сборкой модов ядро должно быть таким и строго той же версии, что у клиента. |
| Проброс портов | Нужен, только если сервер стоит дома за роутером. На арендованном VPS этого шага нет. |
| server.properties | Файл с настройками: порт, режим игры, дальность прорисовки, онлайн-режим. |
| Онлайн-режим | Проверка лицензии через серверы Mojang. Включена по умолчанию, и нелицензионные клиенты не зайдут. |
Если сервера ещё нет, начните с базовой установки: есть отдельная пошаговая установка Minecraft на VPS и вариант под Ubuntu 24.04.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSСервер не запускается вообще
Вы вводите команду, в консоль вываливается несколько строк и всё останавливается. Причин обычно четыре, различаются они по тексту в консоли.
Не та версия Java. Самое частое после обновления игры. В консоли UnsupportedClassVersionError или прямое «requires Java 21 or newer». Проверьте, что установлено, и поставьте нужную версию.
java -version
apt update && apt install -y openjdk-21-jre-headless
Если версий Java несколько, по умолчанию может использоваться старая. Переключить активную можно через update-alternatives --config java, но надёжнее прописать полный путь к нужному java прямо в команде запуска.
Не принят EULA. Сервер пишет пару строк и сразу закрывается, в логе фраза про «You need to agree to the EULA». Это не поломка, а нормальное поведение при первом запуске: откройте файл и замените false на true.
nano /opt/minecraft/eula.txt
Порт занят. В консоли FAILED TO BIND TO PORT или Address already in use: на порту уже что-то слушает, чаще всего вы просто запустили второй экземпляр, забыв про первый.
ss -tlnp | grep 25565
Не хватает памяти уже на старте. Java пишет Could not reserve enough space for object heap: в -Xmx указано больше, чем физически есть на машине. Проверьте free -h и приведите флаг в соответствие. Если памяти не хватает объективно, поможет разбор про то, что делать при нехватке RAM.
Сервер запустился, но никто не может подключиться
В консоли Done, а друзья получают таймаут. Проверяйте по порядку, от частого к редкому.
Закрыт порт в файрволе. Причина номер один. Сервер слушает 25565/TCP, а межсетевой экран не пропускает соединение снаружи.
ufw allow 25565/tcp
ufw status
Проверяйте оба уровня: файрвол на сервере и сетевой фильтр в панели у провайдера — они независимы, и достаточно одного закрытого. Подробнее — в разборе про открытые порты: как проверить и закрыть.
Сервер вообще не слушает порт. Команда ss -tlnp | grep 25565 выдаёт пустоту: процесс не запустился или уже упал. Возвращайтесь к логам, проблема не в сети.
Указан не тот адрес. Друзья вводят локальный адрес вместо публичного или подключаются по старому IP после переезда. Публичный адрес всегда виден в панели управления. Дома добавляется ещё и проброс портов на роутере; на арендованном сервере этого шага нет.
Ошибочно задан server-ip. В server.properties строка server-ip= должна быть пустой — тогда сервер слушает все интерфейсы. Если туда попал случайный адрес, снаружи сервер не виден.
Онлайн-режим и лицензия. Клиент получает «Failed to verify username» или «not authenticated». Сервер с online-mode=true проверяет учётные записи через Mojang. Отключение проверки снимает и защиту: зайти можно будет под чужим ником, поэтому вместе с ней включайте белый список.
whitelist on
whitelist add Nickname
Сервер лагает: почему падает TPS
Блоки ставятся с задержкой, мобы дёргаются, игроков «резинит» назад. Ключевой показатель — TPS: норма 20, всё ниже означает, что сервер не успевает обсчитывать мир. Посмотреть его можно в консоли сервера (на Paper и подобных ядрах):
tps
Мало памяти. Java постоянно чистит heap, сервер зависает короткими рывками — микрофризы у всех сразу. Лечится увеличением -Xmx в разумных пределах или тарифом побольше.
Слабый процессор. Minecraft основную работу выполняет в одном потоке, поэтому важна частота ядра, а не их количество. Сервер с восемью медленными ядрами может лагать там, где двухъядерный, но быстрый работает ровно.
Ванильное ядро. Переход на Paper часто убирает лаги без доплаты за железо: там переработаны обсчёт мобов, редстоуна и подгрузка чанков. Мир переносится копированием папки.
Слишком большая дальность прорисовки. view-distance в server.properties определяет, сколько чанков сервер обсчитывает вокруг каждого игрока. Уменьшение на несколько единиц заметно разгружает сервер, а разницу игроки почти не замечают. Рядом стоит simulation-distance — радиус, в котором мобы и механизмы вообще живут; снижать его ещё выгоднее.
Моды и плагины. Каждый мод — работа каждый тик. Тяжёлые сборки лагают даже на хорошем железе, и это не поломка, а цена содержимого. Отдельно разобраны частые ошибки игрового сервера с модами.
Конкретный источник лага. Ферма мобов, зациклённый редстоун, тысяча сущностей в одном чанке. Ищется профилировщиком вроде Spark: он показывает, какая часть мира съедает время тика. Убрали одну ферму — TPS вернулся.
Неудачные флаги JVM. Копировать длинные наборы флагов из случайных гайдов — плохая идея: часть устарела, часть противоречит друг другу. Рабочий минимум — задать -Xmx и -Xms и остановиться.
Сервер падает через несколько часов работы
Самый неприятный класс: всё стартовало, поиграли, а ночью сервер тихо умер. Смотреть надо в двух местах — лог сервера и системный журнал.
Java исчерпала heap. В логе java.lang.OutOfMemoryError: Java heap space: выделенной памяти не хватило под нагрузку, обычно после того как игроки разбежались по миру. Решение — увеличить -Xmx, если есть запас, либо снизить view-distance.
Процесс убила система. В логе сервера ничего, он просто обрывается. Это работа OOM-киллера: системе не хватило памяти, и она убила самый прожорливый процесс.
dmesg | grep -i oom
Парадокс в том, что причина здесь противоположная: вы отдали Java слишком много. Если -Xmx равен всему объёму RAM, операционной системе не остаётся ничего. Если же процесс разрастается без явной причины, поможет разбор про утечки памяти на сервере.
Закончилось место на диске. Сервер падает или отказывается сохранять мир. Логи, бэкапы и сам мир растут постоянно, поэтому диск заканчивается тихо.
df -h
du -sh /opt/minecraft/*
Уберите старые логи и лишние архивы, затем настройте ротацию; подробности — в материале про то, что делать, когда закончилось место на диске VPS.
Сервер умер вместе с SSH-сессией. Классика: запустили java -jar server.jar, закрыли терминал — сервер закрылся с ним. Это не сбой, а норма: процесс был привязан к вашей сессии. Лечится правильным запуском, о нём ниже.
Мир повредился или откатился назад
После жёсткой перезагрузки мир может не загрузиться, выдавая ошибки чтения регионов или чанков. Так бывает, когда сервер убили ровно в момент записи данных на диск.
Первое правило: не запускайте сервер поверх повреждённых данных — каждый запуск может затереть то, что ещё можно спасти. Сразу сделайте копию.
cp -r /opt/minecraft/world /opt/minecraft/world-broken-copy
Есть свежий бэкап — восстановитесь из него, потеряв максимум последние часы. Без бэкапа остаются утилиты вроде MCA Selector: они вырезают битые регионы, но вырезанный кусок сгенерируется заново, и постройки в нём исчезнут.
Отдельный симптом — «откат», когда прогресс за последний час пропал: мир не был сохранён перед падением. Записать всё на диск можно вручную, и это стоит делать перед любой рискованной операцией.
save-all
save-off
После save-off сервер перестаёт писать в мир — удобно, чтобы скопировать папку без риска поймать половинчатое состояние. Потом не забудьте save-on.
Таблица: текст ошибки, что значит и что делать
Обычно вы гуглите не «сервер не работает», а конкретную строку из консоли. Вот самые узнаваемые.
| Что в консоли | Что это значит | Что делать |
|---|---|---|
You need to agree to the EULA | Не принято лицензионное соглашение | Заменить в eula.txt строку eula=false на eula=true |
java.lang.UnsupportedClassVersionError | Java старее, чем требует сервер | Поставить нужную версию (для актуальных сборок — Java 21) |
compiled by a more recent version of the Java Runtime | То же самое, другими словами | Обновить Java или указать путь к правильной |
Unable to access jarfile server.jar | Файл не найден: не тот каталог или опечатка | Запускать из папки сервера или указывать полный путь |
FAILED TO BIND TO PORT! / Address already in use | Порт занят другим процессом | Найти его через ss -tlnp, остановить лишний экземпляр |
Could not reserve enough space for object heap | В -Xmx больше памяти, чем есть на машине | Уменьшить -Xmx, проверить объём через free -h |
OutOfMemoryError: Java heap space | Не хватило выделенной памяти под нагрузкой | Увеличить -Xmx при наличии запаса, снизить view-distance |
Killed в консоли и пусто в логе | Процесс убил OOM-киллер системы | Уменьшить -Xmx, оставить запас ОС, проверить dmesg |
Can't keep up! Is the server overloaded? | Сервер не укладывается в 20 тактов в секунду | Искать лаг: моды, фермы, дальность прорисовки, слабый CPU |
AnnotatedConnectException у клиента | Клиент не смог достучаться до сервера | Проверить файрвол, порт и правильность адреса |
Failed to verify username | Не прошла проверка лицензии в онлайн-режиме | Проверить лицензию клиента и online-mode |
Outdated server! / Outdated client! | Версии клиента и сервера не совпадают | Привести к одной версии |
Failed to load level / ChunkLoadingException | Повреждены файлы мира | Сделать копию мира, восстановиться из бэкапа |
The server is full | Достигнут лимит max-players | Поднять значение в server.properties и перезапустить |
No space left on device | Закончилось место на диске | Освободить место, настроить ротацию логов |
Как запускать сервер, чтобы он не падал
Правильный запуск решает половину проблем ещё до их появления. Задачи три: не умирать при закрытии SSH, подниматься самому после перезагрузки и перезапускаться после падения.
Простой вариант — screen. Это «окно», которое живёт без вас: вы отключаетесь, а сервер работает дальше.
apt install -y screen
screen -S mc
java -Xms2G -Xmx4G -jar server.jar nogui
Выйти, оставив сервер работать, — Ctrl+A, затем D; вернуться — screen -r mc. Способ рабочий, но после перезагрузки машины ничего не поднимется само.
Надёжный вариант — служба systemd: она стартует сервер при загрузке системы и поднимает обратно после падения. Создайте файл /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar server.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Затем включите автозапуск:
systemctl daemon-reload
systemctl enable --now minecraft
systemctl status minecraft
Три частые ошибки в этом файле: неверный WorkingDirectory или имя JAR, запуск от несуществующего пользователя и старт раньше, чем смонтируется отдельный диск с миром (тогда в [Unit] добавляют зависимость от точки монтирования). Причина всегда видна в journalctl -u minecraft.
Отдельно про бэкапы: копия мира по расписанию превращает катастрофу в мелкую неприятность. Простейший вариант — задание в cron.
crontab -e
0 4 * * * tar -czf /opt/backups/world-$(date +\%F).tar.gz /opt/minecraft/world
Архивировать лучше при остановленном сервере или после save-off, иначе можно поймать мир в момент записи. И храните копии не только на том же диске: если он умрёт, погибнут и мир, и бэкап рядом с ним. Как это делается по-взрослому — в разборе бэкапа и восстановления через BorgBackup.
Шесть приёмов, которые экономят нервы
Не отдавайте серверу всю память. Вписать в -Xmx весь объём RAM кажется логичным, но это прямой путь к тому, что систему задушит и OOM-киллер убьёт сервер. Оставляйте операционной системе и дисковому кэшу заметный запас: поиграйте под нагрузкой и посмотрите free -h — свободная память должна оставаться.
Задавайте -Xms и -Xmx близкими. Тогда Java не тратит время на постепенное расширение heap и ведёт себя ровнее, например -Xms3G -Xmx4G.
Смотрите TPS до жалоб, а не после. Команда tps и профилировщик Spark дают картину за минуты. Привычка проверять TPS после установки каждого плагина избавляет от расследований «когда же начало лагать».
Снижайте дальность прорисовки раньше, чем докупаете железо. view-distance и simulation-distance — самая дешёвая оптимизация из существующих.
Обновляйте версию безопасно. Остановить сервер, скопировать папку целиком (не только мир), скачать ядро нужной версии, проверить требования к Java, запустить и посмотреть лог. Если что-то сломалось — вернуть старую папку. Клиенты игроков должны быть той же версии, иначе будет Outdated server.
Переносите мир простым копированием. Мир — обычная папка. Остановите старый сервер, скопируйте каталог world (для Paper ещё world_nether и world_the_end), разверните на новом и запустите.
rsync -avz /opt/minecraft/world/ user@new-server:/opt/minecraft/world/
Шпаргалка команд
# запуск вручную (живёт, пока открыт терминал)
java -Xms2G -Xmx4G -jar server.jar nogui
# управление службой
systemctl start minecraft
systemctl stop minecraft
systemctl restart minecraft
systemctl status minecraft
# логи: журнал службы и лог самого сервера
journalctl -u minecraft -n 50
tail -f /opt/minecraft/logs/latest.log
# кто занял порт и слушает ли сервер
ss -tlnp | grep 25565
# память и убитые системой процессы
free -h
dmesg | grep -i oom
# место на диске и что его съело
df -h
du -sh /opt/minecraft/*
# файрвол
ufw allow 25565/tcp
ufw status
# сохранить мир (вводится в консоли сервера, не в SSH)
save-all
save-off
save-on
Если после логов всё равно непонятно, что случилось, есть отдельная инструкция про то, как читать логи и находить причину сбоя — принцип одинаков для любого сервиса.
Когда проблема не в настройках, а в железе
Есть черта, за которой оптимизация перестаёт помогать. Если вы перешли на Paper, снизили дальность прорисовки, убрали тяжёлые фермы и настроили память, а TPS всё равно проседает — сервер перерос свой тариф. Это не ошибка, а нормальный этап.
Ориентиры простые: небольшое выживание с друзьями на ванильном мире нетребовательно, сборка модов или Paper с десятком плагинов требуют заметно больше памяти и быстрого ядра. Конкретные цифры зависят от версии, модов и активности игроков, поэтому смотреть надо не на чужие таблицы, а на свои free -h и TPS под нагрузкой.
При выборе тарифа важны три вещи: частота одного ядра важнее их количества, память с запасом важнее лишнего места на диске, а расположение сервера определяет пинг игроков. Полезные разборы: лучший VPS для игрового сервера в России и конфигурация выделенного сервера на сотни игроков. У MAATRIX сервер можно взять в России, США или Великобритании и оплатить из России картой, СБП или криптой, а мир перенести копированием папки.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать VPSНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Сервер падает с UnsupportedClassVersionError — что делать?
Установлена слишком старая Java: актуальным версиям Minecraft нужна Java 21. Поставьте openjdk-21-jre-headless и убедитесь, что запуск идёт именно ей — если версий несколько, укажите полный путь к нужному java.
Почему сервер вылетает по нехватке памяти, хотя RAM вроде свободна?
Скорее всего, вы отдали Java почти всю память флагом -Xmx, и когда системе понадобился кусок, OOM-киллер убил самый крупный процесс. Оставьте системе запас и проверьте dmesg | grep -i oom.
Сколько памяти давать серверу?
Универсального числа нет: потребление зависит от версии, ядра, модов и числа игроков. Задайте -Xmx заметно меньше общего объёма RAM, поиграйте под реальной нагрузкой и посмотрите free -h. Если свободной памяти не остаётся, пора добавлять RAM, а не подкручивать флаги.
Как убрать лаги и поднять TPS?
По порядку: перейти с ванильного ядра на Paper, снизить view-distance и simulation-distance, найти источник лага профилировщиком, проверить память. Если TPS всё ещё низкий, упор идёт в одно ядро процессора.
Друзья не подключаются, хотя сервер запущен.
Почти всегда закрыт порт 25565. Откройте его в файрволе, проверьте через ss -tlnp, что сервер действительно слушает порт, и убедитесь, что нет отдельного фильтра в панели провайдера. Отдельно проверьте, что server-ip пуст.
Сервер выключается, когда я закрываю SSH — это поломка?
Нет, процесс был привязан к вашей сессии. Запускайте через screen, tmux или, что правильнее, через службу systemd: тогда сервер живёт независимо от вас и поднимается после перезагрузки.
Как перенести мир на другой сервер?
Остановите старый сервер, скопируйте каталог world (для Paper также world_nether и world_the_end) через rsync или архивом, разверните на новом, поставьте то же ядро и ту же версию. Конвертировать ничего не нужно.
Как часто делать бэкап мира?
Минимум раз в сутки, на активном сервере чаще. Важнее регулярности место хранения: копия на том же диске не спасёт при его отказе.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →