Как установить сервер Minecraft на Ubuntu 18.04 LTS

12 set 2022 6 min di lettura
Как установить сервер Minecraft на Ubuntu 18.04 LTS
Indice dei contenuti

Введение

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

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

Те же инструкции относятся к Ubuntu 16.04 и любому дистрибутиву на основе Ubuntu, включая Linux Mint и Elementary OS.

Предпосылки

Вошедший в систему пользователь должен иметь привилегии sudo, чтобы иметь возможность устанавливать пакеты.

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

sudo apt update
sudo apt install git build-essential

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

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

Установите безголовый пакет OpenJRE 8, выполнив:

sudo apt install openjdk-8-jre-headless

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

java -version
openjdk version "1.8.0_242"
 OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
 OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

Создайте пользователя Майнкрафт

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

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

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

Установите Майнкрафт на Ubuntu

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

sudo su - minecraft

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

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

Скачиваем и компилируем mcrcon

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

Мы загрузим исходный код с GitHub и создадим двоичный файл mcrcon.

Начните с перехода в каталог ~/tools и клонируйте репозиторий Tiiffi/mcrcon из GitHub с помощью следующей команды:

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

По завершении клонирования перейдите в каталог репозитория с помощью команды cd:

cd ~/tools/mcrcon

Начните компилировать утилиту mcrcon, набрав:

gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

После завершения вы можете протестировать его, набрав:

./mcrcon -h

Вывод будет выглядеть следующим образом:

Usage: mcrcon [OPTIONS]... [COMMANDS]...
 Sends rcon commands to Minecraft server.

 Option:
 -h Print usage
 -H Server address
 -P Port (default is 25575)
 -p Rcon password
 -t Interactive terminal mode
 -s Silent mode (do not print received packets)
 -c Disable colors
 -r Output raw packets (debugging and custom handling)
 -v Output version information

 Server address, port and password can be set using following environment variables:
 MCRCON_HOST
 MCRCON_PORT
 MCRCON_PASS

 Command-line options will override environment variables.
 Rcon commands with arguments must be enclosed in quotes.

 Example:
 mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop

 mcrcon 0.6.1 (built: May 19 2019 23:39:16)
 Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/

Сервер Майнкрафт Скачать

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

Последний файл Java-архива сервера Minecraft (JAR) доступен для загрузки со страницы загрузки Minecraft.

На момент написания последняя версия — 1.52.2. Прежде чем перейти к следующему шагу, вам необходимо проверить страницу загрузки на наличие новой версии.

Запустите следующую команду wget, чтобы загрузить jar-файл Minecraft в каталог ~/server:

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

Настроить сервер Minecraft

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

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

Когда вы запускаете сервер в первый раз, он выполняет некоторую работу и создает файлы server.properties и eula.txt.

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

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

nano ~/server/eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
 #Sat Feb 15 14:32:27 CET 2020
 eula=true

Затем вам нужно отредактировать файл server.properties, чтобы включить протокол rcon и установить пароль rcon. Откройте файл с помощью текстового редактора:

nano ~/server/server.properties

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

rcon.port=25575
 rcon.password=strong-password
 enable-rcon=true

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

Пока вы здесь, вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о возможных настройках посетите страницу server.properties.

Создайте файл диска Systemd

Чтобы запустить Minecraft как службу, мы создадим новый файл модуля Systemd.

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

exit

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

sudo nano /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 -Xms512M -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 и пароль.

Сохраните и закройте файл и перезагрузите конфигурацию системного менеджера:

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 Sat 2020-02-15 14:34:46 CET; 3s ago
 Main PID: 6014 (java)
 Tasks: 10 (limit: 2298)
 CGroup: /system.slice/minecraft.service
 └─6014 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui

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

sudo systemctl enable minecraft

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

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

Чтобы разрешить трафик через стандартный порт Minecraft 25565, введите следующую команду:

sudo ufw allow 25565/tcp

Настроить бэкап

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

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

sudo su - minecraft

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

nano /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_%R).tar.gz /opt/minecraft/server
 rcon "save-on"

 ## Delete older backups
 find /opt/minecraft/backups/-type f -mtime +7 -name '*.gz' -delete

Сохраните файл и сделайте скрипт исполняемым, выполнив следующую команду chmod:

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

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

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

crontab -e

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

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

Сохраните и закройте файл.

Войдите в консоль Майнкрафт

Проверьте статус создания сервера Minecraft с помощью следующей команды:

sudo systemctl status minecraft

Вы должны получить выходное сообщение, подобное следующему:

...
 Feb 15 14:38:01 TEST-SERVER-1 java[6014]: [14:38:01] [Server-Worker-1/INFO]: Preparing spawn area: 98%
 Feb 15 14:38:02 TEST-SERVER-1 java[6014]: [14:38:02] [Server-Worker-1/INFO]: Preparing spawn area: 99%

Подождите, пока область возрождения будет готова на 100%.

Для доступа к консоли Minecraft вы можете использовать утилиту mcrcon. Синтаксис следующий, вам нужно указать хост, порт rcon, пароль rcon и использовать ключ -t, который включает режим терминала 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 18.04 и настроили ежедневное резервное копирование.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.