Установка и настройка Spigot-Paper сервера — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка Spigot/Paper сервера = == 1. Подготовка системы == * Войдите в систему под…»)
 
 
Строка 7: Строка 7:
 
* Рекомендуется использовать Ubuntu 24.04 LTS для стабильной работы.
 
* Рекомендуется использовать Ubuntu 24.04 LTS для стабильной работы.
  
== 2. Установка Java ===
+
== 2. Установка Java ==
  
 
=== Обновление системы ===
 
=== Обновление системы ===
  
 
1. Обновите систему:
 
1. Обновите систему:
<code>sudo apt update</code>
+
<pre>sudo apt update</pre>
<code>sudo apt upgrade -y</code>
+
<pre>sudo apt upgrade -y</pre>
  
 
2. Установите необходимые пакеты:
 
2. Установите необходимые пакеты:
<code>sudo apt install -y wget curl unzip screen htop git</code>
+
<pre>sudo apt install -y wget curl unzip screen htop git</pre>
  
 
=== Установка OpenJDK ===
 
=== Установка OpenJDK ===
  
 
1. Установите OpenJDK 21 (рекомендуется для Spigot/Paper):
 
1. Установите OpenJDK 21 (рекомендуется для Spigot/Paper):
<code>sudo apt install -y openjdk-21-jdk</code>
+
<pre>sudo apt install -y openjdk-21-jdk</pre>
  
 
2. Проверьте версию Java:
 
2. Проверьте версию Java:
<code>java --version</code>
+
<pre>java --version</pre>
  
 
3. Установите альтернативную версию Java:
 
3. Установите альтернативную версию Java:
<code>sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1</code>
+
<pre>sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1</pre>
  
 
=== Настройка переменных окружения ===
 
=== Настройка переменных окружения ===
  
 
1. Настройте JAVA_HOME:
 
1. Настройте JAVA_HOME:
<code>echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc</code>
+
<pre>echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc</pre>
<code>echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc</code>
+
<pre>echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc</pre>
  
 
2. Примените изменения:
 
2. Примените изменения:
<code>source ~/.bashrc</code>
+
<pre>source ~/.bashrc</pre>
  
== 3. Создание пользователя для Minecraft ===
+
== 3. Создание пользователя для Minecraft ==
  
 
=== Создание пользователя ===
 
=== Создание пользователя ===
  
 
1. Создайте пользователя minecraft:
 
1. Создайте пользователя minecraft:
<code>sudo useradd -m -s /bin/bash minecraft</code>
+
<pre>sudo useradd -m -s /bin/bash minecraft</pre>
  
 
2. Установите пароль:
 
2. Установите пароль:
<code>sudo passwd minecraft</code>
+
<pre>sudo passwd minecraft</pre>
  
 
3. Добавьте пользователя в группу sudo:
 
3. Добавьте пользователя в группу sudo:
<code>sudo usermod -aG sudo minecraft</code>
+
<pre>sudo usermod -aG sudo minecraft</pre>
  
 
=== Настройка директорий ===
 
=== Настройка директорий ===
  
 
1. Создайте директории для серверов:
 
1. Создайте директории для серверов:
<code>sudo mkdir -p /opt/minecraft/spigot</code>
+
<pre>sudo mkdir -p /opt/minecraft/spigot</pre>
<code>sudo mkdir -p /opt/minecraft/paper</code>
+
<pre>sudo mkdir -p /opt/minecraft/paper</pre>
  
 
2. Установите права доступа:
 
2. Установите права доступа:
<code>sudo chown -R minecraft:minecraft /opt/minecraft</code>
+
<pre>sudo chown -R minecraft:minecraft /opt/minecraft</pre>
  
 
3. Переключитесь на пользователя minecraft:
 
3. Переключитесь на пользователя minecraft:
<code>sudo su - minecraft</code>
+
<pre>sudo su - minecraft</pre>
  
== 4. Установка Spigot сервера ===
+
== 4. Установка Spigot сервера ==
  
 
=== Скачивание BuildTools ===
 
=== Скачивание BuildTools ===
  
 
1. Перейдите в директорию Spigot:
 
1. Перейдите в директорию Spigot:
<code>cd /opt/minecraft/spigot</code>
+
<pre>cd /opt/minecraft/spigot</pre>
  
 
2. Скачайте BuildTools:
 
2. Скачайте BuildTools:
<code>wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar</code>
+
<pre>wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar</pre>
  
 
3. Скачайте Minecraft server jar:
 
