Подробный гайд: Установка и настройка сервера Minecraft на Alt Linux

Установка и настройка Minecraft-сервера на Alt Linux: Java 21, systemd, firewall, оптимизация, бэкапы. Пошаговое руководство для стабильной работы.

2026.04.16                  


Подробный гайд: Установка и настройка сервера Minecraft на Alt LinuxПодробный гайд: Установка и настройка сервера Minecraft на Alt Linux

Системные требования

Компонент Минимум Рекомендация
CPU 2 ядра 4+ ядра (высокая однопоточная производительность)
ОЗУ 2 ГБ 4–8 ГБ (зависит от модов/плагинов и числа игроков)
Диск 10 ГБ SSD, 20+ ГБ (мир растёт быстро)
ОС Alt Linux 10/11 (Server/Workstation) Последнее стабильное обновление
Java 21 OpenJDK 21 (требуется для Minecraft 1.20.5+)

Важно:

  • Начиная с версии 1.20.5 Mojang официально требует Java 21. Более старые версии не поддерживаются.

Шаг 1. Обновление системы и установка Java

Alt Linux использует apt-get (обёртку над RPM).

Обновите репозитории и установите headless-версию OpenJDK:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install java-21-openjdk-headless wget curl -y

Проверьте версию:

java -version
# Ожидаемый вывод: openjdk version "21.0.x" ...

Если пакет не найден, убедитесь, что подключён репозиторий p10 или sisyphus: sudo apt-get install alt-repo-setup (обычно уже настроен в стандартных сборках).

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

Никогда не запускайте сервер от root.

Создайте системного пользователя:

sudo useradd -m -s /bin/bash -U minecraft
sudo passwd minecraft  # задайте пароль или оставьте заблокированным, если вход по SSH-ключам

Переключитесь на него:

su - minecraft

Шаг 3. Загрузка ядра сервера

Создайте рабочую директорию и загрузите официальный server.jar:

mkdir ~/minecraft-server && cd ~/minecraft-server

Скачайте актуальную версию с официального сайта:

# 1. Откройте https://www.minecraft.net/ru-ru/download/server
# 2. Скопируйте прямую ссылку на server.jar
# 3. Вставьте в команду ниже:
wget -O server.jar "https://piston-data.mojang.com/v1/objects/.../server.jar"

Альтернатива:

  • Для стабильности и производительности рекомендуется PaperMC или Fabric. Скачайте их paperclip.jar / fabric-server-launch.jar с официальных сайтов по аналогичной схеме.

Шаг 4. Первый запуск и принятие EULA

java -Xmx2G -Xms2G -jar server.jar nogui

Сервер завершится с ошибкой "You need to agree to the EULA".

Примите лицензию:

sed -i 's/eula=false/eula=true/' eula.txt

Шаг 5. Базовая настройка server.properties

Отредактируйте файл:

nano server.properties

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

# Сетевые
server-port=25565
online-mode=true          # Оставьте true для безопасности
white-list=false          # Включите true + используйте /whitelist add для приватных серверов

# Мир и геймплей
difficulty=normal
max-players=20
view-distance=8           # 6-10 оптимально для производительности
simulation-distance=6     # Снижает нагрузку на CPU
motd=A Minecraft Server on Alt Linux

# Производительность
max-tick-time=60000       # 60 сек, предотвращает краши при лагах
network-compression-threshold=256

Сохраните (Ctrl+O, Enter, Ctrl+X).

Шаг 6. Создание systemd-сервиса

Вернитесь в root (exit) и создайте unit-файл:

sudo nano /etc/systemd/system/minecraft.service

Вставьте:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/home/minecraft/minecraft-server
ExecStart=/usr/bin/java -Xmx4G -Xms4G -jar server.jar nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 1
Environment=LANG=en_US.UTF-8

[Install]
WantedBy=multi-user.target

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

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft

Управление: sudo systemctl start|stop|restart minecraft

