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

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
 
Строка 12: Строка 12:
  
 
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</code>
+
<pre>sudo apt install -y wget curl unzip screen htop</pre>
  
 
=== Установка OpenJDK ===
 
=== Установка OpenJDK ===
  
 
1. Установите OpenJDK 21 (рекомендуется для Minecraft 1.20+):
 
1. Установите OpenJDK 21 (рекомендуется для Minecraft 1.20+):
<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. Проверьте настройки:
 
3. Проверьте настройки:
<code>echo $JAVA_HOME</code>
+
<pre>echo $JAVA_HOME</pre>
  
 
== 3. Создание пользователя для Minecraft ==
 
== 3. Создание пользователя для Minecraft ==
Строка 46: Строка 46:
  
 
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</code>
+
<pre>sudo mkdir -p /opt/minecraft</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. Скачивание и установка сервера ==
 
== 4. Скачивание и установка сервера ==
Строка 70: Строка 70:
  
 
1. Перейдите в директорию сервера:
 
1. Перейдите в директорию сервера:
<code>cd /opt/minecraft</code>
+
<pre>cd /opt/minecraft</pre>
  
 
2. Скачайте последнюю версию сервера:
 
2. Скачайте последнюю версию сервера:
<code>wget https://launcher.mojang.com/v1/objects/8c3115e0ed1dfd6aeb6fecdd61636aa7184c6170/server.jar</code>
+
<pre>wget https://launcher.mojang.com/v1/objects/8c3115e0ed1dfd6aeb6fecdd61636aa7184c6170/server.jar</pre>
  
 
3. Переименуйте файл:
 
3. Переименуйте файл:
<code>mv server.jar minecraft_server.jar</code>
+
<pre>mv server.jar minecraft_server.jar</pre>
  
 
=== Первый запуск ===
 
=== Первый запуск ===
  
 
1. Запустите сервер в первый раз:
 
1. Запустите сервер в первый раз:
<code>java -Xmx2G -Xms2G -jar minecraft_server.jar nogui</code>
+
<pre>java -Xmx2G -Xms2G -jar minecraft_server.jar nogui</pre>
  
 
2. Примите лицензионное соглашение:
 
2. Примите лицензионное соглашение:
<code>echo "eula=true" > eula.txt</code>
+
<pre>echo "eula=true" > eula.txt</pre>
  
 
3. Остановите сервер:
 
3. Остановите сервер:
<code>pkill java</code>
+
<pre>pkill java</pre>
  
 
== 5. Настройка конфигурации сервера ==
 
== 5. Настройка конфигурации сервера ==
Строка 94: Строка 94:
  
 
1. Отредактируйте server.properties:
 
1. Отредактируйте server.properties:
<code>nano server.properties</code>
+
<pre>nano server.properties</pre>
  
 
2. Настройте основные параметры:
 
2. Настройте основные параметры:
<code># Основные настройки
+
<pre>\# Основные настройки
 
server-name=Minecraft Server
 
server-name=Minecraft Server
 
motd=Добро пожаловать на наш сервер!
 
motd=Добро пожаловать на наш сервер!
Строка 104: Строка 104:
 
white-list=false
 
white-list=false
  
# Настройки мира
+
\# Настройки мира
 
level-name=world
 
level-name=world
 
level-type=minecraft\:normal
 
level-type=minecraft\:normal
Строка 110: Строка 110:
 
generate-structures=true
 
generate-structures=true
  
# Настройки игроков
+
\# Настройки игроков
 
max-players=20
 
max-players=20
 
view-distance=10
 
view-distance=10
 
simulation-distance=10
 
simulation-distance=10
  
# Настройки производительности
+
\# Настройки производительности
 
difficulty=normal
 
difficulty=normal
 
hardcore=false
 
hardcore=false
Строка 122: Строка 122:
 
allow-flight=false
 
allow-flight=false
  
# Настройки чата
+
\# Настройки чата
 
enable-command-block=false
 
enable-command-block=false
 
enable-jmx-monitoring=false
 
enable-jmx-monitoring=false
Строка 128: Строка 128:
 
enable-rcon=false
 
enable-rcon=false
  
