Быстрое разворачивание Minecraft-сервера

в 14:37, , рубрики: Без рубрики

Быстрое разворачивание Minecraft-сервера - 1


Играя в Minecraft в одиночку, всегда настаёт тот момент, когда хочется добавить к себе друзей в свой мир. Построить с ними вместе различные строения, отправиться в путешествие, вместе убить дракона или открыть новые миры. И тогда встаёт логичный вопрос: как создать свой сервер? До сего момента для игрищ использовал только сервера linux. А тут решил попробовать готовый сервер из Маркетплейса на Windows без графического интерфейса (чистый PowerShell). Мне кажется были собраны все грабли, которые только можно, но из битвы с Windows Server я вышел победителем.

Разворачиваем сервер

У меня есть некоторый опыт создания серверов Minecraft под linux, да и вообще администрирования linux, но совершенно не представлял как же быть с Windows. Возможно даже расскажу некоторые капитанские вещи, но для меня они были открытием. Самое большое откровение для меня был PowerShell. Даже не могу передать всех эмоций, использования Windows в консольном режиме. Microsoft сделало максимально неудобным всё. Почему нельзя было взять лучшее у *nix систем, внедрить у себя и улучшить? Почему нельзя сделать поддержку ssh, posix-совместимую систему команд, для чего этот велосипед?

Но спустя некоторое время даже начал получать некоторое удовольствие от интерфейса, и видеть даже какую-то логику. В общем, перейти с Windows на linux было сильно проще, чем сделать это обратно.

Итак, сервер я создавал в нашем Маркетплейсе:

Быстрое разворачивание Minecraft-сервера - 2

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

Быстрое разворачивание Minecraft-сервера - 3

Моя практика создания серверов показала, что для Minecraft-сервера необходимо не менее двух ядер, лучше больше 4-х ГБ ОЗУ. В целом, всё может работать на одном ядре, даже с 2 ГБ ОЗУ, но при большом количестве объектов, могут быть тормоза и пропуски хода.

Лично я такое наблюдал на куриной ферме, когда количество куриц у меня было более нескольких сотен. Тогда сервер реально начинал тормозить.

Быстрое разворачивание Minecraft-сервера - 4

Корпус для аккумулятора

После создания сервера, спустя несколько минут у нас будет IP-адресс сервера, его логин и пароль.

Быстрое разворачивание Minecraft-сервера - 5

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

Подключение к удалённому серверу из Windows

В Windows всё просто. Жмём «Пуск» → «Выполнить» и вводим mstsc. Вводим параметры нашего сервера.

Быстрое разворачивание Minecraft-сервера - 6

Если мы хотим копировать данные на сервер и с сервера (а я хочу), то идём во вкладку «Локальные ресурсы», и там нажимаем клавишу «Подробнее».

Быстрое разворачивание Minecraft-сервера - 7

И далее указываем какие жёсткие диски мы хотим подключить. Нам это будет необходимо, если мы захотим копировать различные моды или какой-то дополнительный софт на наш сервер.

Быстрое разворачивание Minecraft-сервера - 8

После этого мы можем подключиться к нашему серверу и увидим одно единственное окно PowerShell.

Быстрое разворачивание Minecraft-сервера - 9

Содержимое диска C: нашего компьютера будет доступно в сетевой папке:

\TSCLIENTc

Быстрое разворачивание Minecraft-сервера - 10

Думаю тут всё очевидно, и проблем возникнуть не должно.

Подключение к удалённому серверу из Linux

Вот подключение из Linux немного коварнее и сложнее, а главное работает не очень стабильно (особенно монтирование удалённых дисков). Но деваться некуда, поэтому будем использовать его. Для того, чтобы подключаться к удалённому рабочему столу машины с Windows, нам нужно установить программу Remmina.

sudo apt-get update
sudo apt-get install libfreerdp-plugins-standard remmina remmina-plugin-rdp

После установки запускаем remmina, и конфигурируем подключение к удалённому серверу.

Быстрое разворачивание Minecraft-сервера - 11

Обратите внимание на глубину цвета, если выбрать некорректную глубину цвета (большую, чем поддерживает сервер), будет ошибка подключения. Чтобы мы могли обмениваться файлами, необходимо выбрать общую папку. В моём случае это rdpfiles. В результате, наша папка на сервере будет доступна по адресу:

\TSCLIENTrdpfiles

Быстрое разворачивание Minecraft-сервера - 12

Стартуем ванильный сервер

Для того, чтобы стартовать базовый сервер, не требуется каких-то высоких материй. Для начала нам необходимо согласиться с лицензионным соглашением. Делается это командой

Approve-MinecraftEULA

Быстрое разворачивание Minecraft-сервера - 13

Всё, с этого момента сервер готов к работе. Мы можем его запустить командой

Start-Minecraft

И всё, ваш сервер готов к работе, он создаёт новый мир и идёт загрузка, но дьявол кроется в мелочах. Сам сервер очень старый, версии 1.15.2 (тогда как на момент написания этой статьи была версия Minecraft 1.16.4).

Быстрое разворачивание Minecraft-сервера - 14

Но, продемонстрирую, что сервер в действительности работает. Надо только в лаунчере поставить запуск старой версии (1.15.2), и указать при сетевом подключении IP-адресс нашего сервера.

Быстрое разворачивание Minecraft-сервера - 15

Подключение успешно состоялось.

Как же обновить сервер, спросите вы? Оказывается очень просто. Последняя версия сервера находится по следующему адресу. Там нужно будет скопировать ссылку на данный файл.

Все файлы этого Minecraft-сервера (кроме стартовых скриптов) обитают в папке C:Minecraft . Поэтому переходим в неё, и все процедуры делаем в ней.