3. Скачайте Minecraft server jar:
<code>wget https://launcher.mojang.com/v1/objects/8c3115e0ed1dfd6aeb6fecdd61636aa7184c6170/server.jar</code>
+
<pre>wget https://launcher.mojang.com/v1/objects/8c3115e0ed1dfd6aeb6fecdd61636aa7184c6170/server.jar</pre>
  
 
=== Сборка Spigot ===
 
=== Сборка Spigot ===
  
 
1. Запустите BuildTools:
 
1. Запустите BuildTools:
<code>java -jar BuildTools.jar --rev 1.20.1</code>
+
<pre>java -jar BuildTools.jar --rev 1.20.1</pre>
  
 
2. Дождитесь завершения сборки (это может занять несколько минут)
 
2. Дождитесь завершения сборки (это может занять несколько минут)
  
 
3. Проверьте созданные файлы:
 
3. Проверьте созданные файлы:
<code>ls -la</code>
+
<pre>ls -la</pre>
  
 
4. Удалите BuildTools:
 
4. Удалите BuildTools:
<code>rm BuildTools.jar</code>
+
<pre>rm BuildTools.jar</pre>
  
 
=== Настройка Spigot сервера ===
 
=== Настройка Spigot сервера ===
  
 
1. Примите лицензионное соглашение:
 
1. Примите лицензионное соглашение:
<code>echo "eula=true" > eula.txt</code>
+
<pre>echo "eula=true" > eula.txt</pre>
  
 
2. Создайте скрипт запуска:
 
2. Создайте скрипт запуска:
<code>nano start-spigot.sh</code>
+
<pre>nano start-spigot.sh</pre>
  
 
3. Добавьте содержимое:
 
3. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Настройки сервера
+
\# Настройки сервера
 
SERVER_DIR="/opt/minecraft/spigot"
 
SERVER_DIR="/opt/minecraft/spigot"
 
MIN_RAM="2G"
 
MIN_RAM="2G"
Строка 106: Строка 106:
 
SCREEN_NAME="minecraft-spigot"
 
SCREEN_NAME="minecraft-spigot"
  
# Переход в директорию сервера
+
\# Переход в директорию сервера
 
cd $SERVER_DIR
 
cd $SERVER_DIR
  
# Проверка запущенного сервера
+
\# Проверка запущенного сервера
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
     echo "Spigot сервер уже запущен!"
 
     echo "Spigot сервер уже запущен!"
Строка 115: Строка 115:
 
fi
 
fi
  
# Запуск сервера
+
\# Запуск сервера
 
echo "Запуск Minecraft Spigot сервера..."
 
echo "Запуск Minecraft Spigot сервера..."
 
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot-1.20.1.jar nogui
 
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot-1.20.1.jar nogui
Строка 121: Строка 121:
 
echo "Spigot сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Spigot сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
</code>
+
</pre>
  
 
4. Сделайте скрипт исполняемым:
 
4. Сделайте скрипт исполняемым:
<code>chmod +x start-spigot.sh</code>
+
<pre>chmod +x start-spigot.sh</pre>
  
== 5. Установка Paper сервера ===
+
== 5. Установка Paper сервера ==
  
 
=== Скачивание Paper ===
 
=== Скачивание Paper ===
  
 
1. Перейдите в директорию Paper:
 
1. Перейдите в директорию Paper:
<code>cd /opt/minecraft/paper</code>
+
<pre>cd /opt/minecraft/paper</pre>
  
 
2. Скачайте Paper server jar:
 
2. Скачайте Paper server jar:
<code>wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/100/downloads/paper-1.20.1-100.jar</code>
+
<pre>wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/100/downloads/paper-1.20.1-100.jar</pre>
  
 
3. Переименуйте файл:
 
3. Переименуйте файл:
<code>mv paper-1.20.1-100.jar paper-server.jar</code>
+
<pre>mv paper-1.20.1-100.jar paper-server.jar</pre>
  
 
=== Настройка Paper сервера ===
 
=== Настройка Paper сервера ===
  
 
1. Примите лицензионное соглашение:
 
1. Примите лицензионное соглашение:
<code>echo "eula=true" > eula.txt</code>
+
<pre>echo "eula=true" > eula.txt</pre>
  
 
2. Создайте скрипт запуска:
 
2. Создайте скрипт запуска:
<code>nano start-paper.sh</code>
+
<pre>nano start-paper.sh</pre>
  
 
3. Добавьте содержимое:
 
3. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Настройки сервера
+
\# Настройки сервера
 
SERVER_DIR="/opt/minecraft/paper"
 
SERVER_DIR="/opt/minecraft/paper"
 
MIN_RAM="2G"
 
