Как сделать сервер Minecraft на Ubuntu 20 04

Материал из wiki.ramba-art.ru
Версия от 20:49, 25 марта 2023; Artem (обсуждение | вклад) (Новая страница: «'''Подготовка''' Согласно официальному сайту Minecraft, в качестве минимальной конфигурации для типичной установки рекомендуется 4 ГБ ОЗУ. '''Установите пакеты, необходимые для сборки инструмента mcrcon :''' apt update && apt upgrate -y apt install git build-essential '''Установка сред...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Подготовка Согласно официальному сайту Minecraft, в качестве минимальной конфигурации для типичной установки рекомендуется 4 ГБ ОЗУ.

Установите пакеты, необходимые для сборки инструмента mcrcon :

   apt update && apt upgrate -y
   apt install git build-essential

Установка среды выполнения Java

   apt install openjdk-17-jre-headless

Проверяем версию

   java -version

Ответ должны получить

   openjdk version "17.0.5" 2022-10-18
   OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu120.04)
   OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu120.04, mixed mode, sharing)

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

По соображениям безопасности Minecraft не следует запускать от имени пользователя root. Мы создадим нового системного пользователя и группу с домашним каталогом /opt/minecraft . У пользователя будут минимально необходимые разрешения для запуска сервера Minecraft:

   useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

Мы не будем устанавливать пароль для этого пользователя. Таким образом, пользователь не сможет войти через SSH и его нельзя будет скомпрометировать. Чтобы перейти на пользователя minecraft , вам необходимо войти на сервер как пользователь root или пользователь с привилегиями sudo .

Установка Minecraft на Ubuntu

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

   su - minecraft

Выполните следующую команду, чтобы создать три новых каталога внутри домашнего каталога пользователя:

   mkdir -p ~/{backups,tools,server}
  • В каталоге backups будут храниться резервные копии вашего сервера Minecraft. Вы можете синхронизировать этот каталог с вашим удаленным сервером резервного копирования.
  • Каталог tools будет содержать клиент mcrcon и скрипт резервного копирования.
  • Каталог server будет содержать фактический сервер Minecraft и его данные.

Скачивание и компиляция mcrcon

RCON — это протокол, который позволяет подключаться к серверам Minecraft и выполнять команды. mcron — это клиент RCON, написанный на C.

Мы mcrcon исходный код с GitHub и mcrcon двоичный файл mcrcon .

Tiiffi/mcrcon репозиторий Tiiffi/mcrcon с GitHub в каталог ~/tools/mcron :

   git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon

По завершении mcron каталог mcron и mcron утилиту:

   cd ~/tools/mcrcon
   gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

После завершения убедитесь, что mcrcon успешно скомпилирован, распечатав его версию:

   ./mcrcon -v

Результат будет выглядеть примерно так:

   mcrcon 0.7.2 (built: Oct  2 2022 16:10:42) - https://github.com/Tiiffi/mcrcon
   Bug reports:
       tiiffi+mcrcon at gmail
       https://github.com/Tiiffi/mcrcon/issues/

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

Существует несколько модов сервера Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на ваш сервер и дополнительно настраивать и настраивать параметры сервера.

В этом руководстве мы установим последний официальный ванильный сервер Minecraft от Mojang. Те же инструкции применимы и для установки других серверных модов.

Перейдите на страницу загрузки Minecraft, чтобы получить ссылку для загрузки последней версии файла архива Java (JAR) сервера Minecraft. На момент написания последняя версия — 1.19.4 .

Загрузите файл jar в каталог ~/server с помощью wget :

   wget https://piston-data.mojang.com/v1/objects/8f3112a1049751cc472ec13e397eade5336ca7ae/server.jar -P ~/server

Настройка Сервера Майнкрафт

После завершения загрузки переключитесь в каталог ~/server и запустите сервер Minecraft:

   cd ~/server
   java -Xmx1024M -Xms1024M -jar server.jar nogui

При первом запуске сервер выполняет некоторые операции, создает файлы server.properties и eula.txt и останавливается.

   [17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
   [17:35:15] [main/WARN]: Failed to load eula.txt
   [17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Чтобы запустить сервер, вам необходимо согласиться с лицензионным соглашением Minecraft EULA, как указано в выходных данных выше. Откройте файл eula.txt и замените eula=false на eula=true :

   nano ~/server/eula.txt
                      ~/server/eula.txt
   eula=true

акройте и сохраните файл. Напомню ctrl + O => save & ctrl + X => exit.

Затем откройте файл server.properties включите протокол rcon и установите пароль rcon:

   nano ~/server/server.properties

Найдите следующие строки и обновите их значения, как показано ниже:

                     ~/server/server.properties
   rcon.port=25575
   rcon.password=strong-password
   enable-rcon=true

Не забудьте сменить надежный strong-password на более безопасный. Если вы не хотите подключаться к серверу Minecraft из удаленных мест, убедитесь, что порт rcon заблокирован вашим брандмауэром. Здесь вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о настройках сервера посетите страницу server.properties .

Создание файла модуля Systemd

Вместо того, чтобы вручную запускать сервер Minecraft, мы создадим файл модуля Systemd и запустим Minecraft как службу.

Вернитесь к своему пользователю sudo, набрав exit .

Откройте текстовый редактор и создайте файл с именем minecraft.service в каталоге /etc/systemd/system/ :

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

Вставьте следующую конфигурацию:

                     /etc/systemd/system/minecraft.service
   [Unit]
   Description=Minecraft Server
   After=network.target
   [Service]
   User=minecraft
   Nice=1
   KillMode=none
   SuccessExitStatus=0 1
   ProtectHome=true
   ProtectSystem=full
   PrivateDevices=true
   NoNewPrivileges=true
   WorkingDirectory=/opt/minecraft/server
   ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
   ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
   [Install]
   WantedBy=multi-user.target

Измените флаги Xmx и Xms соответствии с ресурсами вашего сервера. Флаг Xmx определяет максимальный пул распределения памяти для виртуальной машины Java (JVM), а Xms определяет начальный пул распределения памяти. Также убедитесь, что вы используете правильный порт rcon и пароль.

Сохраните файл и перезагрузите конфигурацию systemd manager:

   sudo systemctl daemon-reload

Теперь вы можете запустить сервер Minecraft, набрав:

   sudo systemctl start minecraft

При первом запуске службы она сгенерирует несколько файлов конфигурации и каталогов, включая мир Minecraft.

Проверьте статус службы с помощью следующей команды:

   sudo systemctl status minecraft


  * minecraft.service - Minecraft Server
    Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
    Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
  Main PID: 1338035 (java)
     Tasks: 15 (limit: 1074)
    Memory: 465.3M
    CGroup: /system.slice/minecraft.service
            └─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui

Наконец, включите автоматический запуск службы Minecraft во время загрузки:

   sudo systemctl enable minecraft

Настройка брандмауэра

Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр , и вы хотите получить доступ к серверу Minecraft извне вашей локальной сети, вам необходимо открыть порт 25565 :

   sudo ufw allow 25565/tcp

Настройка резервного копирования

В этом разделе мы создадим сценарий оболочки резервного копирования и задание cron для автоматического резервного копирования сервера Minecraft.

Переключитесь на minecraft :

   sudo su - minecraft

Откройте текстовый редактор и создайте следующий файл:

   nano /opt/minecraft/tools/backup.sh

Вставьте следующую конфигурацию:

                     /opt/minecraft/tools/backup.sh
   #!/bin/bash
   function rcon {
     /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
   }
   rcon "save-off"
   rcon "save-all"
   tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
   rcon "save-on"
   ## Delete older backups
   find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

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

   chmod +x /opt/minecraft/tools/backup.sh

Затем создайте задание cron, которое будет запускаться автоматически один раз в день в определенное время.

Откройте файл crontab, набрав:

   crontab -e

Чтобы запускать сценарий резервного копирования каждый день в 23:00, вставьте следующую строку:

   0 23 * * * /opt/minecraft/tools/backup.sh

Доступ к консоли Minecraft

Для доступа к консоли Minecraft используйте утилиту mcrcon . Вам необходимо указать хост, порт rcon, пароль rcon и использовать переключатель -t который включает mcrcon терминала mcrcon :

   /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
   Logged in. Type "Q" to quit!
   >

При доступе к консоли Minecraft из удаленного места убедитесь, что порт rcon не заблокирован.

Если вы регулярно подключаетесь к консоли Minecraft, вместо того, чтобы вводить эту длинную команду, вы создаете псевдоним bash .

Выводы

Мы показали вам, как создать сервер Minecraft на Ubuntu 20.04 и настроить ежедневное резервное копирование.

Теперь вы можете запустить свой клиент Minecraft , подключиться к серверу и начать свое приключение в Minecraft.