Установка 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. Дополнительная настройка не нужна, достаточно правил файрвола выше.
Домашняя сеть
Если вы запускаете сервер дома, нужно настроить проброс портов:
- Узнайте локальный IP сервера:
ip addr show - Войдите в панель роутера (обычно 192.168.1.1 или 192.168.0.1)
- Найдите раздел проброса портов (port forwarding)
- Пробросьте внешний порт 25565 (TCP) на локальный IP сервера, порт 25565
- Поделитесь публичным 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 и любым другим серверным софтом.
Итоги
Вот что мы рассмотрели в этом руководстве:
- Обновили Ubuntu и установили Java 21
- Создали выделенного пользователя
minecraft(никогда не запускайте от root) - Скачали Paper сервер
- Приняли EULA и настроили server.properties
- Применили JVM-флаги Aikar для оптимальной производительности
- Создали systemd-сервис для автозапуска и восстановления после сбоев
- Настроили правила файрвола ufw
- Установили правильные права на файлы
- Рассмотрели проброс портов для домашних сетей
Ваш сервер готов к приему игроков. Если у вас есть вопросы по защите от атак, ознакомьтесь с нашей документацией или напишите нам через личный кабинет. Мы всегда рады помочь.
Protege tu servidor contra ataques DDoS
Protección gratuita con configuración en 5 minutos. 1 TB de tráfico incluido.
Probar gratisArtículos relacionados
mcMMO: RPG скилы и прокачка персонажа на Minecraft сервере
Гайд по mcMMO: 14 скилов, super abilities, party-система, MySQL и совместимость с античитом на Paper 1.20-1.21.
Что такое DDoS-атака - простое объяснение для владельцев серверов
Объясняем DDoS-атаки человеческим языком, без сложных терминов. Что это такое, какие бывают типы, почему атакуют игровые серверы и что реально помогает от атак. С аналогиями и примерами.
Cloudflare vs выделенная DDoS-защита для игровых серверов
Разбираем Cloudflare Spectrum, бесплатный тариф и CDN-подход к защите игровых серверов. Сравниваем с выделенной DDoS-защитой для гейминга: задержки, стоимость, поддержка протоколов, реальные сценарии.