MIN_RAM="2G"
Строка 156: Строка 156:
 
SCREEN_NAME="minecraft-paper"
 
SCREEN_NAME="minecraft-paper"
  
# Переход в директорию сервера
+
\# Переход в директорию сервера
 
cd $SERVER_DIR
 
cd $SERVER_DIR
  
# Проверка запущенного сервера
+
\# Проверка запущенного сервера
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
     echo "Paper сервер уже запущен!"
 
     echo "Paper сервер уже запущен!"
Строка 165: Строка 165:
 
fi
 
fi
  
# Запуск сервера
+
\# Запуск сервера
 
echo "Запуск Minecraft Paper сервера..."
 
echo "Запуск Minecraft Paper сервера..."
 
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-server.jar nogui
 
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-server.jar nogui
Строка 171: Строка 171:
 
echo "Paper сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Paper сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
</code>
+
</pre>
  
 
4. Сделайте скрипт исполняемым:
 
4. Сделайте скрипт исполняемым:
<code>chmod +x start-paper.sh</code>
+
<pre>chmod +x start-paper.sh</pre>
  
== 6. Настройка конфигурации серверов ===
+
== 6. Настройка конфигурации серверов ==
  
 
=== Настройка Spigot ===
 
=== Настройка Spigot ===
  
 
1. Запустите Spigot сервер один раз для создания конфигурационных файлов:
 
1. Запустите Spigot сервер один раз для создания конфигурационных файлов:
<code>cd /opt/minecraft/spigot</code>
+
<pre>cd /opt/minecraft/spigot</pre>
<code>./start-spigot.sh</code>
+
<pre>./start-spigot.sh</pre>
  
 
2. Остановите сервер через несколько секунд:
 
2. Остановите сервер через несколько секунд:
<code>screen -S minecraft-spigot -X stuff "stop$(printf \\r)"</code>
+
<pre>screen -S minecraft-spigot -X stuff "stop$(printf \\r)"</pre>
  
 
3. Настройте spigot.yml:
 
3. Настройте spigot.yml:
<code>nano spigot.yml</code>
+
<pre>nano spigot.yml</pre>
  
 
4. Настройте основные параметры:
 
4. Настройте основные параметры:
<code># Spigot Configuration
+
<pre>\# Spigot Configuration
 
settings:
 
settings:
 
   debug: false
 
   debug: false
Строка 208: Строка 208:
 
   log-villager-deaths: true
 
   log-villager-deaths: true
 
   log-named-deaths: true
 
   log-named-deaths: true
</code>
+
</pre>
  
 
=== Настройка Paper ===
 
=== Настройка Paper ===
  
 
1. Запустите Paper сервер один раз для создания конфигурационных файлов:
 
1. Запустите Paper сервер один раз для создания конфигурационных файлов:
<code>cd /opt/minecraft/paper</code>
+
<pre>cd /opt/minecraft/paper</pre>
<code>./start-paper.sh</code>
+
<pre>./start-paper.sh</pre>
  
 
2. Остановите сервер через несколько секунд:
 
2. Остановите сервер через несколько секунд:
<code>screen -S minecraft-paper -X stuff "stop$(printf \\r)"</code>
+
<pre>screen -S minecraft-paper -X stuff "stop$(printf \\r)"</pre>
  
 
3. Настройте paper-global.yml:
 
3. Настройте paper-global.yml:
<code>nano paper-global.yml</code>
+
<pre>nano paper-global.yml</pre>
  
 
4. Настройте основные параметры:
 
4. Настройте основные параметры:
<code># Paper Global Configuration
+
<pre>\# Paper Global Configuration
 
_version: 25
 
_version: 25
 
misc:
 
misc:
Строка 239: Строка 239:
 
     interval: 7.0
 
     interval: 7.0
 
   kick-message: "&cKicked for exceeding packet rate limit of %d per %d seconds"
 
   kick-message: "&cKicked for exceeding packet rate limit of %d per %d seconds"
</code>
+
</pre>
  
== 7. Настройка systemd сервисов ===
+
== 7. Настройка systemd сервисов ==
  
 
=== Создание сервиса для Spigot ===
 
=== Создание сервиса для Spigot ===
  
 
1. Выйдите из пользователя minecraft:
 
1. Выйдите из пользователя minecraft:
<code>exit</code>
+
<pre>exit</pre>
  
 
2. Создайте systemd сервис для Spigot:
 
2. Создайте systemd сервис для Spigot:
<code>sudo nano /etc/systemd/system/minecraft-spigot.service</code>
+
<pre>sudo nano /etc/systemd/system/minecraft-spigot.service</pre>
  
 
3. Добавьте конфигурацию:
 