# Настройки сети
+
\# Настройки сети
 
network-compression-threshold=256
 
network-compression-threshold=256
 
max-tick-time=60000
 
max-tick-time=60000
</code>
+
</pre>
  
 
=== Настройка операторов ===
 
=== Настройка операторов ===
  
 
1. Создайте файл ops.json:
 
1. Создайте файл ops.json:
<code>nano ops.json</code>
+
<pre>nano ops.json</pre>
  
 
2. Добавьте операторов:
 
2. Добавьте операторов:
<code>[
+
<pre>[
 
   {
 
   {
 
     "uuid": "00000000-0000-0000-0000-000000000000",
 
     "uuid": "00000000-0000-0000-0000-000000000000",
Строка 147: Строка 147:
 
   }
 
   }
 
]
 
]
</code>
+
</pre>
  
 
=== Настройка белого списка ===
 
=== Настройка белого списка ===
  
 
1. Включите белый список:
 
1. Включите белый список:
<code>echo "white-list=true" >> server.properties</code>
+
<pre>echo "white-list=true" >> server.properties</pre>
  
 
2. Добавьте игроков в белый список:
 
2. Добавьте игроков в белый список:
<code>nano whitelist.json</code>
+
<pre>nano whitelist.json</pre>
  
 
3. Добавьте игроков:
 
3. Добавьте игроков:
<code>[
+
<pre>[
 
   {
 
   {
 
     "uuid": "00000000-0000-0000-0000-000000000000",
 
     "uuid": "00000000-0000-0000-0000-000000000000",
Строка 164: Строка 164:
 
   }
 
   }
 
]
 
]
</code>
+
</pre>
  
 
== 6. Создание скрипта запуска ==
 
== 6. Создание скрипта запуска ==
Строка 171: Строка 171:
  
 
1. Создайте скрипт запуска:
 
1. Создайте скрипт запуска:
<code>nano start.sh</code>
+
<pre>nano start.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Настройки сервера
+
\# Настройки сервера
 
SERVER_DIR="/opt/minecraft"
 
SERVER_DIR="/opt/minecraft"
 
JAR_FILE="minecraft_server.jar"
 
JAR_FILE="minecraft_server.jar"
Строка 183: Строка 183:
 
SCREEN_NAME="minecraft"
 
SCREEN_NAME="minecraft"
  
# Переход в директорию сервера
+
\# Переход в директорию сервера
 
cd $SERVER_DIR
 
cd $SERVER_DIR
  
# Проверка запущенного сервера
+
\# Проверка запущенного сервера
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
     echo "Сервер уже запущен!"
 
     echo "Сервер уже запущен!"
Строка 192: Строка 192:
 
fi
 
fi
  
# Запуск сервера
+
\# Запуск сервера
 
echo "Запуск Minecraft сервера..."
 
echo "Запуск Minecraft сервера..."
 
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 $JAR_FILE 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 $JAR_FILE nogui
Строка 198: Строка 198:
 
echo "Сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Сервер запущен в screen сессии: $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
 
echo "Для подключения к консоли используйте: screen -r $SCREEN_NAME"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>chmod +x start.sh</code>
+
<pre>chmod +x start.sh</pre>
  
 
=== Создание скрипта остановки ===
 
=== Создание скрипта остановки ===
  
 
1. Создайте скрипт остановки:
 
1. Создайте скрипт остановки:
<code>nano stop.sh</code>
+
<pre>nano stop.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
 
SCREEN_NAME="minecraft"
 
SCREEN_NAME="minecraft"
  
# Проверка запущенного сервера
+
\# Проверка запущенного сервера
 
if ! screen -list | grep -q "$SCREEN_NAME"; then
 
if ! screen -list | grep -q "$SCREEN_NAME"; then
 
     echo "Сервер не запущен!"
 
     echo "Сервер не запущен!"
Строка 221: Строка 221:
 
echo "Остановка Minecraft сервера..."
 
echo "Остановка Minecraft сервера..."
  
# Отправка команды остановки
+
\# Отправка команды остановки
 
screen -S $SCREEN_NAME -X stuff "stop$(printf \\r)"
 
screen -S $SCREEN_NAME -X stuff "stop$(printf \\r)"
  
