Установка Minecraft сервера на Ubuntu Linux: пошаговое руководство

Установка Minecraft сервера на Ubuntu Linux: пошаговое руководство

Установка собственного Minecraft сервера на Ubuntu Linux дает полный контроль над плагинами, производительностью и безопасностью. В MineGuard мы помогаем сотням владельцев серверов, и подавляющее большинство из них работают именно на Ubuntu. В этом руководстве мы проведем вас через все этапы: от чистой системы до готового к работе сервера.

Требования

Перед началом убедитесь, что у вас есть:

  • Ubuntu 22.04 LTS или Ubuntu 24.04 LTS (для новых серверов рекомендуем 24.04)
  • Java 21 (обязательна для Minecraft 1.21+)
  • Минимум 2 ГБ оперативной памяти (4 ГБ+ для 10+ игроков)
  • VPS или выделенный сервер с root или sudo доступом
  • Стабильное интернет-соединение со скоростью не менее 10 Мбит/с

Если вы запускаете сервер дома, потребуется также настроить проброс портов. Об этом рассказываем в конце.

Шаг 1: Обновление системы

Всегда начинайте с обновления пакетов:

sudo apt update && sudo apt upgrade -y

Это обеспечит установку всех патчей безопасности и актуальный индекс пакетов.

Шаг 2: Установка Java 21

Minecraft 1.21+ требует Java 21. Установите JRE:

sudo apt install openjdk-21-jre-headless -y

Проверьте установку:

java -version

Вы должны увидеть что-то вроде:

openjdk version "21.0.4" 2024-07-16

Если в репозиториях вашей версии Ubuntu нет Java 21, добавьте репозиторий Adoptium:

sudo apt install wget apt-transport-https -y
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/trusted.gpg.d/adoptium.asc
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jre -y

Шаг 3: Создание выделенного пользователя

Никогда не запускайте Minecraft сервер от имени root. Создайте отдельного пользователя:

sudo useradd -r -m -d /opt/minecraft -s /bin/bash minecraft

Это создаст системного пользователя minecraft с домашней директорией /opt/minecraft.

Шаг 4: Скачивание Paper (или Purpur)

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

Переключитесь на пользователя minecraft и скачайте серверный jar:

sudo su - minecraft
mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
wget -O paper.jar https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/123/downloads/paper-1.21.4-123.jar

Замените URL на последнюю версию со страницы загрузки Paper.

Шаг 5: Принятие EULA

Запустите сервер один раз для генерации конфигурационных файлов:

java -jar paper.jar --nogui

Сервер остановится и попросит принять EULA. Отредактируйте файл:

nano eula.txt

Измените eula=false на:

eula=true

Сохраните и выйдите (Ctrl+X, Y, Enter).

Шаг 6: Настройка server.properties

Отредактируйте основной конфигурационный файл:

nano server.properties

Ключевые параметры:

server-port=25565
max-players=50
view-distance=10
simulation-distance=8
motd=My Minecraft Server
online-mode=true
enable-command-block=false
spawn-protection=16

Важно: Оставляйте online-mode=true, если вы не используете прокси вроде Velocity. Отключение позволит любому зайти с любым никнеймом.

Шаг 7: JVM-флаги Aikar

Эти JVM-флаги являются золотым стандартом для производительности Minecraft серверов. Они оптимизируют сборку мусора и использование памяти:

java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
  -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
  -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \
  -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -jar paper.jar --nogui

Измените -Xms и -Xmx в соответствии с доступной RAM. Всегда ставьте одинаковое значение. Не выделяйте всю оперативную память, оставьте минимум 1 ГБ для операционной системы.

Шаг 8: Создание systemd-сервиса

Использование screen или tmux подходит для тестирования, но для продакшена лучше использовать systemd. Он обеспечивает автозапуск при загрузке и автоперезапуск при сбоях.

Сначала вернитесь к пользователю с sudo:

exit

Создайте файл сервиса:

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 -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
  -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
  -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \
  -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -jar paper.jar --nogui

Restart=on-failure
RestartSec=10

StandardInput=null
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Активируйте и запустите сервис:

sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service

Проверьте статус:

sudo systemctl status minecraft.service

Просмотр логов в реальном времени:

sudo journalctl -u minecraft.service -f

Screen/tmux или systemd