3. Добавьте конфигурацию:
<code>[Unit]
+
<pre>[Unit]
 
Description=Minecraft Spigot Server
 
Description=Minecraft Spigot Server
 
After=network.target
 
After=network.target
Строка 268: Строка 268:
 
[Install]
 
[Install]
 
WantedBy=multi-user.target
 
WantedBy=multi-user.target
</code>
+
</pre>
  
 
=== Создание сервиса для Paper ===
 
=== Создание сервиса для Paper ===
  
 
1. Создайте systemd сервис для Paper:
 
1. Создайте systemd сервис для Paper:
<code>sudo nano /etc/systemd/system/minecraft-paper.service</code>
+
<pre>sudo nano /etc/systemd/system/minecraft-paper.service</pre>
  
 
2. Добавьте конфигурацию:
 
2. Добавьте конфигурацию:
<code>[Unit]
+
<pre>[Unit]
 
Description=Minecraft Paper Server
 
Description=Minecraft Paper Server
 
After=network.target
 
After=network.target
Строка 292: Строка 292:
 
[Install]
 
[Install]
 
WantedBy=multi-user.target
 
WantedBy=multi-user.target
</code>
+
</pre>
  
 
=== Запуск сервисов ===
 
=== Запуск сервисов ===
  
 
1. Перезагрузите systemd:
 
1. Перезагрузите systemd:
<code>sudo systemctl daemon-reload</code>
+
<pre>sudo systemctl daemon-reload</pre>
  
 
2. Включите автозапуск:
 
2. Включите автозапуск:
<code>sudo systemctl enable minecraft-spigot</code>
+
<pre>sudo systemctl enable minecraft-spigot</pre>
<code>sudo systemctl enable minecraft-paper</code>
+
<pre>sudo systemctl enable minecraft-paper</pre>
  
 
3. Запустите нужный сервис:
 
3. Запустите нужный сервис:
<code>sudo systemctl start minecraft-spigot</code>
+
<pre>sudo systemctl start minecraft-spigot</pre>
 
# или
 
# или
<code>sudo systemctl start minecraft-paper</code>
+
<pre>sudo systemctl start minecraft-paper</pre>
  
 
4. Проверьте статус:
 
4. Проверьте статус:
<code>sudo systemctl status minecraft-spigot</code>
+
<pre>sudo systemctl status minecraft-spigot</pre>
<code>sudo systemctl status minecraft-paper</code>
+
<pre>sudo systemctl status minecraft-paper</pre>
  
== 8. Настройка файрвола ===
+
== 8. Настройка файрвола ==
  
 
=== Настройка UFW ===
 
=== Настройка UFW ===
  
 
1. Установите UFW:
 
1. Установите UFW:
<code>sudo apt install -y ufw</code>
+
<pre>sudo apt install -y ufw</pre>
  
 
2. Настройте правила:
 
2. Настройте правила:
<code>sudo ufw allow 22/tcp</code>
+
<pre>sudo ufw allow 22/tcp</pre>
<code>sudo ufw allow 25565/tcp</code>
+
<pre>sudo ufw allow 25565/tcp</pre>
<code>sudo ufw enable</code>
+
<pre>sudo ufw enable</pre>
  
 
3. Проверьте статус:
 
3. Проверьте статус:
<code>sudo ufw status</code>
+
<pre>sudo ufw status</pre>
  
== 9. Мониторинг и диагностика ===
+
== 9. Мониторинг и диагностика ==
  
 
=== Создание скрипта мониторинга ===
 
=== Создание скрипта мониторинга ===
  
 
1. Создайте скрипт мониторинга:
 
1. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/minecraft-spigot-paper-monitor.sh</code>
+
<pre>sudo nano /usr/local/bin/minecraft-spigot-paper-monitor.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Проверка статуса Spigot сервера
+
\# Проверка статуса Spigot сервера
 
if ! systemctl is-active --quiet minecraft-spigot; then
 
if ! systemctl is-active --quiet minecraft-spigot; then
 
     echo "Minecraft Spigot сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
     echo "Minecraft Spigot сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
fi
 
fi
  
# Проверка статуса Paper сервера
+
\# Проверка статуса Paper сервера
 
if ! systemctl is-active --quiet minecraft-paper; then
 
if ! systemctl is-active --quiet minecraft-paper; then
 
     echo "Minecraft Paper сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
     echo "Minecraft Paper сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
fi
 
fi
  
# Проверка использования памяти
+
\# Проверка использования памяти
 
