Minecraft в 2026 году
Установка и эксплуатация выделенного сервера Minecraft на Ubuntu 24.04 LTS
Minecraft Java Server — выделенный сервер для Minecraft Java Edition.
В этой статье рассматривается установка сервера на Ubuntu 24.04 LTS с отдельным системным пользователем, автоматическим запуском через systemd, RCON-управлением и резервным копированием.
Конфигурация подходит для виртуальной машины, физического сервера или LXC-контейнера.
Архитектура
Базовая схема сервера:
Игроки
│
│ TCP :25565
▼
┌───────────────┐
│ Minecraft │
│ Java Server │
└───────┬───────┘
│
┌────────┴────────┐
│ │
▼ ▼
systemd RCON
│
▼
mcrcon
В production-конфигурации Minecraft запускается не вручную, а как системная служба.
Системные требования
| Параметр | Минимально | Рекомендуется |
|---|---|---|
| CPU | 2 vCPU | 4+ производительных ядра |
| RAM | 4 ГБ | 8 ГБ и более |
| Диск | 20 ГБ | 50+ ГБ SSD |
| ОС | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
| Сеть | 25565/TCP | Статический IP или NAT |
При большой дальности прорисовки, большом количестве игроков или тяжёлых модификациях требования к CPU и RAM могут значительно возрастать.
Подготовка системы
Обновляем систему:
apt update
apt upgrade -y
Устанавливаем необходимые инструменты:
apt install -y \
wget \
curl \
git \
nano \
unzip \
build-essential
Проверяем время и часовой пояс:
timedatectl
При необходимости:
timedatectl set-timezone Europe/Moscow
Установка Java
Версия Java зависит от версии Minecraft.
Перед установкой рекомендуется проверить требования конкретной версии сервера.
Для современных версий Minecraft обычно используется Java 21:
apt install -y openjdk-21-jdk
Проверяем:
java -version
Пример:
openjdk version "21"
OpenJDK Runtime Environment
OpenJDK 64-Bit Server VM
Проверка установленной Java
Путь до Java:
which java
Обычно:
/usr/bin/java
Создание пользователя Minecraft
Minecraft не следует запускать от имени root.
Создаём отдельного системного пользователя:
useradd \
--system \
--create-home \
--user-group \
--home-dir /opt/minecraft \
--shell /bin/bash \
minecraft
Проверяем:
id minecraft
Переходим под него:
su - minecraft
Домашним каталогом пользователя будет:
/opt/minecraft
Структура каталогов
Создаём:
mkdir -p ~/server
mkdir -p ~/backups
mkdir -p ~/tools
Структура:
/opt/minecraft/
├── server/
│ ├── server.jar
│ ├── server.properties
│ ├── eula.txt
│ ├── world/
│ └── logs/
│
├── backups/
│
└── tools/
Назначение:
- server — сервер Minecraft;
- backups — резервные копии;
- tools — вспомогательные утилиты.
Установка mcrcon
mcrcon используется для отправки команд Minecraft через RCON.
Клонируем проект:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
Компилируем:
cd ~/tools/mcrcon
make
Проверяем:
./mcrcon -v
Установка Minecraft Server
Переходим:
cd /opt/minecraft/server
Актуальный файл server.jar необходимо скачивать с официального сайта Minecraft/Mojang.
После получения ссылки:
wget -O server.jar \
'https://piston-data.mojang.com/.../server.jar'
Проверяем:
ls -lh server.jar
Первый запуск
Первый запуск нужен для генерации конфигурации:
java -Xms2G -Xmx4G -jar server.jar nogui
Сервер остановится, поскольку EULA ещё не принята.
После запуска появятся:
eula.txt
server.properties
logs/
Принятие EULA
Открываем:
nano eula.txt
Меняем:
eula=false
на:
eula=true
Сохраняем файл.
Базовая настройка server.properties
Открываем:
nano server.properties
Основные параметры:
server-port=25565
max-players=100
online-mode=true
enable-command-block=false
view-distance=10
simulation-distance=10
motd=RAMBA-ART Minecraft Server
Для публичного сервера рекомендуется оставлять:
online-mode=true
Это включает проверку учётных записей Mojang/Microsoft.
Настройка RCON
В `server.properties`:
enable-rcon=true
rcon.port=25575
rcon.password=CHANGE_THIS_PASSWORD
broadcast-rcon-to-ops=true
После изменения сервер необходимо перезапустить.
Безопасность RCON
RCON не рекомендуется публиковать напрямую в Интернет.
Предпочтительная схема:
mcrcon
│
│ 127.0.0.1:25575
▼
Minecraft Server
То есть порт `25575` должен использоваться только локально либо через защищённую административную сеть/VPN.
Проверка ручного запуска
Запускаем:
cd /opt/minecraft/server
java -Xms4G -Xmx6G \
-jar server.jar \
nogui
Если сервер успешно загрузился, в консоли появится сообщение примерно:
Done (...)! For help, type "help"
После проверки останавливаем:
stop
Создание systemd-службы
Выходим из пользователя Minecraft:
exit
Создаём:
nano /etc/systemd/system/minecraft.service
Содержимое:
[Unit]
Description=Minecraft Java Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java \
-Xms4G \
-Xmx6G \
-jar /opt/minecraft/server/server.jar \
nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
Применяем:
systemctl daemon-reload
systemctl enable --now minecraft
Проверяем:
systemctl status minecraft
Управление сервером
Запуск:
systemctl start minecraft
Остановка:
systemctl stop minecraft
Перезапуск:
systemctl restart minecraft
Статус:
systemctl status minecraft
Логи:
journalctl -u minecraft -f
Последние 100 строк:
journalctl -u minecraft -n 100
Подключение через RCON
Под пользователем Minecraft:
su - minecraft
Подключение:
/opt/minecraft/tools/mcrcon/mcrcon \
-H 127.0.0.1 \
-P 25575 \
-p 'CHANGE_THIS_PASSWORD' \
-t
После подключения можно выполнять команды сервера:
list
say Server restart in 5 minutes
save-all
whitelist list
stop
Выход из интерактивного режима mcrcon:
Q
Настройка Firewall
Для игроков требуется только:
25565/TCP
При использовании UFW:
ufw allow 25565/tcp
Проверяем:
ufw status
RCON-порт 25575/TCP не следует открывать для всего Интернета.
Если сервер находится в LXC или VM под Proxmox, правила можно централизованно управлять через Proxmox Firewall.
Проверка порта Minecraft
Проверяем локально:
ss -ltnp | grep 25565
Ожидаемый результат:
LISTEN ... :25565
Также можно проверить процесс:
ps aux | grep '[s]erver.jar'
Резервное копирование
Для корректного backup мира желательно сначала заставить Minecraft записать данные на диск.
Создаём конфигурационный файл для RCON:
nano /opt/minecraft/.rcon.env
Содержимое:
RCON_HOST=127.0.0.1
RCON_PORT=25575
RCON_PASSWORD='CHANGE_THIS_PASSWORD'
Ограничиваем доступ:
chown minecraft:minecraft /opt/minecraft/.rcon.env
chmod 600 /opt/minecraft/.rcon.env
Создаём backup-скрипт:
nano /opt/minecraft/tools/backup.sh
Содержимое:
#!/bin/bash
set -e
source /opt/minecraft/.rcon.env
RCON="/opt/minecraft/tools/mcrcon/mcrcon"
BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"
TIMESTAMP="$(date +%F-%H-%M-%S)"
BACKUP_FILE="${BACKUP_DIR}/minecraft-${TIMESTAMP}.tar.gz"
$RCON \
-H "$RCON_HOST" \
-P "$RCON_PORT" \
-p "$RCON_PASSWORD" \
"save-off"
$RCON \
-H "$RCON_HOST" \
-P "$RCON_PORT" \
-p "$RCON_PASSWORD" \
"save-all flush"
tar \
--exclude='./logs' \
-czf "$BACKUP_FILE" \
-C "$SERVER_DIR" \
.
$RCON \
-H "$RCON_HOST" \
-P "$RCON_PORT" \
-p "$RCON_PASSWORD" \
"save-on"
find "$BACKUP_DIR" \
-type f \
-name 'minecraft-*.tar.gz' \
-mtime +7 \
-delete
Делаем исполняемым:
chmod +x /opt/minecraft/tools/backup.sh
chown minecraft:minecraft /opt/minecraft/tools/backup.sh
Тестируем:
su - minecraft -c '/opt/minecraft/tools/backup.sh'
Проверяем:
ls -lh /opt/minecraft/backups/
Автоматическое резервное копирование
Переходим:
su - minecraft
Открываем:
crontab -e
Например, ежедневный backup в 04:00:
0 4 * * * /opt/minecraft/tools/backup.sh >> /opt/minecraft/backups/backup.log 2>&1Проверяем:
crontab -l
Обновление Minecraft Server
Перед обновлением:
- создаём резервную копию;
- останавливаем сервер;
- сохраняем старый `server.jar`;
- устанавливаем новый;
- запускаем сервер;
- проверяем логи и совместимость мира.
Пример:
systemctl stop minecraft
cp /opt/minecraft/server/server.jar \
/opt/minecraft/server/server.jar.old
После загрузки нового файла:
systemctl start minecraft
journalctl -u minecraft -f
Проверка ресурсов
CPU и память:
top
или:
htop
Память:
free -h
Диск:
df -h
Размер мира:
du -sh /opt/minecraft/server/world*
Java и Minecraft
Требования Java меняются вместе с Minecraft.
Общее правило:
| Minecraft | Java |
|---|---|
| 1.20.5 и новее | Java 21 |
| Старые версии | Требования зависят от конкретного релиза |
Перед обновлением необходимо проверять требования именно для устанавливаемой версии Minecraft.
Не стоит обновлять Java исключительно потому, что появилась более новая версия JDK.
Типичные проблемы
Сервер не запускается
Проверяем:
systemctl status minecraft
journalctl -u minecraft -n 100
Ошибка памяти
Проверяем:
free -h
При необходимости уменьшаем:
-Xmx
Клиенты не подключаются
Проверяем:
ss -ltnp | grep 25565
Затем:
- Firewall;
- NAT;
- проброс портов;
- публичный IP;
- `server-port`;
- `server-ip`.
Обычно `server-ip` рекомендуется оставлять пустым.
RCON не работает
Проверяем:
grep -E 'enable-rcon|rcon.port' \
/opt/minecraft/server/server.properties
И:
ss -ltnp | grep 25575
Рекомендации
Для production-сервера рекомендуется:
- запускать Minecraft от отдельного пользователя;
- использовать systemd;
- не открывать RCON в Интернет;
- выполнять ежедневные backup;
- хранить резервные копии вне основного сервера;
- использовать SSD;
- контролировать свободное место;
- регулярно проверять логи;
- делать backup перед обновлением;
- обновлять сервер только после проверки совместимости Java и Minecraft.
Полезные команды
| Задача | Команда |
|---|---|
| Запуск | systemctl start minecraft
|
| Остановка | systemctl stop minecraft
|
| Перезапуск | systemctl restart minecraft
|
| Статус | systemctl status minecraft
|
| Логи | journalctl -u minecraft -f
|
| Проверить порт | grep 25565 |
| Проверить Java | java -version
|
| Проверить память | free -h
|
| Проверить диск | df -h
|
Итоговая архитектура
Minecraft Client
│
│ TCP :25565
▼
┌──────────────────────────┐
│ Minecraft Server │
│ │
│ server.jar │
└────────────┬─────────────┘
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
systemd mcrcon backups
│
▼
localhost RCON
Такой вариант удобен для постоянной эксплуатации, обновления, диагностики и восстановления сервера.