Как сделать сервер Minecraft на Ubuntu 20 04
Подготовка
Согласно официальному сайту 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.