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

Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница, в которой игроки исследуют бесконечные миры и строят различные конструкции, от простых домов до высоких небоскребов.

В этом руководстве объясняется, как создать сервер Minecraft на Ubuntu 20.04. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon для подключения к запущенному экземпляру. Мы также покажем вам, как создать задание cron, которое выполняет регулярное резервное копирование сервера.

Подготовка

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

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

sudo apt updatesudo apt install git build-essential

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

Minecraft требует Java 8 или выше. Серверу Minecraft не нужен графический пользовательский интерфейс, поэтому мы установим безголовую версию Java. Эта версия больше подходит для серверных приложений, поскольку у нее меньше зависимостей и меньше системных ресурсов.

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

sudo apt install openjdk-11-jre-headless

Проверьте установку, распечатав версию Java :

java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

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

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

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

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

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

Перед тем как начать процесс установки, переключитесь на пользователя minecraft :

sudo 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/mcrcongcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

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

./mcrcon -v

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

mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - 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.16 .

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

wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server

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

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

cd ~/serverjava -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

Закройте и сохраните файл.

Затем откройте файл 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.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

7 комментариев
  1. 29.06.2021
  2. 01.08.2021
    • 26.07.2022
  3. 08.08.2022
  4. 24.08.2022
  5. 19.01.2023
  6. 18.05.2023

Оставьте комментарий