Шаг 7. Настройка брандмауэра

Alt Linux Server обычно использует firewalld.

Разрешите порт 25565:

sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload

Если в вашей сборке используется iptables:

sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save | sudo tee /etc/sysconfig/iptables
sudo systemctl restart iptables

Проверьте открытость порта (с другой машины или через nmap):

nmap -p 25565 ваш_внешний_IP

Шаг 8. Оптимизация JVM и безопасность

Рекомендуемые флаги Java 21 (Aikar's Flags)

Замените ExecStart в сервисе на:

ExecStart=/usr/bin/java -Xms4G -Xmx4G \
  -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
  -XX:+AlwaysPreTouch -XX:G1HeapRegionSize=16M \
  -Dlog4j2.formatMsgNoLookups=true \
  -jar server.jar nogui

Подстройте -Xms и -Xmx под ваш объём ОЗУ. Разница между ними не должна превышать 1–2 ГБ для стабильности.

Безопасность

  • online-mode=true — обязательно, если не используете лицензионный прокси (AuthMe/BungeeCord).
  • Регулярно обновляйте ядро сервера и Java.
  • Отключите RCON, если не используете: enable-rcon=false.
  • Настройте whitelist для приватных серверов.
  • Ограничьте доступ к серверу по IP через firewall-cmd --add-rich-rule или iptables -s.

Шаг 9. Резервное копирование и обслуживание

Создайте скрипт бэкапа:

sudo nano /usr/local/bin/mc-backup.sh
#!/bin/bash
BACKUP_DIR="/var/backups/minecraft"
DATE=$(date +%F_%H-%M)
mkdir -p "$BACKUP_DIR"
systemctl stop minecraft
tar -czf "$BACKUP_DIR/world_$DATE.tar.gz" -C /home/minecraft/minecraft-server world server.properties eula.txt
systemctl start minecraft
# Удаляем бэкапы старше 14 дней
find "$BACKUP_DIR" -name "world_*.tar.gz" -mtime +14 -delete

Сделайте исполняемым и добавьте в cron:

sudo chmod +x /usr/local/bin/mc-backup.sh
sudo crontab -e
# Добавьте строку (бэкап каждый день в 03:00):
0 3 * * * /usr/local/bin/mc-backup.sh >> /var/log/mc-backup.log 2>&1

Диагностика и частые ошибки

Проблема Решение
Failed to bind to port Порт занят или нет прав. sudo ss -tulpn | grep 25565. Проверьте firewall-cmd/iptables.
OutOfMemoryError Уменьшите -Xmx или увеличьте ОЗУ. Проверьте view-distance и количество игроков.
Сервис не стартует journalctl -u minecraft -e --no-pager покажет точную ошибку. Часто: права на папку, отсутствие eula=true, битый server.jar.
Лаги, высокий TPS drop Снизьте simulation-distance, отключите лишние плагины, проверьте диски (iostat), используйте PaperMC.
Игроки не подключаются Проверьте внешний IP, проброс портов на роутере, online-mode, статус фаервола.

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

journalctl -u minecraft -f
# или через консоль сервера (если используется tmux/screen)
sudo -u minecraft tmux attach -t mc  # при ручной консоли

Итоговый чек-лист

  • [ ] Установлена Java 21 (headless)
  • [ ] Сервер запущен от пользователя minecraft
  • [ ] eula=true указан
  • [ ] server.properties настроен под ваш проект
  • [ ] systemd сервис активен и включён в автозагрузку
  • [ ] Порт 25565 открыт в фаерволе
  • [ ] JVM-флаги оптимизированы
  • [ ] Настроен автоматический бэкап
  • [ ] online-mode=true и/или whitelist активны

Если планируете устанавливать плагины (Paper/Spigot) или моды (Fabric/Forge), структура директорий и запуск не меняются, но потребуются дополнительные флаги JVM и совместимые версии библиотек.