Многие руководства до сих пор рекомендуют screen или tmux. Они подходят для разработки, но имеют недостатки для продакшена:

  • Не запускаются автоматически после перезагрузки
  • Не перезапускают сервер при краше
  • Нужно вручную переподключаться к сессии

systemd решает все эти проблемы автоматически. Если вам нужен доступ к консоли, используйте mcrcon для отправки команд через RCON.

Шаг 9: Настройка файрвола

Ubuntu поставляется с ufw (Uncomplicated Firewall). Разрешите трафик Minecraft:

sudo ufw allow 25565/tcp

Если вам нужен SSH-доступ (скорее всего да):

sudo ufw allow ssh

Включите файрвол:

sudo ufw enable

Проверьте статус:

sudo ufw status

Порт 25565/tcp должен быть в списке ALLOW.

Если ваш сервер использует GeyserMC для Bedrock игроков, также откройте UDP порт:

sudo ufw allow 19132/udp

Шаг 10: Права на файлы

Убедитесь, что все файлы сервера принадлежат пользователю minecraft:

sudo chown -R minecraft:minecraft /opt/minecraft

Установите правильные права:

sudo find /opt/minecraft -type d -exec chmod 750 {} \;
sudo find /opt/minecraft -type f -exec chmod 640 {} \;
sudo chmod 750 /opt/minecraft/server/paper.jar

Это предотвратит чтение или изменение файлов сервера другими пользователями системы.

Подключение извне

VPS / Выделенный сервер

Если ваш сервер на VPS или выделенном сервере с публичным IP, игроки могут подключаться напрямую по IP-адресу и порту 25565. Дополнительная настройка не нужна, достаточно правил файрвола выше.

Домашняя сеть

Если вы запускаете сервер дома, нужно настроить проброс портов:

  1. Узнайте локальный IP сервера: ip addr show
  2. Войдите в панель роутера (обычно 192.168.1.1 или 192.168.0.1)
  3. Найдите раздел проброса портов (port forwarding)
  4. Пробросьте внешний порт 25565 (TCP) на локальный IP сервера, порт 25565
  5. Поделитесь публичным IP с игроками (узнайте его на whatismyip.com)

Для более профессионального решения рассмотрите аренду VPS. Провайдеры вроде Hetzner, OVH и Netcup предлагают бюджетные варианты от $5/месяц.

Автоперезапуск при крашах

Созданный нами systemd-сервис уже обрабатывает перезапуски с параметром Restart=on-failure. Если процесс Java упадет, systemd подождет 10 секунд и запустит его снова.

Для большей надежности можно добавить watchdog. Добавьте эту строку в секцию [Service]:

WatchdogSec=120

Это укажет systemd перезапустить сервис, если он не отвечает в течение 120 секунд. Учтите, что Paper по умолчанию не отправляет сигналы watchdog, поэтому это работает как крайний тайм-аут.

Защитите сервер с MineGuard

Как только ваш Minecraft сервер заработает, он станет мишенью для атак. DDoS-атаки невероятно распространены в Minecraft-сообществе, и даже маленькие серверы попадают под удар. Мы создали MineGuard именно для решения этой проблемы.

Наш бесплатный план предоставляет DDoS-защиту без какой-либо настройки. Просто направьте ваш домен на наш фильтр, и мы позаботимся об остальном. Никаких плагинов, никаких изменений в серверном ПО. Настройка занимает около 5 минут и работает с Paper, Purpur, Velocity и любым другим серверным софтом.

Итоги

Вот что мы рассмотрели в этом руководстве:

  1. Обновили Ubuntu и установили Java 21
  2. Создали выделенного пользователя minecraft (никогда не запускайте от root)
  3. Скачали Paper сервер
  4. Приняли EULA и настроили server.properties
  5. Применили JVM-флаги Aikar для оптимальной производительности
  6. Создали systemd-сервис для автозапуска и восстановления после сбоев
  7. Настроили правила файрвола ufw
  8. Установили правильные права на файлы
  9. Рассмотрели проброс портов для домашних сетей

Ваш сервер готов к приему игроков. Если у вас есть вопросы по защите от атак, ознакомьтесь с нашей документацией или напишите нам через личный кабинет. Мы всегда рады помочь.


Proteja Seu Servidor de Ataques DDoS

Proteção gratuita com configuração em 5 minutos. 1 TB de tráfego incluso.

Experimentar Grátis


Artigos Relacionados