# Ожидание остановки
+
\# Ожидание остановки
 
sleep 10
 
sleep 10
  
# Принудительная остановка если нужно
+
\# Принудительная остановка если нужно
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
if screen -list | grep -q "$SCREEN_NAME"; then
 
     echo "Принудительная остановка сервера..."
 
     echo "Принудительная остановка сервера..."
Строка 234: Строка 234:
  
 
echo "Сервер остановлен"
 
echo "Сервер остановлен"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>chmod +x stop.sh</code>
+
<pre>chmod +x stop.sh</pre>
  
 
== 7. Настройка systemd сервиса ==
 
== 7. Настройка systemd сервиса ==
Строка 244: Строка 244:
  
 
1. Выйдите из пользователя minecraft:
 
1. Выйдите из пользователя minecraft:
<code>exit</code>
+
<pre>exit</pre>
  
 
2. Создайте systemd сервис:
 
2. Создайте systemd сервис:
<code>sudo nano /etc/systemd/system/minecraft.service</code>
+
<pre>sudo nano /etc/systemd/system/minecraft.service</pre>
  
 
3. Добавьте конфигурацию:
 
3. Добавьте конфигурацию:
<code>[Unit]
+
<pre>[Unit]
 
Description=Minecraft Server
 
Description=Minecraft Server
 
After=network.target
 
After=network.target
Строка 266: Строка 266:
 
