Minecraft открывает большие возможностями для творчества. Вы можете реализовать креативные идеи, играть вместе с друзьями и создавать сообщество единомышленников. А будучи администратором сервера — получаете полный контроль над поведением игроков, можете поддерживать порядок в сообществе или сохранять изменения мира.
Посмотрим, как развернуть сервер Minecraft на операционной системе Ubuntu и создать бэкапы в объектное хранилище через утилиту s3fs. Подробности — под катом.
Содержание:
→ Как создать сервер Minecraft
→ Как приступить к игре
→ Как сделать бэкап сервера в объектное хранилище
Как создать сервер Minecraft
Аппаратные требования
Для развертывания сервера Minecraft необходимо подобрать определенную конфигурацию, чтоб изображение было плавное и без задержек.
- Многоядерный процессор с высокой тактовой частотой. Он обеспечит плавный игровой процесс и обработку большого количества запросов от игроков.
- Оперативная память с объемом от 4 ГБ и выше, особенно если вы планируете хостить сервер с большим количеством игроков и использовать дополнительные модификации.
- Место на жестком диске нужно рассчитывать для хранения игровых данных, текстур, модов и плагинов.
- Стабильное высокоскоростное интернет-соединение.
В структуре Selectel вы можете арендовать выделенный сервер или сервер облачной платформы для развертывания сервера Minecraft. Если вам понадобится помощь в выборе сервера, наиболее подходящего для решения ваших целей, пишите нам на sales@selectel.ru или звоните 8 800 555 06 75 — изучим задачу и подберем подходящее решение.
Развертывание сервера
В данной статье мы рассмотрим процесс развертывания сервера на операционной системе Ubuntu. Для начала необходимо подключиться к серверу. Обычно подключение выполняется по SSH, также вы можете воспользоваться web-консолью, если она подключена к вашему серверу.
После подключения в терминале выполняем команду:
sudo apt-get update
Данная команда обновляет список пакетов в Ubuntu, чтобы система могла получить информацию о новых версиях и зависимостях пакетов из официальных источников. Это важный шаг перед установкой новых программ или обновлением уже установленных.
Далее устанавливаем Java Development Kit (JDK). Это комплект разработчика для создания и запуска программ, созданных на языке программирования Java. Мы будем использовать JDK для запуска самого сервера, поскольку сервер Minecraft написан на Java.
Устанавливаем Java Development Kit командой:
sudo apt-get install openjdk-17-jdk
Создаем директорию, в которой будет располагаться сервер Minecraft, и сразу переходим в нее:
mkdir minecraft_server
cd minecraft_server
Теперь скачиваем утилиту wget, с помощью которой мы сможем загрузить серверный JAR-файл с последней версией Minecraft:
sudo apt-get install wget
JAR-файл (Java Archive) является исполняемым файлом, он содержит необходимые компоненты для запуска сервера Minecraft. В нем лежат код и ресурсы, обеспечивающие работу сервера. Формат JAR является стандартным форматом для дистрибуции и запуска Java-приложений.
Переходим на официальный сайтMinecraft и копируем ссылку при помощи правой кнопки мыши на актуальный файл JAR.
Скачиваем файл с помощью утилиты wget и скопированной ссылки:
wget https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar
Настало время запустить установленный сервер и отправиться в путешествие по просторам виртуального мира! Запускаем сервер с помощью следующей команды:
java -Xmx1024M -Xms1024M -jar server.jar nogui
Упс! У вас тоже произошла ошибка?
Без паники. Ошибки возникли, потому что сервер не смог обнаружить файлы eula.txt (файл лицензионного соглашения конечного пользователя) и server.properties (файл конфигурации). Однако сервер уже автоматически создал их в текущей директории.
Открываем eula.txt с помощью редактора nano:
nano eula.txt
В открывшемся файле на первой строке представлена ссылка на пользовательское соглашение:
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
Ознакомьтесь с текстом по ссылке и замените в файле значение параметра eula с false на true. Таким образом вы принимаете условия пользовательского соглашения.
Далее выходим из редактора сочетанием клавиш Ctrl + X. Соглашаемся на сохранение файла, нажав на клавишу Y. И подтверждаем сохранение изменений в eula.txt клавишей Enter.
Снова пробуем запустить наш сервер командой:
java -Xmx1024M -Xms1024M -jar server.jar nogui
Теперь сервер запустился успешно!
Как приступить к игре
Изменение параметра online-mode
Автоматически при установке сервера в конфигурационном файле выставлен параметр online-mode = true. Это значит, что сервер Minecraft будет проверять подлинность учетных записей игроков через официальные серверы Mojang перед разрешением доступа к игровому миру. Для отключения проверки нам необходимо изменить значение параметра на false.
Останавливаем наш сервер командой:
stop
Открываем конфигурационный файл server.properties через редактор nano:
nano server.properties
На 23 строчке документа находим параметр online-mode и выставляем ему значение false:
Дополнительную информацию о параметрах, представленных в файле server.properties, вы можете узнать на Minecraft Wiki.
Далее выходим из редактора сочетанием клавиш Ctrl + X. Соглашаемся на сохранение файла, нажав на клавишу Y. И подтверждаем изменения в server.properties клавишей Enter.
Снова запускаем наш сервер:
java -Xmx1024M -Xms1024M -jar server.jar nogui
Ограничение доступа
При необходимости вы можете ограничить доступ к вашему серверу, использовав оператор whitelist — от английского «белый список». Когда функция whitelist активирована, только игроки, чьи имена присутствуют в списке, смогут подключиться и играть на сервере.
Для включения функции whitelist выполняем команду:
whitelist on
Добавить игрока можно по команде:
whitelist add <имя_игрока>
Ознакомиться с другими командами для изменения параметров игры можно в разделе «Командные консоли» на Minecraft Wiki.
Любите детективы? Пройдите квест «В поисках пропавших ссылок»! Регистрируйтесь на сайте и попробуйте себя в роли сыщика: найдите на страницах Selectel спрятанные ссылки и первыми дойдите до финала. Выиграйте эксклюзивный мерч и промокод на сервисы Selectel.
Установка лаунчера и запуск игры
На локальный компьютер скачиваем лаунчер — это программа для запуска других приложений.
Открываем лаунчер и внизу появившегося окна указываем имя, с которым будет запущена игра, а также актуальную версию игры — 1.20.4. Нажимаем кнопку Установить:
В открывшемся окне выбираем режим Multiplayer:
Добавляем наш сервер по кнопке Add Server:
Указываем наименование сервера в поле Server Name и адрес подключения в поле Server Address, после добавляем сервер по кнопке Done:
Замените <IP-адрес> на IP-адрес вашего сервера, на котором развернут и запущен Minecraft.
Наш сервер добавлен и теперь будет отображаться в разделе Multiplayer. Подключиться к запущенному серверу можно по кнопке Join Server:
Как сделать бэкап сервера в объектное хранилище
Бэкапы позволяют предотвратить потерю информации при неисправности оборудования, атаках вредоносного ПО, случайном удалении данных или ошибках по неосторожности. Если у вас есть резервная копия, вы можете восстановить данные и продолжить работу.
Почему объектное хранилище?
Создание бэкапа в объектное хранилище Selectel имеет несколько преимуществ.
- Масштабируемость. У вас нет ограничения на объем сохраняемых данных. Можете легко добавлять и удалять объекты из хранилища без значительного влияния на производительность.
- Вариативность доступа. Для работы с объектным хранилищем есть множество консольных и графических инструментов. Можно обращаться к объектам по разным уникальным идентификаторам и получать доступ к ним через API, что упрощает автоматизацию и интеграцию с другими системами.
- Отказоустойчивость. Каждый объект сохраняется в трех копиях, которые размещаются на отдельных серверах и располагаются в различных стойках. Такая система обеспечивает высокий уровень надежности хранения данных. В случае возникновения проблем с одним сервером или даже поломки всей стойки ваши данные будут в порядке.
-
Стоимость. Плата списывается только за фактически использованное место.
Это может быть экономически выгодным вариантом по сравнению с традиционными решениями хранения данных. Стоимость хранения 1ГБ составит 2,29 ₽/мес.
Что нам понадобится
- Контейнер в Объектном хранилище.
- Сервисный пользователь.
- S3 ключи для авторизации.
Создание контейнера
Авторизуемся в панели управления my.selectel.ru и переходим в раздел Объектное хранилище. Затем кликаем по кнопке Создать контейнер.
Указываем параметры контейнера:
- Имя: наименование контейнера латинскими буквами с нижним регистром.
- Тип: Публичный.
- Класс хранения: Холодное хранение.
- Адресация: Virtual-Hosted адресация позволяет использовать CORS. Если она включена, ее больше нельзя отключить. Включается на ваше усмотрение.
И кликаем по кнопке Создать контейнер.
Создание сервисного пользователя
Сервисный пользователь — это пользователь с учетной записью для программного доступа к продукту через API и другие инструменты автоматизации.
Для создания сервисного пользователя переходим на страницу настроек профиля, кликнув по кнопке из выпадающего списка Профиль и настройки.
В разделе Управление пользователями переходим во вкладку Сервисные пользователи и нажимаем на кнопку Добавить пользователя.
В параметрах при добавлении пользователя указываем роль Администратор объектного хранилища и проект облачной платформы, в котором находится наш контейнер. В завершение создаем пользователя по кнопке Добавить пользователя.
Выдача S3 ключа
Переходим в карточку пользователя, нажав на его имя. В нашем случае Стив.
Для выдачи S3 ключа нажимаем кнопку Добавить ключ в разделе S3 ключи.
Указываем наименование ключа и проект, которому он будет привязан. Для создания нажимаем кнопку Сгенерировать.
В открывшемся окне вы увидите значения:
- Access key — Access Key ID, идентификатор ключа;
- Secret key — Secret Access Key, секретный ключ.
Обязательно сохраните значения созданного ключа, потому что после закрытия окна вы не сможете больше увидеть значение Secret key. В рамках панели управления будет отображаться только наименование ключа, проект, которому он принадлежит, и значение Access key.
Бэкап мира через утилиту s3fs
Рассмотрим создание бэкапа в объектное хранилище через утилиту s3fs. Это удобный инструмент для монтирования объектного хранилища в виде файловой системы.
Для начала устанавливаем утилиту s3fs командой:
sudo apt-get update
sudo apt-get install s3fs
Далее создаем файл с данными для авторизации в домашней директории:
echo "<accessKeyId>:<secretAccessKey>" > .passwd-s3fs
Замените accessKeyId и secretAccessKey на ваши данные для авторизации, которые мы получали ранее через панель управления.
Теперь необходимо убедиться, что файл имеет ограниченные права доступа, для обеспечения безопасности ваших учетных данных:
chmod 600 ~/.passwd-s3fs
Создаем пустую директорию, которая будет использоваться для монтирования контейнера:
mkdir ~/minecraft_backup
Теперь монтируем контейнер командой:
s3fs <наименование_контейнера> <путь_к_каталогу монтирования> -o passwd_file=<путь_файлу_с_данными_авторизации> -o use_path_request_style -o endpoint=ru-1 -o url=https://s3.ru-1.storage.selcloud.ru
Подставим в команду данные, которые мы использовали ранее:
s3fs <наименование_контейнера> ~/minecraft_backup -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=ru-1 -o url=https://s3.ru-1.storage.selcloud.ru
Переносим все данные из директории, где хранятся данные нашего сервера minecraft_server, в примонтированный контейнер minecraft_backup через утилиту cp:
cp ~/minecraft_server ~/minecraft_backup
Готово! Теперь вы умеете разворачивать сервер Minecraft и создавать его резервную копию. Играйте и не думайте о последствиях, ведь сервер всегда можно восстановить из резервной копии! Если, конечно, сохранить…
Комментарии (20)
GritsanY
01.04.2024 11:01+7Отключив аутентификацию учётных записей на серверах Mojang, ваш сервер неизбежно подвергнется набегу гриферов, не спасёт ни смена порта, ни "белый список".
Рекомендую всё-таки потратиться на лицензию (ваша статья хоть и не говорит об этом на прямую, но подталкивает использовать пиратскую версию игры - тут и Tlauncher, и отключение online mode), или уж на крайний случай перевести сервер на Paper или подобный ему и поставить плагин аутентификации.
Ну и, конечно, традиционно для подобных статей нужно упомянуть docker образ itzg/minecraft https://github.com/itzg/docker-minecraft-server, который если оседлать, сильно облегчает процесс запуска, обновления, бекапа сервера и добавления модов/плагинов.
andrey_nado
01.04.2024 11:01потратиться на лицензию
Недоступно из России.
GritsanY
01.04.2024 11:01+3Справедливо. Но Хабр ≠ Россия, да и в общем тема пиратства довольно важна в контексте статьи. Тот же TLauncher довольно мутный и рекомендовать его можно только в случае, если лицензии нет, как и возможности её купить.
v_chaplyak
01.04.2024 11:01Сам обладатель лицензии. Но ко многим серверам не подключится - нужно ставить клиент тот что дают(хотя там модов никаких нету). Дома с сыном по сети не получилось сыграть, с двух ПК с одной лицензией низя. Себе ставил TLauncher
anrewcpp
01.04.2024 11:01А можете, пожалуйста, рассказать, почему белый список не спасёт от гриферов? Есть какие-то подводные камни?
GritsanY
01.04.2024 11:01Я не знаю подробностей, но судя по всему, есть какая-то недокументированная (а может и документированная) возможность получить этот список с сервера или сбрутфорсить именя пользователей из списка, потому что мой сервер закрытый whitelist-ом и с отключенным online mode, был неоднократно вандализирован гриферами. Если вы знаете имя пользователя из whitelist-а, тот же TLauncher позволяет задать любое имя при запуске Minecraft в offline режиме и вы можете легко подключиться к серверу.
Если у вас сервер с мод-паком, то он в меньшей опасности, так как гриферам нужно ещё и подключаться с сответствующими модами и их версиями, ведь сервер даёт отлуп при несовпадении. По крайней мере мои сервера с мод-паками месяцами торчат наружу и никто их не трогает (в отличие от ванильных).
M_AJ
01.04.2024 11:01+1Рекомендую всё-таки потратиться на лицензию (ваша статья хоть и не
говорит об этом на прямую, но подталкивает использовать пиратскую версию
игрыЭтот вариант предполагает убедить всех играющих так же потратиться на лицензию. Если все, с кем вы играете имеют лицензионную версию, то это замечательно, но есть ненулевая вероятность, что так повезет не всем.
Как обходной вариант, можно закрыться фаерволом и написать простейшее веб-приложение, которое будет добавлять ip авторизовавшегося пользователя в белый фаервола на сутки. Это защитит от случайных посетителей.
anrewcpp
01.04.2024 11:01+1Как раз недавно поднимал модовую сборку 1.19.2. Для сервера взял Spigot. Расчёт был на не супер большое количество модов и на одновременную игру не более 5-ти человек. Собирал и тестировал всё локально и потом просто запушил на хост - это намного, имхо, удобнее.
По поводу TLauncher - поправьте, если не прав, но его репутация оставляет желать лучшего...Stam_emg
01.04.2024 11:01+1Хотел бы внести ясность, тк недавно сам запутался с TLauncher-ами.
Текущий TLauncher - мутный, но изначальный проект под тем же именем, который потом переименовался - назывался TLauncher Legacy, а ныне - Legacy Launcher. И в отличие от текущего "мутного" TLauncher - он вполне вменяемый.
Sazonov
01.04.2024 11:01Был у нас когда-то свой сервер на работе, году эдак в 2012, с небольшим но удачным подбором модов. Там зверушки были (оборотни, змеи, големы), industrial craft, build craft, какие-то chests / pipes / solar panels и главное - с полным набором текстур и картой по типу google maps. Я пробовал готовое что-то похожее искать на всяких curseforge но не нашел. Либо модов 100500 штук, либо текстур нет, либо всякие несовместимости.
Может посоветуете какой-нибудь сервак с клиентом для самостоятельного разворачивания?
GritsanY
01.04.2024 11:01+1Ну если вам нужен конкретный набор модов, вам или долго искать модпак на curseforge (там их так много, что скорее всего нужный вам в списке найдётся), либо там же искать конкретные моды и самому собирать модпак.
Можно тот же itzg/minecraft-docker-server использовать для поднятия сервера и указать persistent volume, куда сложить моды. Для клиента можно использовать Prism launcher/ATLauncher и собрать аналогичный клиентский модпак.
Кстати, на curseforge свет клином не сошёлся и много интересного есть на modrinth, куда уехали многие недовольные площадкой curseforge модописатели.
Sazonov
01.04.2024 11:01У меня основная проблема была - это текстуры собрать ко всем модам. Очень раздражает когда 50% того что видишь идёт со стандартными текстурами. Хочется хотя бы минимальный апскеил. Спасибо, поковыряюсь. Хотелось что-то готовое из коробки.
d3n4k
01.04.2024 11:01+2Для майнкрафта важна частота процессора, а вот количество ядер не столь критична.
begin_end
01.04.2024 11:01Да, обычный непереписанный моно-сервер (без разделения на подсервера банжой) хоть и на Spigot практически всю обработку выполняет в 1 потоке. Все большие сервера (от 1к онлайна/подсервер) часто имеют переделку ПО на многопоточность).
Breathe_the_pressure
Сколько пользователей нормально могут играть на 4 Гб? У меня сынуля запускает сервак на своём ноуте, так на 11 интеле и 8 Гб он нормально ресурсов отжирает. Ну на 5-7 человек хватает, а дальше наврядли.
VadimBoev
существуют разные ядра серверов, обычный от mojang он не оптимизирован
К примеру есть ядра: Paper, Pufferfish, Purpur (Spigot)
Haze27
Хостил сборку на 50+ модов, было 4гб и 1 ядро, использовали Mohist как ядро, по итогу - играли месяц 2-6 рыл, исследовали много чанков. А если без модов, то есть ещё более оптимизированные ядра вроде Spigot или PaperSpigot
M_AJ
Зависит еще от самих модов, есть более прожорливые, есть менее.
begin_end
Для справки, на версии Spigot 1.12.2 + bungee сервер с 32Гб памяти держал до 200 игроков онлайна с падением тикрейта до 5 на наиболее наполненном подсервере (6 подсерверов, основные из которых обвешаны десятками плагинов, правда многие из которых были оптимизированы или выполняли функции оптимизации). Процессор 4790k и 200Мбит подключение. Дальнейшее наполнение игроками лимитировалось сетью (подключения начинали дропаться).