MEMORY_USAGE=$(ps aux | grep -E "(spigot|paper)" | grep -v grep | awk '{print $4}' | head -1)
 
MEMORY_USAGE=$(ps aux | grep -E "(spigot|paper)" | grep -v grep | awk '{print $4}' | head -1)
 
if [ ! -z "$MEMORY_USAGE" ] && [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then
 
if [ ! -z "$MEMORY_USAGE" ] && [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then
Строка 353: Строка 353:
 
fi
 
fi
  
# Проверка доступности порта
+
\# Проверка доступности порта
 
if ! nc -z localhost 25565; then
 
if ! nc -z localhost 25565; then
 
     echo "Minecraft сервер не отвечает на порту 25565!" | mail -s "Minecraft Alert" admin@example.com
 
     echo "Minecraft сервер не отвечает на порту 25565!" | mail -s "Minecraft Alert" admin@example.com
 
fi
 
fi
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/minecraft-spigot-paper-monitor.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/minecraft-spigot-paper-monitor.sh</pre>
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
5. Добавьте задачу:
 
5. Добавьте задачу:
<code>*/5 * * * * /usr/local/bin/minecraft-spigot-paper-monitor.sh</code>
+
<pre>*/5 * * * * /usr/local/bin/minecraft-spigot-paper-monitor.sh</pre>
  
== 10. Резервное копирование ===
+
== 10. Резервное копирование ==
  
 
=== Создание скрипта резервного копирования ===
 
=== Создание скрипта резервного копирования ===
  
 
1. Создайте скрипт резервного копирования:
 
1. Создайте скрипт резервного копирования:
<code>sudo nano /usr/local/bin/minecraft-spigot-paper-backup.sh</code>
+
<pre>sudo nano /usr/local/bin/minecraft-spigot-paper-backup.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
 
BACKUP_DIR="/backup/minecraft-spigot-paper"
 
BACKUP_DIR="/backup/minecraft-spigot-paper"
 
DATE=$(date +%Y%m%d_%H%M%S)
 
DATE=$(date +%Y%m%d_%H%M%S)
  
# Создание директории для бэкапа
+
\# Создание директории для бэкапа
 
mkdir -p $BACKUP_DIR
 
mkdir -p $BACKUP_DIR
  
# Остановка серверов для бэкапа
+
\# Остановка серверов для бэкапа
 
systemctl stop minecraft-spigot
 
systemctl stop minecraft-spigot
 
systemctl stop minecraft-paper
 
systemctl stop minecraft-paper
  
# Создание архива Spigot
+
\# Создание архива Spigot
 
if [ -d "/opt/minecraft/spigot" ]; then
 
if [ -d "/opt/minecraft/spigot" ]; then
 
     tar -czf $BACKUP_DIR/spigot-backup-$DATE.tar.gz -C /opt/minecraft spigot
 
     tar -czf $BACKUP_DIR/spigot-backup-$DATE.tar.gz -C /opt/minecraft spigot
 
fi
 
fi
  
# Создание архива Paper
+
\# Создание архива Paper
 
if [ -d "/opt/minecraft/paper" ]; then
 
if [ -d "/opt/minecraft/paper" ]; then
 
     tar -czf $BACKUP_DIR/paper-backup-$DATE.tar.gz -C /opt/minecraft paper
 
     tar -czf $BACKUP_DIR/paper-backup-$DATE.tar.gz -C /opt/minecraft paper
 
fi
 
fi
  
# Запуск серверов
+
\# Запуск серверов
 
systemctl start minecraft-spigot
 
systemctl start minecraft-spigot
 
systemctl start minecraft-paper
 
systemctl start minecraft-paper
  
# Удаление старых бэкапов (старше 7 дней)
+
\# Удаление старых бэкапов (старше 7 дней)
 
find $BACKUP_DIR -name "*-backup-*" -mtime +7 -delete
 
find $BACKUP_DIR -name "*-backup-*" -mtime +7 -delete
  
 
echo "Minecraft Spigot/Paper backup completed: $DATE"
 
echo "Minecraft Spigot/Paper backup completed: $DATE"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/minecraft-spigot-paper-backup.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/minecraft-spigot-paper-backup.sh</pre>
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>sudo crontab -e</code>
+
<pre>sudo crontab -e</pre>
  
 
5. Добавьте задачу:
 
5. Добавьте задачу:
<code>0 3 * * * /usr/local/bin/minecraft-spigot-paper-backup.sh</code>
+
<pre>0 3 * * * /usr/local/bin/minecraft-spigot-paper-backup.sh</pre>
  
== 11. Устранение неполадок ===
+
== 11. Устранение неполадок ==
  
 
=== Частые проблемы ===
 
=== Частые проблемы ===
  
 
1. '''Сервер не запускается''':
 
1. '''Сервер не запускается''':
* Проверьте статус: <code>sudo systemctl status minecraft-spigot</code>
+
* Проверьте статус: <pre>sudo systemctl status minecraft-spigot</pre>
* Проверьте логи: <code>sudo journalctl -u minecraft-spigot</code>
+
* Проверьте логи: <pre>sudo journalctl -u minecraft-spigot</pre>
 
* Проверьте права доступа к файлам
 
* Проверьте права доступа к файлам
  
Строка 439: Строка 439:
  
 
1. '''Проверка статуса серверов''':
 
1. '''Проверка статуса серверов''':
<code>sudo systemctl status minecraft-spigot</code>
+
<pre>sudo systemctl status minecraft-spigot</pre>
<code>sudo systemctl status minecraft-paper</code>
+
<pre>sudo systemctl status minecraft-paper</pre>
  
 
2. '''Проверка логов''':
 
2. '''Проверка логов''':
<code>sudo journalctl -u minecraft-spigot -f</code>
+
<pre>sudo journalctl -u minecraft-spigot -f</pre>
<code>sudo journalctl -u minecraft-paper -f</code>
+
<pre>sudo journalctl -u minecraft-paper -f</pre>
  
 
3. '''Проверка портов''':
 
3. '''Проверка портов''':
<code>sudo netstat -tlnp | grep :25565</code>
+
<pre>sudo netstat -tlnp | grep :25565</pre>
  
 
4. '''Проверка использования ресурсов''':
 
4. '''Проверка использования ресурсов''':
<code>htop</code>
+
<pre>htop</pre>
<code>free -h</code>
+
<pre>free -h</pre>
<code>df -h</code>
+
<pre>df -h</pre>
  
 
5. '''Тестирование подключения''':
 
5. '''Тестирование подключения''':
<code>telnet localhost 25565</code>
+
<pre>telnet localhost 25565</pre>
  
 
== Заключение ==
 
== Заключение ==

Текущая версия на 10:44, 15 октября 2025

Содержание

Установка и настройка Spigot/Paper сервера

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.
  • Рекомендуется использовать Ubuntu 24.04 LTS для стабильной работы.

2. Установка Java

Обновление системы

1. Обновите систему:

sudo apt update
sudo apt upgrade -y

2. Установите необходимые пакеты:

sudo apt install -y wget curl unzip screen htop git

Установка OpenJDK

1. Установите OpenJDK 21 (рекомендуется для Spigot/Paper):

sudo apt install -y openjdk-21-jdk

2. Проверьте версию Java:

java --version

3. Установите альтернативную версию Java:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-amd64/bin/java 1

Настройка переменных окружения

1. Настройте JAVA_HOME:

echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc

2. Примените изменения:

source ~/.bashrc

3. Создание пользователя для Minecraft

Создание пользователя

1. Создайте пользователя minecraft:

sudo useradd -m -s /bin/bash minecraft

2. Установите пароль:

sudo passwd minecraft

3. Добавьте пользователя в группу sudo:

sudo usermod -aG sudo minecraft

Настройка директорий

1. Создайте директории для серверов:

sudo mkdir -p /opt/minecraft/spigot
sudo mkdir -p /opt/minecraft/paper

2. Установите права доступа:

sudo chown -R minecraft:minecraft /opt/minecraft

3. Переключитесь на пользователя minecraft:

sudo su - minecraft

4. Установка Spigot сервера

Скачивание BuildTools

1. Перейдите в директорию Spigot:

cd /opt/minecraft/spigot

2. Скачайте BuildTools:

wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

3. Скачайте Minecraft server jar:

wget https://launcher.mojang.com/v1/objects/8c3115e0ed1dfd6aeb6fecdd61636aa7184c6170/server.jar

Сборка Spigot

1. Запустите BuildTools:

java -jar BuildTools.jar --rev 1.20.1

2. Дождитесь завершения сборки (это может занять несколько минут)

3. Проверьте созданные файлы:

ls -la

4. Удалите BuildTools:

rm BuildTools.jar

Настройка Spigot сервера

1. Примите лицензионное соглашение:

echo "eula=true" > eula.txt

2. Создайте скрипт запуска:

nano start-spigot.sh

3. Добавьте содержимое:

\#!/bin/bash

\# Настройки сервера
SERVER_DIR="/opt/minecraft/spigot"
MIN_RAM="2G"
MAX_RAM="4G"
SCREEN_NAME="minecraft-spigot"

\# Переход в директорию сервера
cd $SERVER_DIR

\# Проверка запущенного сервера
if screen -list | grep -q "$SCREEN_NAME"; then
    echo "Spigot сервер уже запущен!"
    exit 1
fi

\# Запуск сервера
echo "Запуск Minecraft Spigot сервера..."
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot-1.20.1.jar nogui

echo "Spigot сервер запущен в screen сессии: $SCREEN_NAME"
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"

4. Сделайте скрипт исполняемым:

chmod +x start-spigot.sh

5. Установка Paper сервера

Скачивание Paper

1. Перейдите в директорию Paper:

cd /opt/minecraft/paper

2. Скачайте Paper server jar:

wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/100/downloads/paper-1.20.1-100.jar

3. Переименуйте файл:

mv paper-1.20.1-100.jar paper-server.jar

Настройка Paper сервера

1. Примите лицензионное соглашение:

echo "eula=true" > eula.txt

2. Создайте скрипт запуска:

nano start-paper.sh

3. Добавьте содержимое:

\#!/bin/bash

\# Настройки сервера
SERVER_DIR="/opt/minecraft/paper"
MIN_RAM="2G"
MAX_RAM="4G"
SCREEN_NAME="minecraft-paper"

\# Переход в директорию сервера
cd $SERVER_DIR

\# Проверка запущенного сервера
if screen -list | grep -q "$SCREEN_NAME"; then
    echo "Paper сервер уже запущен!"
    exit 1
fi

\# Запуск сервера
echo "Запуск Minecraft Paper сервера..."
screen -dmS $SCREEN_NAME java -Xms$MIN_RAM -Xmx$MAX_RAM -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-server.jar nogui

echo "Paper сервер запущен в screen сессии: $SCREEN_NAME"
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"

4. Сделайте скрипт исполняемым:

chmod +x start-paper.sh

6. Настройка конфигурации серверов

Настройка Spigot

1. Запустите Spigot сервер один раз для создания конфигурационных файлов:

cd /opt/minecraft/spigot
./start-spigot.sh

2. Остановите сервер через несколько секунд:

screen -S minecraft-spigot -X stuff "stop$(printf \\r)"

3. Настройте spigot.yml:

nano spigot.yml

4. Настройте основные параметры:

\# Spigot Configuration
settings:
  debug: false
  bungeecord: false
  restart-on-crash: true
  restart-script: ./start.sh
  netty-threads: 4
  timeout-time: 60
  restart-on-crash: true
  restart-script: ./start.sh
  user-cache-size: 1000
  save-user-cache-on-stop-only: false
  moved-wrongly-threshold: 0.0625
  moved-too-quickly-multiplier: 10.0
  moved-too-quickly-threshold: 0.3
  log-villager-deaths: true
  log-named-deaths: true

Настройка Paper

1. Запустите Paper сервер один раз для создания конфигурационных файлов:

cd /opt/minecraft/paper
./start-paper.sh

2. Остановите сервер через несколько секунд:

screen -S minecraft-paper -X stuff "stop$(printf \\r)"

3. Настройте paper-global.yml:

nano paper-global.yml

4. Настройте основные параметры:

\# Paper Global Configuration
_version: 25
misc:
  compression-level: -1
  max-joins-per-tick: 5
  region-file-cache-size: 256
  use-alternative-luck-formula: false
  lag-compensate-block-breaking: true
  use-dimension-type-for-custom-spawners: false
  strict-advancement-dimension-check: false
  fix-climbing-bypassing-cramming-rule: false
packet-limiter:
  all-channels:
    limit: 5000.0
    interval: 7.0
  kick-message: "&cKicked for exceeding packet rate limit of %d per %d seconds"

7. Настройка systemd сервисов

Создание сервиса для Spigot

1. Выйдите из пользователя minecraft:

exit

2. Создайте systemd сервис для Spigot:

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

3. Добавьте конфигурацию:

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

[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/spigot
ExecStart=/usr/bin/java -Xms2G -Xmx4G -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot-1.20.1.jar nogui
ExecStop=/bin/kill -15 $MAINPID
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Создание сервиса для Paper

1. Создайте systemd сервис для Paper:

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

2. Добавьте конфигурацию:

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

[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/paper
ExecStart=/usr/bin/java -Xms2G -Xmx4G -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-server.jar nogui
ExecStop=/bin/kill -15 $MAINPID
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Запуск сервисов

1. Перезагрузите systemd:

sudo systemctl daemon-reload

2. Включите автозапуск:

sudo systemctl enable minecraft-spigot
sudo systemctl enable minecraft-paper

3. Запустите нужный сервис:

sudo systemctl start minecraft-spigot
  1. или
sudo systemctl start minecraft-paper

4. Проверьте статус:

sudo systemctl status minecraft-spigot
sudo systemctl status minecraft-paper

8. Настройка файрвола

Настройка UFW

1. Установите UFW:

sudo apt install -y ufw

2. Настройте правила:

sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable

3. Проверьте статус:

sudo ufw status

9. Мониторинг и диагностика

Создание скрипта мониторинга

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/minecraft-spigot-paper-monitor.sh

2. Добавьте содержимое:

\#!/bin/bash

\# Проверка статуса Spigot сервера
if ! systemctl is-active --quiet minecraft-spigot; then
    echo "Minecraft Spigot сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
fi

\# Проверка статуса Paper сервера
if ! systemctl is-active --quiet minecraft-paper; then
    echo "Minecraft Paper сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
fi

\# Проверка использования памяти
MEMORY_USAGE=$(ps aux | grep -E "(spigot|paper)" | grep -v grep | awk '{print $4}' | head -1)
if [ ! -z "$MEMORY_USAGE" ] && [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then
    echo "Высокое использование памяти: ${MEMORY_USAGE}%" | mail -s "Minecraft Alert" admin@example.com
fi

\# Проверка доступности порта
if ! nc -z localhost 25565; then
    echo "Minecraft сервер не отвечает на порту 25565!" | mail -s "Minecraft Alert" admin@example.com
fi

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/minecraft-spigot-paper-monitor.sh

4. Добавьте в crontab:

sudo crontab -e

5. Добавьте задачу:

*/5 * * * * /usr/local/bin/minecraft-spigot-paper-monitor.sh

10. Резервное копирование

Создание скрипта резервного копирования

1. Создайте скрипт резервного копирования:

sudo nano /usr/local/bin/minecraft-spigot-paper-backup.sh

2. Добавьте содержимое:

\#!/bin/bash

BACKUP_DIR="/backup/minecraft-spigot-paper"
DATE=$(date +%Y%m%d_%H%M%S)

\# Создание директории для бэкапа
mkdir -p $BACKUP_DIR

\# Остановка серверов для бэкапа
systemctl stop minecraft-spigot
systemctl stop minecraft-paper

\# Создание архива Spigot
if [ -d "/opt/minecraft/spigot" ]; then
    tar -czf $BACKUP_DIR/spigot-backup-$DATE.tar.gz -C /opt/minecraft spigot
fi

\# Создание архива Paper
if [ -d "/opt/minecraft/paper" ]; then
    tar -czf $BACKUP_DIR/paper-backup-$DATE.tar.gz -C /opt/minecraft paper
fi

\# Запуск серверов
systemctl start minecraft-spigot
systemctl start minecraft-paper

\# Удаление старых бэкапов (старше 7 дней)
find $BACKUP_DIR -name "*-backup-*" -mtime +7 -delete

echo "Minecraft Spigot/Paper backup completed: $DATE"

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/minecraft-spigot-paper-backup.sh

4. Добавьте в crontab:

sudo crontab -e

5. Добавьте задачу:

0 3 * * * /usr/local/bin/minecraft-spigot-paper-backup.sh

11. Устранение неполадок

Частые проблемы

1. Сервер не запускается:

  • Проверьте статус:
    sudo systemctl status minecraft-spigot
  • Проверьте логи:
    sudo journalctl -u minecraft-spigot
  • Проверьте права доступа к файлам

2. Проблемы с производительностью:

  • Увеличьте выделенную память
  • Оптимизируйте JVM параметры
  • Проверьте настройки Paper

3. Проблемы с плагинами:

  • Проверьте совместимость плагинов
  • Проверьте зависимости плагинов
  • Проверьте логи сервера

Диагностика

1. Проверка статуса серверов:

sudo systemctl status minecraft-spigot
sudo systemctl status minecraft-paper

2. Проверка логов:

sudo journalctl -u minecraft-spigot -f
sudo journalctl -u minecraft-paper -f

3. Проверка портов:

sudo netstat -tlnp | grep :25565

4. Проверка использования ресурсов:

htop
free -h
df -h

5. Тестирование подключения:

telnet localhost 25565

Заключение

Spigot/Paper серверы успешно установлены и настроены! Теперь у вас есть высокопроизводительные серверы с возможностями плагинов, мониторинга и резервного копирования.

Для размещения ваших Spigot/Paper серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой Spigot/Paper серверов и оптимизацией производительности!