[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</code>
+
<pre>sudo systemctl enable minecraft</pre>
  
 
3. Запустите сервис:
 
3. Запустите сервис:
<code>sudo systemctl start minecraft</code>
+
<pre>sudo systemctl start minecraft</pre>
  
 
4. Проверьте статус:
 
4. Проверьте статус:
<code>sudo systemctl status minecraft</code>
+
<pre>sudo systemctl status minecraft</pre>
  
 
== 8. Настройка файрвола ==
 
== 8. Настройка файрвола ==
Строка 287: Строка 287:
  
 
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>
  
 
=== Настройка iptables ===
 
=== Настройка iptables ===
  
 
1. Настройте iptables:
 
1. Настройте iptables:
<code>sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT</code>
+
<pre>sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT</pre>
<code>sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT</code>
+
<pre>sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT</pre>
  
 
2. Сохраните правила:
 
2. Сохраните правила:
<code>sudo iptables-save > /etc/iptables/rules.v4</code>
+
<pre>sudo iptables-save > /etc/iptables/rules.v4</pre>
  
 
== 9. Настройка мониторинга ==
 
== 9. Настройка мониторинга ==
Строка 311: Строка 311:
  
 
1. Создайте скрипт мониторинга:
 
1. Создайте скрипт мониторинга:
<code>sudo nano /usr/local/bin/minecraft-monitor.sh</code>
+
<pre>sudo nano /usr/local/bin/minecraft-monitor.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
# Проверка статуса сервера
+
\# Проверка статуса сервера
 
if ! systemctl is-active --quiet minecraft; then
 
if ! systemctl is-active --quiet minecraft; then
 
     echo "Minecraft сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
     echo "Minecraft сервер не запущен!" | mail -s "Minecraft Alert" admin@example.com
 
fi
 
fi
  
# Проверка использования памяти
+
\# Проверка использования памяти
 
MEMORY_USAGE=$(ps aux | grep minecraft_server.jar | grep -v grep | awk '{print $4}')
 
MEMORY_USAGE=$(ps aux | grep minecraft_server.jar | grep -v grep | awk '{print $4}')
 
if [ ! -z "$MEMORY_USAGE" ] && [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then
 
if [ ! -z "$MEMORY_USAGE" ] && [ $(echo "$MEMORY_USAGE > 80" | bc) -eq 1 ]; then
Строка 327: Строка 327:
 
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
  
# Проверка использования диска
+
\# Проверка использования диска
 
DISK_USAGE=$(df /opt/minecraft | tail -1 | awk '{print $5}' | sed 's/%//')
 
DISK_USAGE=$(df /opt/minecraft | tail -1 | awk '{print $5}' | sed 's/%//')
 
if [ $DISK_USAGE -gt 80 ]; then
 
if [ $DISK_USAGE -gt 80 ]; then
 
     echo "Высокое использование диска: ${DISK_USAGE}%" | mail -s "Minecraft Alert" admin@example.com
 
     echo "Высокое использование диска: ${DISK_USAGE}%" | mail -s "Minecraft Alert" admin@example.com
 
fi
 
fi
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/minecraft-monitor.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/minecraft-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-monitor.sh</code>
+
<pre>*/5 * * * * /usr/local/bin/minecraft-monitor.sh</pre>
  
 
== 10. Резервное копирование ==
 
== 10. Резервное копирование ==
Строка 353: Строка 353:
  
 
1. Создайте скрипт резервного копирования:
 
1. Создайте скрипт резервного копирования:
<code>sudo nano /usr/local/bin/minecraft-backup.sh</code>
+
<pre>sudo nano /usr/local/bin/minecraft-backup.sh</pre>
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>#!/bin/bash
+
<pre>\#!/bin/bash
  
 
BACKUP_DIR="/backup/minecraft"
 
BACKUP_DIR="/backup/minecraft"
Строка 362: Строка 362:
 
SERVER_DIR="/opt/minecraft"
 
SERVER_DIR="/opt/minecraft"
  
# Создание директории для бэкапа
+
\# Создание директории для бэкапа
 
mkdir -p $BACKUP_DIR
 
mkdir -p $BACKUP_DIR
  
# Остановка сервера для бэкапа
+
\# Остановка сервера для бэкапа
 
systemctl stop minecraft
 
systemctl stop minecraft
  
# Создание архива
+
\# Создание архива
 
tar -czf $BACKUP_DIR/minecraft-backup-$DATE.tar.gz -C $SERVER_DIR .
 
tar -czf $BACKUP_DIR/minecraft-backup-$DATE.tar.gz -C $SERVER_DIR .
  
# Запуск сервера
+
\# Запуск сервера
 
systemctl start minecraft
 
systemctl start minecraft
  
# Удаление старых бэкапов (старше 7 дней)
+
\# Удаление старых бэкапов (старше 7 дней)
 
find $BACKUP_DIR -name "minecraft-backup-*" -mtime +7 -delete
 
find $BACKUP_DIR -name "minecraft-backup-*" -mtime +7 -delete
  
 
echo "Minecraft backup completed: $DATE"
 
echo "Minecraft backup completed: $DATE"
</code>
+
</pre>
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>sudo chmod +x /usr/local/bin/minecraft-backup.sh</code>
+
<pre>sudo chmod +x /usr/local/bin/minecraft-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-backup.sh</code>
+
<pre>0 3 * * * /usr/local/bin/minecraft-backup.sh</pre>
  
 
== 11. Устранение неполадок ==
 
== 11. Устранение неполадок ==
Строка 394: Строка 394:
  
 
1. '''Сервер не запускается''':
 
1. '''Сервер не запускается''':
* Проверьте статус: <code>sudo systemctl status minecraft</code>
+
* Проверьте статус: <pre>sudo systemctl status minecraft</pre>
* Проверьте логи: <code>sudo journalctl -u minecraft</code>
+
* Проверьте логи: <pre>sudo journalctl -u minecraft</pre>
 
* Проверьте права доступа к файлам
 
* Проверьте права доступа к файлам
  
Строка 411: Строка 411:
  
 
1. '''Проверка статуса сервера''':
 
1. '''Проверка статуса сервера''':
<code>sudo systemctl status minecraft</code>
+
<pre>sudo systemctl status minecraft</pre>
  
 
2. '''Проверка логов''':
 
2. '''Проверка логов''':
<code>sudo journalctl -u minecraft -f</code>
+
<pre>sudo journalctl -u minecraft -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:28, 15 октября 2025

Содержание

Установка и настройка Minecraft сервера (Vanilla)

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

Установка OpenJDK

1. Установите OpenJDK 21 (рекомендуется для Minecraft 1.20+):

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. Проверьте настройки:

echo $JAVA_HOME

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

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

sudo chown -R minecraft:minecraft /opt/minecraft

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

sudo su - minecraft

4. Скачивание и установка сервера

Скачивание сервера

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

cd /opt/minecraft

2. Скачайте последнюю версию сервера:

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

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

mv server.jar minecraft_server.jar

Первый запуск

1. Запустите сервер в первый раз:

java -Xmx2G -Xms2G -jar minecraft_server.jar nogui

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

echo "eula=true" > eula.txt

3. Остановите сервер:

pkill java

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

Базовая конфигурация

1. Отредактируйте server.properties:

nano server.properties

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

\# Основные настройки
server-name=Minecraft Server
motd=Добро пожаловать на наш сервер!
server-port=25565
online-mode=true
white-list=false

\# Настройки мира
level-name=world
level-type=minecraft\:normal
level-seed=
generate-structures=true

\# Настройки игроков
max-players=20
view-distance=10
simulation-distance=10

\# Настройки производительности
difficulty=normal
hardcore=false
pvp=true
allow-nether=true
allow-flight=false

\# Настройки чата
enable-command-block=false
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false

\# Настройки сети
network-compression-threshold=256
max-tick-time=60000

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

1. Создайте файл ops.json:

nano ops.json

2. Добавьте операторов:

[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "admin",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

Настройка белого списка

1. Включите белый список:

echo "white-list=true" >> server.properties

2. Добавьте игроков в белый список:

nano whitelist.json

3. Добавьте игроков:

[
  {
    "uuid": "00000000-0000-0000-0000-000000000000",
    "name": "player1"
  }
]

6. Создание скрипта запуска

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

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

nano start.sh

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

\#!/bin/bash

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

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

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

\# Запуск сервера
echo "Запуск Minecraft сервера..."
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 $JAR_FILE nogui

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

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

chmod +x start.sh

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

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

nano stop.sh

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

\#!/bin/bash

SCREEN_NAME="minecraft"

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

echo "Остановка Minecraft сервера..."

\# Отправка команды остановки
screen -S $SCREEN_NAME -X stuff "stop$(printf \\r)"

\# Ожидание остановки
sleep 10

\# Принудительная остановка если нужно
if screen -list | grep -q "$SCREEN_NAME"; then
    echo "Принудительная остановка сервера..."
    screen -S $SCREEN_NAME -X quit
fi

echo "Сервер остановлен"

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

chmod +x stop.sh

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

Создание сервиса

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

exit

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

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

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

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

[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
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 minecraft_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

3. Запустите сервис:

sudo systemctl start minecraft

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

sudo systemctl status minecraft

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

Настройка iptables

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

sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

2. Сохраните правила:

sudo iptables-save > /etc/iptables/rules.v4

9. Настройка мониторинга

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

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

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

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

\#!/bin/bash

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

\# Проверка использования памяти
MEMORY_USAGE=$(ps aux | grep minecraft_server.jar | grep -v grep | awk '{print $4}')
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

\# Проверка использования диска
DISK_USAGE=$(df /opt/minecraft | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
    echo "Высокое использование диска: ${DISK_USAGE}%" | mail -s "Minecraft Alert" admin@example.com
fi

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

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

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

sudo crontab -e

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

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

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

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

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

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

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

\#!/bin/bash

BACKUP_DIR="/backup/minecraft"
DATE=$(date +%Y%m%d_%H%M%S)
SERVER_DIR="/opt/minecraft"

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

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

\# Создание архива
tar -czf $BACKUP_DIR/minecraft-backup-$DATE.tar.gz -C $SERVER_DIR .

\# Запуск сервера
systemctl start minecraft

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

echo "Minecraft backup completed: $DATE"

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

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

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

sudo crontab -e

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

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

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

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

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

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

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

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

3. Проблемы с подключением:

  • Проверьте файрвол
  • Проверьте настройки портов
  • Проверьте сетевую связность

Диагностика

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

sudo systemctl status minecraft

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

sudo journalctl -u minecraft -f

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

sudo netstat -tlnp | grep :25565

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

htop
free -h
df -h

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

telnet localhost 25565

Заключение

Minecraft сервер (Vanilla) успешно установлен и настроен! Теперь у вас есть полнофункциональный сервер с возможностями мониторинга, резервного копирования и автоматического управления.

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

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