Подробный гайд: Установка и настройка сервера Minecraft на Astra Linux
Гайд ориентирован на Astra Linux Common Edition (на базе Debian). Если вы используете Special Edition (Смоленск), в системе действует мандатный контроль доступа (MAC), который может блокировать выполнение сторонних сервисов. В конце гайда есть раздел с рекомендациями по адаптации под SE.
1. Требования и подготовка
| Компонент | Минимум | Рекомендуемо |
|---|---|---|
| CPU | 2 ядра | 4+ ядра |
| RAM | 2 ГБ | 4–8 ГБ |
| Диск | 10 ГБ | SSD 20+ ГБ |
| Сеть | Стабильный интернет, открытый порт 25565/tcp | |
| ОС | Astra Linux CE 1.7/1.8 (Debian 11/12) |
Обновите систему и установите утилиты:
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl jq tmux htop rsync ufw
2. Установка Java
Minecraft 1.20.5+ требует Java 21. Astra Linux не всегда содержит свежие пакеты в репозиториях.
Поэтому используем официальный репозиторий Adoptium (Temurin):
# Добавляем GPG-ключ и репозиторий
sudo apt install -y apt-transport-https gnupg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
sudo gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb \
$(. /etc/os-release && echo $VERSION_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install -y temurin-21-jre
java -version # Должно показать openjdk version "21.x.x"
3. Создание пользователя и загрузка сервера
Никогда не запускайте сервер от root.
sudo useradd -m -s /bin/bash mcserver
sudo su - mcserver
mkdir ~/server && cd ~/server
Загрузка последней стабильной версии (Vanilla):
LATEST=$(curl -s https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release')
URL=$(curl -s "https://launchermeta.mojang.com/mc/game/version_manifest.json" | \
jq -r --arg v "$LATEST" '.versions[] | select(.id == $v) | .url' | \
jq -r '.downloads.server.url')
wget -O server.jar "$URL"
echo "Загружена версия: $LATEST"
Рекомендация:
- Для продакшена используйте PaperMC или Purpur (оптимизация, плагины, безопасность). Заменяется аналогично: скачиваете paperclip.jar с https://papermc.io/downloads.
4. Первый запуск и принятие EULA
java -Xmx2G -Xms2G -jar server.jar nogui
Сервер остановится, создав eula.txt.
Примите лицензию:
echo "eula=true" > eula.txt
5. Настройка server.properties
Отредактируйте файл:
nano server.properties
Ключевые параметры:
| Параметр | Значение | Пояснение |
|---|---|---|
server-port |
25565 |
Стандартный порт |
max-players |
20 |
Лимит игроков |
gamemode |
survival |
Режим по умолчанию |
difficulty |
normal |
Сложность |
online-mode |
true |
Обязательно true для безопасности |
view-distance |
8-10 |
Дальность прорисовки (уменьшите для производительности) |
enable-command-block |
false |
Включайте только если нужно |
white-list |
false -> true |
Включите, если сервер приватный |
Сохраните (Ctrl+O, Enter, Ctrl+X).
6. Автоматический запуск через systemd
Создайте юнит-файл:
sudo nano /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target
[Service]
Type=simple
User=mcserver
Group=mcserver
WorkingDirectory=/home/mcserver/server
ExecStart=/usr/bin/java -Xmx4G -Xms2G -jar server.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 --now minecraft
sudo systemctl status minecraft
Просмотр логов:
journalctl -u minecraft -f --no-pager
Интерактивная консоль: systemd не поддерживает прямой ввод команд.
Для управления используйте tmux:
sudo -u mcserver tmux new -s mc "java -Xmx4G -Xms2G -jar server.jar nogui"
# Подключиться: tmux attach -t mc
# Отправить команду: tmux send-keys -t mc "stop" Enter
(В продакшене удобнее настроить RCON, см. раздел 8)
7. Настройка сетевого экрана
Astra Linux CE обычно использует ufw или iptables.
Откройте порт:
sudo ufw allow 25565/tcp comment "Minecraft Server"
sudo ufw enable
sudo ufw status
Если ufw недоступен:
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Проверьте, не блокирует ли порт NAT/роутер. Для внешнего доступа настройте проброс порта 25565 TCP.
8. Оптимизация и безопасность
JVM-флаги для производительности
Замените ExecStart в юните на:
ExecStart=/usr/bin/java -Xmx4G -Xms2G \
-XX:+UseG1GC -XX:MaxGCPauseMillis=50 \
-XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions \
-jar server.jar nogui
RCON (удалённое управление)
В server.properties:
enable-rcon=true
rcon.port=25575
rcon.password=ВашСложныйПароль
Управление: rcon-cli (установите sudo apt install rcon-cli или используйте Docker/скрипты).
Бэкапы
sudo mkdir -p /opt/mc-backups
sudo nano /opt/mc-backups/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/mc-backups/$(date +%F)"
mkdir -p "$BACKUP_DIR"
systemctl stop minecraft
tar -czf "$BACKUP_DIR/world.tar.gz" -C /home/mcserver/server world
tar -czf "$BACKUP_DIR/configs.tar.gz" -C /home/mcserver/server server.properties eula.txt ops.json whitelist.json
systemctl start minecraft
find /opt/mc-backups -type d -mtime +7 -exec rm -rf {} \; # Хранить 7 дней
sudo chmod +x /opt/mc-backups/backup.sh
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/mc-backups/backup.sh") | crontab -
Fail2ban (защита от брутфорса RCON/SSH)
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
Создайте фильтр /etc/fail2ban/filter.d/minecraft-rcon.conf при необходимости.
9. Особенности Astra Linux Special Edition (Смоленск)
Если вы используете SE:
- MAC может блокировать java. Проверьте аудит:
sudo aureport -a - Разрешите выполнение:
sudo pdp -a -e /usr/lib/jvm/temurin-21-jre-amd64/bin/java
3. Создайте профиль в /etc/astra/mac/ или временно отключите проверку для сервиса (не рекомендуется для продакшена):
sudo setenforce 0 # Только для тестов
- Для соответствия требованиям ФСТЭК используйте только сертифицированные сборки Java и настраивайте мандатные метки на директории сервера.
10. Обновление сервера
sudo systemctl stop minecraft
cd /home/mcserver/server
mv server.jar server.jar.old
# Скачайте новую версию (аналогично шагу 3)
sudo systemctl start minecraft
# Проверьте логи на ошибки совместимости
Частые проблемы и решения
| Симптом | Причина | Решение |
|---|---|---|
| Cannot allocate memory | Мало RAM или неправильные -Xmx | Уменьшите -Xmx до доступной памяти |
| Failed to bind to port | Порт занят или нет прав | sudo lsof -i :25565 или смените порт |
| EULA not accepted | Файл eula.txt не сохранён | echo "eula=true" > eula.txt |
| Java version error | Старая Java | Убедитесь, что java -version показывает 21+ |
| Astra SE блокирует запуск | MAC-политики | Настройте pdp/astra-mac или используйте CE |
Итог
Вы развернули стабильный, безопасный и оптимизированный сервер Minecraft на Astra Linux с: - Автозапуском через systemd - Защитой фаервола и бэкапами - Оптимизированной JVM - Готовностью к переходу на PaperMC и RCON