Как установить Minecraft сервер на CentOS 7
Установка Minecraft сервера на CentOS 7 остаётся популярным решением для пользователей, которым нужен полный контроль над версией сервера, плагинами, модами, файлами мира, резервными копиями и параметрами запуска Java. В отличие от готовых игровых панелей, ручная установка даёт прозрачную среду: вы понимаете, где лежат файлы, как запускается процесс, какой порт открыт, как настроен автозапуск и что именно нужно восстановить в случае сбоя. Это особенно полезно, если сервер будет использоваться долго, а не только для короткого теста.
Практически весь процесс сводится к нескольким шагам: подготовить CentOS 7, установить Java, создать отдельного пользователя, скачать серверный .jar, настроить systemd unit и открыть порт в firewall. Чаще всего такую схему разворачивают на VPS, потому что там есть root-доступ и можно гибко управлять ресурсами. Для более тяжёлых модпаков, больших миров и значительной нагрузки подойдёт выделенный сервер. А для хранения резервных копий вне игрового хоста удобно использовать облачное хранилище.
До начала установки важно выяснить, какая версия Java требуется вашему Minecraft серверу. Старые версии обычно работают на Java 8, а новые часто требуют Java 17. Это один из самых важных подготовительных шагов, потому что очень многие проблемы со стартом сервера связаны не с самим Minecraft, а с неверной Java средой.
1) Подготовка системы и отдельный пользователь
Не запускайте Minecraft от root. Намного безопаснее создать отдельного пользователя minecraft и разместить все файлы сервера под ним. Это уменьшает риск избыточных прав, упрощает обслуживание и делает резервное копирование более понятным. Одновременно полезно обновить систему и поставить базовые инструменты для администрирования.
sudo yum update -y sudo yum install -y wget curl nano tar unzip screen sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft sudo mkdir -p /opt/minecraft/server sudo chown -R minecraft:minecraft /opt/minecraft
Такой подход удобен и в будущем. Если позже понадобится второй сервер, тестовая среда или другая версия Minecraft, вы сможете просто создать дополнительную поддиректорию и не путать игровые файлы с системными.
2) Установка Java
Следующий шаг — установка Java. На CentOS 7 обычно проще всего использовать OpenJDK из репозиториев. Установите именно ту версию, которая нужна вашей сборке сервера. После установки обязательно проверьте активную версию командой java -version, чтобы убедиться, что система видит нужный runtime.
sudo yum install -y java-17-openjdk java-17-openjdk-headless java -version
Если вашей версии сервера нужна Java 8, используйте пакеты java-1.8.0-openjdk. Этот шаг кажется простым, но на практике именно он часто решает проблему ещё до того, как она появится.
3) Загрузка server.jar и первый запуск
Переключитесь на пользователя minecraft, перейдите в рабочую директорию и скачайте серверный .jar файл. Здесь ссылка остаётся условной, потому что конкретный URL зависит от того, используете ли вы vanilla, Paper, Spigot или другую серверную сборку.
sudo su - minecraft cd /opt/minecraft/server wget -O server.jar YOUR_SERVER_JAR_URL ls -lh
Первый запуск нужен для генерации исходных файлов, включая eula.txt и server.properties. Для первой проверки используйте умеренный объём памяти. Не нужно сразу отдавать серверу весь доступный RAM — операционной системе и файловому кешу тоже нужны ресурсы.
java -Xms1G -Xmx2G -jar server.jar nogui
После первого запуска сервер обычно остановится, потому что EULA ещё не принята. Откройте eula.txt и измените eula=false на eula=true. Без этого сервер не начнёт нормальную работу.
nano eula.txt
# замените: eula=false # на: eula=true
4) Настройка server.properties
Файл server.properties содержит основные параметры работы сервера: порт, лимит игроков, MOTD, режим online-mode, whitelist, сложность, distance и другие настройки. Эти параметры влияют не только на игровой процесс, но и на нагрузку на сервер, поэтому лучше сразу заложить разумную базовую конфигурацию.
Для небольшого приватного сервера стоит начать с умеренного max-players, включённого whitelist и аккуратных значений view-distance. Намного проще постепенно увеличивать нагрузку, чем сразу запускать сервер на завышенных параметрах и потом искать, из-за чего он тормозит.
nano server.properties
motd=CloudHosting Minecraft Server server-port=25565 max-players=10 online-mode=true white-list=true view-distance=8 simulation-distance=6 difficulty=normal spawn-protection=0
Если сервер предназначен для друзей или ограниченного сообщества, whitelist — хорошая практика уже на старте. Если позже вы захотите открыть его публично, это можно сделать после того, как базовая конфигурация будет проверена и стабилизирована.
5) Systemd unit для автозапуска
Для долгосрочной эксплуатации лучше использовать systemd unit, а не полагаться только на ручной запуск или screen. Systemd даёт автозапуск после reboot, быстрый контроль статуса и более предсказуемое поведение при restart. Это особенно удобно, если сервер должен жить постоянно, а не запускаться вручную каждый раз.
sudo nano /etc/systemd/system/minecraft.service
[Unit] Description=Minecraft Server After=network.target [Service] User=minecraft Group=minecraft WorkingDirectory=/opt/minecraft/server ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar /opt/minecraft/server/server.jar nogui ExecStop=/bin/kill -SIGINT $MAINPID Restart=on-failure RestartSec=20 Nice=1 NoNewPrivileges=true ProtectHome=true ProtectSystem=full PrivateTmp=true [Install] WantedBy=multi-user.target
После сохранения unit-файла перечитайте конфигурацию systemd, включите сервис и запустите его. Команда status сразу покажет, корректны ли путь к JAR, рабочая директория и команда запуска.
sudo systemctl daemon-reload sudo systemctl enable minecraft sudo systemctl start minecraft sudo systemctl status minecraft
6) Firewall и первое подключение
Стандартный порт Minecraft Java Edition — 25565/TCP. Если сервер стартует, но клиент не подключается, наиболее вероятная причина — firewall. В CentOS 7 обычно используется firewalld, и порт нужно открыть как в локальной системе, так и, при необходимости, на стороне провайдера.
sudo firewall-cmd --permanent --add-port=25565/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-ports ss -lntp | grep 25565
После этого можно подключаться из клиента по IP-адресу сервера. Если нужен домен, добавьте A-запись на IP сервера. Для приватной среды лучше оставить online-mode=true и whitelist включённым, чтобы не открыть доступ всем желающим из интернета.
Производительность, безопасность и резервные копии
Производительность Minecraft сервера определяется не только объёмом RAM. Большое значение имеют single-thread производительность CPU, скорость диска, размер мира, поведение модов или плагинов, а также значения view-distance и simulation-distance. Очень большой Java heap не всегда помогает и иногда даже ухудшает работу из-за особенностей garbage collection. Поэтому ресурсы лучше увеличивать постепенно, исходя из реальной нагрузки.
С точки зрения безопасности важно запускать сервер под отдельным пользователем, не открывать лишние порты и регулярно обновлять Java. Если вы используете плагины или модифицированные серверные сборки, скачивайте их только из проверенных источников. Неудачный или вредоносный плагин может повлиять не только на стабильность мира, но и на безопасность всей среды.
Резервные копии крайне важны, потому что самая ценная часть сервера — это файлы мира и данные игроков. Переустановить сам сервер легко, а восстановить потерянный мир без backup почти невозможно. Самый простой вариант — периодически архивировать каталог сервера и хранить архив вне основной машины.
tar -czf /tmp/minecraft-backup-$(date +%F).tar.gz /opt/minecraft/server
Если сервер планируется как долгосрочный проект, зафиксируйте используемую версию Minecraft, версию Java, настройки systemd, открытые порты и процедуру backup. Такая документация сильно помогает при обновлениях, переносе на более мощный сервер и устранении неполадок. Надёжный Minecraft сервер — это не тот, который один раз запустился, а тот, который можно понятно сопровождать, восстанавливать и развивать дальше.