Как установить Minecraft сервер?
Пошаговая установка и базовая настройка сервера Minecraft на вашем VPS.
Подготовка сервера
Системные требования
- ОЗУ: минимум 2GB, рекомендуется 4GB+
- CPU: 2+ ядра
- Диск: 10GB+ свободного места
- ОС: Ubuntu 20.04+ или CentOS 8+
Установка Java
Терминал
# Ubuntu/Debian sudo apt update sudo apt install openjdk-17-jdk # CentOS/RHEL sudo yum install java-17-openjdk-devel
Проверяем установку:
Терминал
java -version
Скачивание сервера
Официальный сервер
Терминал
# Создаем папку для сервера mkdir minecraft-server cd minecraft-server # Скачиваем последнюю версию wget https://launcher.mojang.com/v1/objects/8f3112a1049751cc472ec13e397eade5336ca7ae/server.jar
Paper (рекомендуется)
Терминал
# Скачиваем Paper wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/494/downloads/paper-1.20.4-494.jar
Первый запуск
Терминал
# Запускаем сервер java -Xmx2G -Xms1G -jar paper-1.20.4-494.jar nogui
При первом запуске:
- Сервер создаст файл
eula.txt - Откройте файл и измените
eula=falseнаeula=true - Перезапустите сервер
Базовая настройка
server.properties
1# Основные настройки
2server-name=Мой сервер
3motd=Добро пожаловать на сервер!
4max-players=20
5online-mode=true
6
7# Сетевые настройки
8server-port=25565
9server-ip=
10
11# Игровые настройки
12gamemode=survival
13difficulty=normal
14hardcore=false
15pvp=true
16
17# Мир
18level-name=world
19level-type=minecraft\:normalОптимизация производительности
Терминал
# Создаем скрипт запуска nano start.sh
Терминал
#!/bin/bash
java -Xmx4G -Xms2G \
-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:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar paper-1.20.4-494.jar noguiТерминал
# Делаем скрипт исполняемым chmod +x start.sh
Автозапуск с systemd
Создание сервиса
Терминал
sudo nano /etc/systemd/system/minecraft.service
📄config(ini)
[Unit] Description=Minecraft Server After=network.target [Service] Type=simple User=minecraft WorkingDirectory=/home/minecraft/server ExecStart=/home/minecraft/server/start.sh Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Настройка пользователя
Терминал
# Создаем пользователя для Minecraft sudo useradd -m -s /bin/bash minecraft sudo usermod -aG sudo minecraft # Передаем права на папку sudo chown -R minecraft:minecraft /home/minecraft/server
Управление сервисом
Терминал
# Перезагружаем systemd sudo systemctl daemon-reload # Включаем автозапуск sudo systemctl enable minecraft # Запускаем сервер sudo systemctl start minecraft # Проверяем статус sudo systemctl status minecraft # Останавливаем сервер sudo systemctl stop minecraft
Полезные команды
Управление сервером
Терминал
# Подключение к консоли сервера sudo systemctl attach minecraft # Отправка команд на сервер echo "say Привет всем!" | sudo systemctl start minecraft # Просмотр логов sudo journalctl -u minecraft -f
Резервное копирование
Терминал
# Создаем скрипт бэкапа nano backup.sh
Терминал
#!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/home/minecraft/backups" SERVER_DIR="/home/minecraft/server" mkdir -p $BACKUP_DIR # Останавливаем сервер sudo systemctl stop minecraft # Создаем архив tar -czf $BACKUP_DIR/minecraft_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end # Запускаем сервер sudo systemctl start minecraft # Удаляем старые бэкапы (старше 7 дней) find $BACKUP_DIR -name "minecraft_*.tar.gz" -mtime +7 -delete
Терминал
# Добавляем в cron для ежедневного бэкапа crontab -e # Добавляем строку: 0 3 * * * /home/minecraft/backup.sh
Плагины (Paper)
Установка плагинов
Терминал
# Создаем папку для плагинов mkdir plugins # Скачиваем популярные плагины cd plugins # WorldEdit wget https://dev.bukkit.org/projects/worldedit/files/latest # EssentialsX wget https://ci.essentialsx.net/job/EssentialsX/lastSuccessfulBuild/artifact/Essentials/target/EssentialsX-2.20.1.jar # LuckPerms wget https://download.lucko.me/LuckPerms/bukkit/5.4.87/LuckPerms-Bukkit-5.4.87.jar
Настройка EssentialsX
1# config.yml
2motd: "&6Добро пожаловать на сервер!"
3spawn:
4 world: world
5 x: 0
6 y: 64
7 z: 0Мониторинг
htop для мониторинга ресурсов
Терминал
sudo apt install htop htop
Проверка использования портов
Терминал
netstat -tulpn | grep :25565
Мониторинг логов
Терминал
# Установка multitail для удобного просмотра логов sudo apt install multitail # Просмотр логов сервера multitail /home/minecraft/server/logs/latest.log
Безопасность
Настройка файрвола
Терминал
# UFW (Ubuntu) sudo ufw allow 25565/tcp sudo ufw enable # iptables (CentOS) sudo firewall-cmd --permanent --add-port=25565/tcp sudo firewall-cmd --reload
Ограничение доступа
Терминал
# Создаем whitelist echo "player1" >> whitelist.json echo "player2" >> whitelist.json # Включаем whitelist в server.properties whitelist=true
Решение проблем
Сервер не запускается
- Проверьте версию Java:
java -version - Убедитесь, что порт 25565 свободен:
netstat -tulpn | grep :25565 - Проверьте права доступа к файлам:
ls -la
Высокое использование CPU
- Уменьшите view-distance в server.properties
- Установите плагин для оптимизации (Paper уже оптимизирован)
- Проверьте количество мобов:
/kill @e[type=minecraft:zombie]
Проблемы с памятью
- Увеличьте -Xmx в скрипте запуска
- Проверьте использование памяти:
free -h - Настройте GC параметры
Полезные ссылки
Заключение
Теперь у вас есть полностью настроенный Minecraft сервер! Не забывайте делать регулярные бэкапы и следить за производительностью.