cd C:Minecraft
#удаляем старый сервер
rm C:Minecraftserver.jar

Для того, чтобы скачать файл, в PowerShell есть аналог wget.

Invoke-WebRequest -Uri "http://www.contoso.com" -OutFile "C:pathfile"

Поэтому копируем ссылку на наш файл, и подставляем в эту команду. У меня получилось вот так (обратите внимание, что в вашем случае будет другая ссылка, так как наверняка будет уже другая версия Майнкрафта).

Invoke-WebRequest -Uri "https://launcher.mojang.com/v1/objects/35139deedbd5182953cf1caa23835da59ca3d7cd/server.jar" -OutFile "./server.jar"

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

Start-Minecraft

И видим, что у нас обновлённая версия сервера вполне себе работает.

Быстрое разворачивание Minecraft-сервера - 16

Устанавливаем моды

Эта часть попила у меня чудовищное количество крови, и я с ней очень долго бодался, пытаясь понять что же не так. Для того, чтобы работали моды, необходимо установить дополнение Forge. Не смотря на то, что скрипт запуска Forge есть на данном сервере, сам Forge не установлен! И это главная беда.

Обращаю ваше внимание, что для каждого мода требуется своя версия Forge! Поэтому ищите детальное описание на вашу модификацию, и подбирайте совместимость версии Forge и версии мода. Поскольку у меня не хватило терпения на этот квест подбора соответствующих модулей, то рассказываю основной принцип. Нет, forge с модулями завёлся, но не совсем так как от него ожидалось.

Нам необходимо скачать нужную версию Minecraft Forge (выбирайте подходящую версию под ваш мод). Для этого создадим временую папку C:tmp:

mkdir c:tmp 
cd c:tmp
#скачиваем forge
Invoke-WebRequest -Uri "https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.16.3-34.1.0/forge-1.16.3-34.1.0-launcher.jar" -OutFile "forge-1.16.3-34.1.0-launcher.jar"
#запускаем инсталятор
.forge-installer.jar

Выбираем «Install server» и выбираем папку куда ставить (C:Minecraft) жмём ОК. И дожидаемся загрузки.

Быстрое разворачивание Minecraft-сервера - 17

После окончания установки, будет выведено такое окно.

Быстрое разворачивание Minecraft-сервера - 18

Успешность установки, можно проверить командой.

Start-Minecraft -Type Forge -LogFile "C:Minecraftstdout.txt" -MinecraftPath "C:Minecraft"

Если всё запускается без ошибок, всё, ваш сервер готов к запуску модов. Дальше вы можете моды скопировать в вашу сетевую папку, в моём случае rdpfiles и затем скопировать все моды в папку C:Minecraftmods (предварительно её создав).

mkdir C:Minecraftmods
cd \TSCLIENTrdpfiles
cp *.jar C:Minecraftmods

Для того, чтобы был создан новый мир, не забываем удалять предварительно старый.

rm C:Minecraftworld 

Соглашаемся со всем, нажимая букву “А” на латинской клавиатуре. Всё, можем стартовать новый мир с модами.

Start-Minecraft -Type Forge -LogFile "C:Minecraftstdout.txt" -MinecraftPath "C:Minecraft"

Удалять моды можно точно так же удаляя файлы в папке C:Minecraftmods.

Белые списки и другие настройки сервера

Если вы создаёте сервер для друзей, не забывайте делать белые списки. А то бывают всякие неприятные ребятки, которые каким-то образом находят ваш тайный сервер и пакостят. У меня был случай, когда такой вот нехороший человек минировал наши дома. При чём несколько раз. На третий раз я психанул и разобрался с созданием белых списков для белых господ.

Белые списки можно включить через конфигурационный файл, но сильно проще их настроить прямо в консоли сервера. Для этого прямо в консоли пишем:

whitelist on

Быстрое разворачивание Minecraft-сервера - 19

Можно даже попробовать зайти на сервер и убедиться, что никто теперь на него не зайдёт.

Быстрое разворачивание Minecraft-сервера - 20

После этого можно добавить всех игроков, которые будут находиться на данном сервере. Добавлю пока только себя.

whitelist add dlinyj 

Быстрое разворачивание Minecraft-сервера - 21

Всё, теперь я могу заходить на данный сервер.

Для того, чтобы конфигурировать сервер, нужно править файл server.properties. Завершить работу сервера можно комбинацией ctrl-c. Далее можно открыть этот файл обычным блокнотом.

.notepad.exe C:Minecraftserver.properties

Быстрое разворачивание Minecraft-сервера - 22

Расписывание всех полей конфигурации сервера выходит за рамки этой статьи, поэтому вы можете ознакомиться с этим самостоятельно вот тут. Некоторые параметры можно менять прямо в консоли сервера, и они автоматически сохраняться в файле server.properties. Пример такого параметра — это создание белых списков. Что-то можно менять вручную. Экспериментируйте.

Выводы

Для меня был интересный опыт работы с серверной виндой, после linux. И каждый раз сталкивался с тем, что каждую команду надо было искать заново. Например, чтобы перезагрузить сервер, будет команда:

Restart-Computer 

Если случайно закрыть окно PowerShell, то запустить его можно комбинацией Ctrl-Shift-Esc. Затем там выполнить PowerShell.

Быстрое разворачивание Minecraft-сервера - 23

Быстрое разворачивание Minecraft-сервера - 24

В общем, открытий чудных Windows нам таила.

Можно много чего рассказать, и про установку Far-менеджера, и то где лежат настроечные скрипты. Но мне кажется, что эта статья даст понимание как же быстро и просто развернуть свой игровой сервер.

Автор: Сергей

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js