Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница, которая позволяет игрокам исследовать бесконечные миры и строить все, от простых домов до больших небоскребов.
В этом руководстве рассматривается установка и настройка сервера Minecraft в Ubuntu 18.04. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon
для подключения к запущенному экземпляру. Мы также покажем вам, как создать задание cron, которое выполняет регулярное резервное копирование сервера.
Те же инструкции применимы для 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_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
Создание пользователя 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
будет храниться резервная копия вашего сервера. Позже вы можете синхронизировать этот каталог с удаленным сервером резервного копирования. - В каталоге
tools
будут храниться клиентmcrcon
и сценарий резервного копирования. - Каталог
server
будет содержать фактический сервер Minecraft и его данные.
Скачивание и компиляция mcrcon
RCON — это протокол, который позволяет подключаться к серверам Minecraft и выполнять команды. mcron — это клиент RCON, встроенный в C.
Мы mcrcon
исходный код с GitHub и mcrcon
двоичный файл mcrcon
.
Начните с Tiiffi/mcrcon
в Tiiffi/mcrcon
~/tools
и Tiiffi/mcrcon
репозиторий Tiiffi/mcrcon
из GitHub, используя следующую команду:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
Когда клонирование будет завершено, перейдите в каталог репозитория:
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
Существует несколько модов сервера Minecraft, таких как Craftbukkit или Spigot, которые позволяют добавлять функции (плагины) на ваш сервер и дополнительно настраивать и настраивать параметры сервера. В этом руководстве мы установим последний официальный ванильный сервер Minecraft от Mojang.
Последний файл архива Java (JAR) сервера Minecraft доступен для загрузки на странице загрузки Minecraft .
На момент написания последняя версия — 1.14.1
. Перед тем, как перейти к следующему шагу, вам следует проверить страницу загрузки на предмет наличия новой версии.
Выполните следующую команду wget
чтобы загрузить файл jar Minecraft в каталог ~/server
:
wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server
Настройка Сервера Майнкрафт
После завершения загрузки перейдите в каталог ~/server
и запустите сервер Minecraft:
cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui
Когда вы запускаете сервер в первый раз, он выполняет некоторые операции, создает файлы server.properties
и eula.txt
и останавливается.
[23:41:44] [main/ERROR]: Failed to load properties from file: server.properties
[23:41:45] [main/WARN]: Failed to load eula.txt
[23:41:45] [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).
#Sun May 19 23:41:45 PDT 2019
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
.
Откройте текстовый редактор и создайте файл с именем 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
и пароль.
Сохраните и закройте файл и перезагрузите конфигурацию 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 Sun 2019-05-19 23:49:18 PDT; 9min ago
Main PID: 11262 (java)
Tasks: 19 (limit: 2319)
CGroup: /system.slice/minecraft.service
`-11262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
Наконец, включите автоматический запуск службы Minecraft во время загрузки:
sudo systemctl enable minecraft
Настройка брандмауэра
Если ваш сервер защищен брандмауэром, и вы хотите получить доступ к серверу Minecraft извне вашей локальной сети, вам необходимо открыть порт 25565
.
Чтобы разрешить трафик на порт 25565
Minecraft по умолчанию, введите следующую команду:
sudo ufw allow 25565/tcp
Настройка резервного копирования
В этом разделе мы создадим сценарий оболочки резервного копирования и задание cron для автоматического резервного копирования сервера 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-%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
:
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 18.04 и настроили ежедневное резервное копирование.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.