Шаг 1: Подготовка системы
1.1. Обновление пакетов
sudo apt update
sudo apt upgrade -y
1.2. Установка Java (выберите подходящую версию)
Для версий Minecraft 1.17+ требуется Java 17+
# Проверьте текущую версию Java
java --version
# Установите Java 17 (рекомендуется для большинства версий)
sudo apt install openjdk-17-jre-headless -y
# Или Java 21 для новейших версий
# sudo apt install openjdk-21-jre-headless -yПроверка установки:
java --version
# Должно показать что-то вроде: openjdk 17.0.10 2024-01-16
Шаг 2: Создание директории для сервера
# Создаем папку в удобном месте (например, в домашней директории)
mkdir ~/minecraft-server
cd ~/minecraft-server
Шаг 3: Загрузка серверного файла
3.1. Способ A: Официальный сервер от Mojang
# Скачиваем последнюю версию сервера
wget https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar
# Примечание: ссылка может меняться, актуальную смотрите на minecraft.net
# Или для конкретной версии, например, 1.20.4:
# wget https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar3.2. Способ B: PaperMC (оптимизированный, рекомендуется)
# Перейдите на сайт papermc.io, чтобы получить актуальную ссылку
# Пример для Paper 1.20.4:
wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/445/downloads/paper-1.20.4-445.jar -O server.jar
Шаг 4: Первый запуск и настройка
4.1. Создайте скрипт запуска
nano start.shСодержимое файла start.sh:
#!/bin/bash
# Скрипт запуска Minecraft сервера
# Параметры Java
MIN_RAM="1G" # Минимальная память
MAX_RAM="2G" # Максимальная память (увеличьте для модов/плагинов)
# Дополнительные параметры JVM
JAVA_ARGS="-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:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1"
# Запуск сервера
java -Xms${MIN_RAM} -Xmx${MAX_RAM} ${JAVA_ARGS} -jar server.jar noguiДайте права на выполнение:
chmod +x start.sh
4.2. Первый запуск сервера
./start.shПри первом запуске произойдет:
Создадутся базовые файлы и папки
Сервер остановится с ошибкой EULA
4.3. Принятие EULA
# Откройте файл eula.txt
nano eula.txtИзмените строку:
eula=falseНа:
eula=trueСохраните файл (Ctrl+X, затем Y, затем Enter)
Шаг 5: Основная настройка сервера
5.1. Настройка server.properties
nano server.propertiesОсновные параметры для настройки:
# Название сервера (максимум 59 символов)
motd=Мой первый сервер
# Порт (стандартный 25565)
server-port=25565
# Режим игры (survival, creative, adventure, spectator)
gamemode=survival
# Сложность (peaceful, easy, normal, hard)
difficulty=easy
# Максимальное количество игроков
max-players=20
# Онлайн-режим (true - только лицензия, false - пираты тоже)
online-mode=true
# Белый список (false - все могут зайти, true - только добавленные)
white-list=false
# PvP (true - можно драться, false - нельзя)
pvp=true
# Генерация структур (деревни, храмы и т.д.)
generate-structures=true
# Разрешить нетеры (true - можно летать)
allow-flight=false
# Вид на мир (normal - обычный, largeBiomes - большие биомы, amplified - усиленный, flat - плоский)
level-type=normal
5.2. Настройка операторов (админов)
# Сначала запустите сервер
./start.sh
# В консоли сервера (или создайте файл ops.json вручную):
op <никнейм_игрока>
# Например: op Alexey
Шаг 6: Автозапуск при загрузке системы (systemd)
6.1. Создаем службу
sudo nano /etc/systemd/system/minecraft.serviceСодержимое файла:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
Type=simple
User=ваш_пользователь # замените на ваше имя пользователя
WorkingDirectory=/home/ваш_пользователь/minecraft-server # путь к папке сервера
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar server.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetПример с конкретным пользователем:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
Type=simple
User=alexey
WorkingDirectory=/home/alexey/minecraft-server
ExecStart=/usr/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -jar server.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
6.2. Активируем службу
# Перезагружаем systemd
sudo systemctl daemon-reload
# Включаем автозагрузку
sudo systemctl enable minecraft
# Запускаем сервер
sudo systemctl start minecraft
# Проверяем статус
sudo systemctl status minecraft
# Просмотр логов
sudo journalctl -u minecraft -f
Шаг 7: Открытие портов в фаерволе
7.1. Для UFW (Ubuntu/Debian)
sudo ufw allow 25565/tcp
sudo ufw allow 25565/udp
sudo ufw reload
7.2. Для firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --permanent --add-port=25565/udp
sudo firewall-cmd --reload
Шаг 8: Подключение к серверу
В игре: Меню → Сетевая игра → Добавить сервер
Адрес сервера:
Для локальной сети: localhost или ваш_локальный_ip
Для интернета: ваш_публичный_ip (найдите через curl ifconfig.me)
Порт: 25565 (если не меняли)
Шаг 9: Управление сервером
Основные команды в консоли:
# Остановить сервер
stop
# Сохранить мир
save-all
# Перезагрузить конфигурацию
reload
# Список игроков
list
# Выдать предмет
give <никнейм> <предмет> [количество]
# Телепортировать игрока
tp <никнейм1> <никнейм2>
Шаг 10: Резервное копирование
Создайте скрипт бэкапа:
nano backup.shСодержимое:
#!/bin/bash
cd /home/ваш_пользователь/minecraft-server
tar -czf backup-$(date +%Y-%m-%d-%H-%M).tar.gz world/ world_nether/ world_the_end/ server.properties
# Удаляем старые бэкапы (старше 7 дней)
find . -name "backup-*.tar.gz" -mtime +7 -deletechmod +x backup.sh
Автоматический бэкап (cron):
crontab -e
# Добавьте строку (бэкап каждый день в 3 ночи):
0 3 * * * /home/ваш_пользователь/minecraft-server/backup.sh
Частые проблемы и решения:
"Can't bind to port" - порт занят:
sudo netstat -tulpn | grep :25565
# Или измените порт в server.properties Не хватает памяти:
# Увеличьте Xmx в start.sh или службе systemd
# Например: -Xms4G -Xmx8G Медленная работа:
# Установите PaperMC вместо vanilla
# Добавьте флаги оптимизации в JAVA_ARGS
# Выделите больше RAM Игроки не могут подключиться:
Проверьте фаервол
Убедитесь, что порт проброшен на роутере
Проверьте online-mode в server.properties
Дополнительные улучшения:
Установка плагинов (для Paper/Spigot):
# Скачайте плагины в папку plugins/
mkdir plugins
cd plugins
wget https://example.com/plugin.jar Моды (для Forge/Fabric):
Используйте соответствующий серверный файл
Поместите моды в папку mods/
Панель управления:
Pterodactyl - профессиональная панель
AMP - простая в установке
Crafty Controller - веб-интерфейс
Мониторинг:
# Установите htop для мониторинга ресурсов
sudo apt install htop
htop Теперь у вас должен работать полноценный Minecraft-сервер на Linux! Сервер будет автоматически запускаться при загрузке системы и перезапускаться при сбоях.