Установка Minecraft сервера на Ubuntu 20.04 LTS

Этот пошаговый гид покажет, как настроить собственный Minecraft сервер на Ubuntu 20.04 LTS. Подойдёт для одиночной игры и игры с друзьями по сети. Определения: RCON — протокол удалённого управления сервером; systemd — менеджер служб в Ubuntu.
Требования
- Сервер с Ubuntu 20.04 и минимум 4 ГБ оперативной памяти.
- Установлен пароль для пользователя root или доступ по sudo.
- Базовые навыки работы с терминалом.
Важно: на боевом сервере рекомендуется выделять больше памяти (минимум 2–4 ГБ для небольших миров, 6+ ГБ для модов и большого числа игроков).
Подготовка системы
Обновите пакеты и установите инструменты сборки:
apt-get update -y
apt-get upgrade -yУстановите необходимые зависимости:
apt-get install git build-essential -yУстановка Java
Minecraft написан на Java. Устанавливаем headless-версию OpenJDK 11:
apt-get install openjdk-11-jre-headless -yПроверьте установленную версию:
java -versionОжидаемый вывод (пример):
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)Создание пользователя и директорий
Создайте отдельного системного пользователя для сервера Minecraft и рабочие каталоги:
useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraftПереключитесь на пользователя:
su - minecraftСоздайте каталоги для бэкапов, утилит и самого сервера:
mkdir ~/backups ~/tools ~/serverУстановка mcrcon (RCON-клиент)
mcrcon — лёгкий RCON-клиент на C. Скачиваем в ~/tools и собираем:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrconСобираем вручную:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.cПроверка:
./mcrcon -vОжидаемый вывод (пример):
mcrcon 0.7.1 (built: Jul 2 2020 07:44:45) - https://github.com/Tiiffi/mcrcon
Bug reports:
tiiffi+mcrcon at gmail
https://github.com/Tiiffi/mcrcon/issues/Скачивание и первая конфигурация сервера
Скачайте server.jar в каталог сервера (пример — определённая версия):
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/serverЗапустите для генерации конфигурационных файлов:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar noguiПри первом запуске появится ошибка, требующая согласия с EULA. Откройте файл eula.txt:
nano ~/server/eula.txtИзмените на:
eula=trueЗатем настройте RCON-пароль в server.properties:
nano ~/server/server.propertiesДобавьте или измените строки:
rcon.password=your-password
enable-rcon=trueСовет: используйте длинный случайный пароль и храните его в защищённом месте.
Создание systemd-сервиса
Создайте юнит systemd, чтобы сервер запускался как служба и автоматически при загрузке:
nano /etc/systemd/system/minecraft.serviceВставьте (проверьте пути и значения памяти под ваш сервер):
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p your-password stop
[Install]
WantedBy=multi-user.targetПерезагрузите демон systemd и включите сервис:
systemctl daemon-reload
systemctl start minecraft
systemctl enable minecraftПроверка статуса:
systemctl status minecraftПримерный вывод можно ожидать похожим на тот, что создаёт лог сервера. Также проверьте, что порт RCON слушает:
netstat -pnltu | grep 25575Доступ к консоли через mcrcon
Подключитесь к консоли сервера локально:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p your-password -tПри успешном подключении увидите:
Logged in. Type 'quit' or 'exit' to quit.
>Резервное копирование и восстановление
Минимальная стратегия бэкапа:
- Автоматически архивировать папку world и server.properties ежедневно.
- Хранить 7–14 последних бэкапов.
- Проверять целостность архивов.
Пример простого скрипта бэкапа (разместите в ~/backups/backup.sh и сделайте исполняемым):
#!/bin/bash
TIMESTAMP=$(date +"%F_%H%M")
BACKUP_DIR=~/backups
WORLD_DIR=/opt/minecraft/server/world
tar -czf "$BACKUP_DIR/world_$TIMESTAMP.tar.gz" -C "$WORLD_DIR" .Критерии приёмки
- Сервер запускается как systemd-сервис и имеет статус active (running).
- RCON отвечает и позволяет корректно выполнить команду stop.
- Создана и проверена копия мира.
Безопасность и жёсткая конфигурация
Важно: если вы открываете игровой порт в интернет, примените дополнительные меры безопасности.
Рекомендации:
- Запускайте сервер под непривилегированным пользователем (мы используем minecraft).
- Закройте RCON на внешних интерфейсах (слушать только 127.0.0.1) или используйте SSH-туннель.
- Ограничьте доступ к портам через UFW/iptables:
ufw allow OpenSSH
ufw allow 25565/tcp # игровой порт, откройте только при необходимости
ufw enable- Регулярно обновляйте систему и Java.
- Для публичных серверов используйте плагины/моды, которые проходят проверку сообщества (Paper/Spigot) и фильтрацию входных данных.
Альтернативные подходы
- Модифицированный сервер: Paper или Purpur дают лучшее исполнение и больше опций для управления производительностью.
- Docker-контейнеры: удобны для изоляции и миграции, но потребуют настройки томов и сети.
- Облачные управляющие панели (например, Pterodactyl) — подходят для многопользовательских хостингов.
Контрпример: для быстрой локальной игры на одном компьютере проще запустить сервер в клиенте Minecraft (LAN), вместо развёртывания systemd-сервиса.
Настройка производительности
Нейл-модель для выделения памяти:
- 1–3 игроков: 1–2 ГБ
- 4–10 игроков: 2–4 ГБ
- 10+ игроков или моды: 6+ ГБ
Параметры JVM: при необходимости настройте сборщик мусора и флаги JVM для улучшения задержек (это выходит за рамки базовой инструкции).
Рольовые чек-листы
Администратор:
- Настроить systemd и бэкап.
- Настроить RCON и мониторинг.
- Обновлять Java и пакеты.
Игрок:
- Подключиться к игровому порту сервера (обычно 25565).
- Сообщать об ошибках в логах администраторам.
Тесты и приёмка
Тесты:
- Проверить, что сервер отвечает на ping в клиенте Minecraft.
- Выполнить команду через mcrcon: /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p your-password list
- Выполнить корректную остановку сервера через systemctl stop minecraft и убедиться в наличии бэкапа.
Глоссарий (одна строка)
- RCON: протокол удалённого управления игровым сервером.
- server.jar: основной исполняемый файл серверной части Minecraft.
- systemd: менеджер служб в современных дистрибутивах Linux.
Устранение неполадок
Проблема: сервер не запускается — проверьте /opt/minecraft/server/logs/latest.log и права доступа к файлам. Если EULA=false, измените на true.
Проблема: RCON не подключается — проверьте enable-rcon=true и rcon.password в server.properties и слушает ли процесс порт 25575.
Проблема: недостаточно памяти — увеличьте -Xmx и -Xms в ExecStart или выделите больше ОЗУ хосту.
Заключение
В этой инструкции вы узнали, как развернуть базовый Minecraft сервер на Ubuntu 20.04 LTS: установка Java, создание отдельного пользователя, установка mcrcon, скачивание server.jar, согласие с EULA, создание systemd-сервиса, базовые меры безопасности и бэкап. Для публичных серверов рекомендуем изучить Paper/Purpur и продвинутую настройку JVM.
Краткое руководство по дальнейшим шагам:
- Перенесите /opt/minecraft/server на отдельный диск при больших мирах.
- Настройте регулярные бэкапы и мониторинг.
- Используйте TLS/SSH-туннели для админских интерфейсов и RCON.
Если нужны примеры systemd для нескольких инстансов, Dockerfile или шаблон скрипта бэкапа с ротацией — напишите, и я подготовлю их.
Похожие материалы
Включить NumLock при запуске Windows 10
Включить Emoji 15 на Windows 11
Unity Lights: циферблат Apple Watch для Black History Month
Обновление видеодрайвера для Rainbow Six Siege