Введение
Minecraft — одна из самых популярных игр всех времен. Это видеоигра-песочница, в которой игроки исследуют бесконечные миры и строят различные сооружения, от простых домов до высоких небоскребов.
В этом руководстве объясняется, как создать сервер Minecraft на Ubuntu 20.04 LTS Focal Fossa. Мы будем использовать Systemd для запуска сервера Minecraft и утилиту mcrcon
для подключения к запущенному экземпляру. Мы также покажем вам, как создать cronjob, который регулярно выполняет резервное копирование сервера.
Если вы хотите установить Minecraft на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Предпосылки
Согласно официальному веб-сайту Minecraft, 4 ГБ ОЗУ рекомендуется в качестве минимальной конфигурации для типичной установки.
Установите пакеты, необходимые для сборки инструмента mcrcon
:
sudo apt update
sudo 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 под пользователем 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
будет хранить резервные копии вашего сервера Minecraft. Вы можете синхронизировать этот каталог с удаленным сервером резервного копирования. - Каталог
tools
будет содержать клиентmcrcon
и скрипт резервного копирования. server
каталогов будет содержать текущий сервер Minecraft и его данные.
Скачиваем и компилируем mcrcon
RCON — это протокол, который позволяет вам подключаться к серверам Minecraft и выполнять команды. mcron — клиент RCON, написанный на C.
Мы загрузим исходный код с GitHub и создадим двоичный файл mcrcon
.
Клонируем репозиторий Tiiffi/mcrcon
с GitHub в ~/tools/mcron
с помощью git:
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
Когда закончите, перейдите в каталог mcron
с помощью команды cd и создайте утилиту:
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
После завершения убедитесь, что mcrcon
был скомпилирован правильно, распечатав его версию:
./mcrcon -v
Вывод будет выглядеть следующим образом:
mcrcon 0.7.1 (built: Jun 24 2020 17:16:11) - https://github.com/Tiiffi/mcrcon
Bug reports:
tiiffi+mcrcon at gmail
https://github.com/Tiiffi/mcrcon/issues/
Сервер Майнкрафт Скачать
Существует несколько серверных модов Minecraft, таких как Craftbukkit или Spigot, которые позволяют вам добавлять функции (плагины) на ваш сервер, а также дополнительно настраивать и изменять настройки вашего сервера.
В этом руководстве мы установим последний официальный ванильный сервер Mojang для Minecraft. Те же инструкции применимы и для установки других серверных модов.
Перейдите на страницу загрузки Minecraft, чтобы получить ссылку для загрузки последнего файла архива Java сервера Minecraft (JAR). На момент написания последней версией была 1.16
.
Загрузите файл jar в каталог ~/server
с помощью wget
:
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Настроить сервер Minecraft
После завершения загрузки перейдите в каталог ~/server
и запустите сервер Minecraft:
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
При первом запуске сервер выполняет некоторые операции, создает файлы server.properties
и eula.txt
и останавливается.
[17:17:07] [main/ERROR]: Failed to load properties from file: server.properties
[17:17:07] [main/WARN]: Failed to load eula.txt
[17:17:07] [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
Закройте и сохраните файл.
Затем откройте файл server.properties
, включите протокол rcon и установите пароль rcon:
nano ~/server/server.properties
Найдите следующие строки и обновите их значения, как показано ниже (порт уже должен быть установлен на 25575
):
Не забудьте сменить tua-password
на более безопасный. Если вы не хотите подключаться к серверу Minecraft из удаленных мест, убедитесь, что порт rcon заблокирован вашим брандмауэром.
Пока вы здесь, вы также можете настроить свойства сервера по умолчанию. Для получения дополнительной информации о настройках сервера посетите страницу server.properties.
Создайте файл диска Systemd
Вместо запуска сервера Minecraft вручную мы создадим файл модуля Systemd и запустим Minecraft как службу.
Вернитесь к своему пользователю sudo, набрав exit
:
exit
Откройте текстовый редактор и создайте файл с именем minecraft.service
в каталоге /etc/systemd/system/
:
sudo nano /etc/systemd/system/minecraft.service
Вставьте следующую конфигурацию:
Измените флаги 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 Wed 2020-06-24 17:23:45 CEST; 3s ago
Main PID: 11959 (java)
Tasks: 12 (limit: 2286)
Memory: 56.6M
CGroup: /system.slice/minecraft.service
└─11959 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
Jun 24 17:23:45 TEST-SERVER-1 systemd[1]: Started Minecraft Server.
Наконец, включите службу Minecraft для автоматического запуска при запуске:
sudo systemctl enable minecraft
Настройте брандмауэр
Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр и вы хотите получить доступ к серверу Minecraft из-за пределов вашей локальной сети, вам необходимо открыть порт 25565
:
sudo ufw allow 25565/tcp
Настроить бэкап
В этом разделе мы создадим сценарий оболочки резервного копирования и cronjob для автоматического резервного копирования сервера Minecraft.
Переключитесь на пользователя minecraft
с помощью команды su:
sudo su - minecraft
Откройте текстовый редактор и создайте следующий файл:
nano /opt/minecraft/tools/backup.sh
Вставьте следующую конфигурацию:
Сохраните файл и сделайте скрипт исполняемым:
chmod +x /opt/minecraft/tools/backup.sh
Затем создайте задание cron, которое будет запускаться один раз в день автоматически в фиксированное время.
Откройте файл crontab, набрав:
crontab -e
Чтобы запускать сценарий резервного копирования каждый день в 23:00, вставьте следующую строку:
0 23 * * * /opt/minecraft/tools/backup.sh
Войдите в консоль Майнкрафт
Для доступа к консоли Minecraft используйте утилиту mcrcon
. Вам нужно указать хост, порт rcon, пароль rcon и использовать параметр -t
, который включает режим терминала mcrcon
.
Проверьте статус сервера Minecraft:
sudo systemctl status minecraft
Убедитесь, что сервер готов:
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [Worker-Main-2/INFO]: Preparing spawn area: 99%
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [Server thread/INFO]: Time elapsed: 103220 ms
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [Server thread/INFO]: Done (126.416s)! For help, type "help"
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [Server thread/INFO]: Starting remote control listener
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [Server thread/INFO]: Thread RCON Listener started
Jun 24 17:26:16 TEST-SERVER-1 java[11959]: [17:26:16] [RCON Listener #1/INFO]: RCON running on 0.0.0.0:25575
Затем подключитесь через утилиту mcrcon
:
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p tua-password -t
Logged in. Type "Q" to quit!
>
При доступе к консоли Minecraft из удаленного места убедитесь, что порт rcon не заблокирован.
Если вы регулярно подключаетесь к консоли Minecraft, вместо ввода этой длинной команды вы создаете псевдоним bash.
Вывод
В этом руководстве мы увидели, как создать сервер Minecraft на Ubuntu 20.04 LTS Focal Fossa и настроить ежедневное резервное копирование.