ВОЙТИ
    Любишь Minecraft и хочешь поиграть со своими друзьями на своем собственном сервере?
    Cпециализированные хостинги для Minecraft сильно ограничивают возможности управления сервером?

    В таком случае, можно создать свой Minecraft сервер, рекомендую заказать виртуальный сервер общего назначения, на который можно устанавливать любое ПО, любое количество модов и выполнять любые установки/настройки, ограничиваясь лишь техническими характеристиками сервера. Сервер полностью под Вашим контролем.

    В этой статье я расскажу, как выполнить базовую установку сервера игры Minecraft: Java Edition 1.18.2 на виртуальном сервере (VPS) с Ubuntu 20.04

    1. Для начала нужно определиться с системными параметрами.

    Минимальные параметры для 1-3 игроков (учитываются также ресурсы используемые операционной системой):
    Операционная система: Ubuntu 20+ (потребляет значительно меньше ресурсов, чем Windows)
    Процессор: 2-3 ядра
    ОЗУ: 3-4 Гб

    Чем больше игроков, модов или чем больше мир, тем мощнее требуется сервер.
    Если взять систему слабее, игра может работать, но скорее всего будет сильно лагать в определённых локациях и может вылетать.

    Для примера я буду использовать тариф VPS Mega с 3 ядрами процессора и 4 Гб ОЗУ.
    Заказать такой сервер или любой другой можно по ссылке:
    https://zomro.com/rus/vds


    2. После активации сервера, нужно подключиться к консоли сервера по SSH протоколу.
    Инструкцию, как подключиться к серверу с Linux по SSH можно здесь:
    https://zomro.com/rus/blog/faq/218-kak-vojti-na-linux-server-po-ssh

    3. Приступим к установке ПО:

    Для начала введите команду ниже, чтобы выполнить обновление системы:
    apt-get update -y && apt-get upgrade -y

    Следующим шагом установим необходимое ПО:
    apt install -y wget screen
    apt install -y openjdk-17-jdk
    

    Проверим, установилась ли Java, для Minecraft: Java Edition 1.18.2 требуется Java версии минимум 17
    java -version


    4. Теперь нужно включить файрволл и открыть порт соединения, который использует Minecraft, а также порт 22 для SSH-подключения:
    ufw enable
    ufw allow 22/tcp
    ufw allow 25565

    5. Создаем папку и переходим в нее:
    mkdir /opt/minecraft
    cd /opt/minecraft

    Теперь нужно скачать файл Minecraft server, последнюю версию которого, можно скачать с официального сайта:
    https://www.minecraft.net/en-us/download/server
    или найти более старую версию здесь:
    https://mcversions.net/

    Скачать файл по ссылке можно с помощью утилиты wget, вот пример для скачивания сервера Minecraft версии 1.18.2:
    wget https://launcher.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar

    6. Запускаем Minecraft server:
    java -Xms2048M -Xmx3472M -jar server.jar nogui

    Здесь -Xms2048M - это минимум 2Гб ОЗУ, который может использовать сервер, а -Xmx3472M - максимум 3472 Мб.
    Это оптимальная настройка для сервера с 4 Гб ОЗУ, Вам же нужно будет подстроить эти параметры под характеристики выбранного Вами сервера. Оставшаяся часть ОЗУ будет выделена под работу операционной системы.


    Если все хорошо и сервер запустился, в конце будут видно сообщения :
    [18:12:56] [Server thread/INFO]: Time elapsed: 25957 ms
    [18:12:56] [Server thread/INFO]: Done (26.676s)! For help, type "help"

    Если увидели ошибку при старте:
    # [23:59:37] [ServerMain/ERROR]: Failed to load properties from file: server.properties
    # [ServerMain/WARN]: Failed to load eula.txt

    введите следующую команду и затем перезапустите сервер еще раз:
    sed -i.orig 's/eula=false/eula=true/g' eula.txt
    
    java -Xms2048M -Xmx3472M -jar server.jar nogui

    На данном этапе уже можно подключаться к серверу через Minecraft приложение, введя ip-адрес и порт сервера в формате ipaddress:25565 и начинать игру.



    Если по какой-то причине нужно остановить сервер, нужно нажать сочетание клавиш Ctrl+C и подождать около 30-ти секунд.


    7. Если не получается подключиться и возникает следующая ошибка:
    # [User Authenticator #1/INFO]: Disconnecting /192.168.1.20:54401: Failed to verify username!
    # [User Authenticator #1/ERROR]: Username 'zomro' tried to join with an invalid session

    Попробуйте ввести следующую команду и перезапустить сервер снова:
    sed -i 's/online-mode.*/online-mode=false/g' ./server.properties
    
    java -Xms2048M -Xmx3472M -jar server.jar nogui

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



    8. Также рекомендуется изменить порт подключения с 25565 на любой другой, так как этот порт часто подвергается атакам злоумышленников.
    Замените число 25565 в следующих строках на любое число в диапазоне 10000-65000 и выполните эти команды:
    sed -i 's/server-port.*/server-port=25565/g' ./server.properties
    ufw allow 25565


    9. Напоследок покажу еще одну полезную фичу.
    Как сделать, чтобы при отключении от SSH-консоли, Minecraft сервер продолжал работать и чтобы после перезагрузки виртуального сервера, minecraft сервер запускался автоматически?
    Введите поочерёдно эти 2 команды:
    echo -e '#!/bin/bash\\ncd /opt/minecraft/ && java -Xms2048M -Xmx3472M -jar server.jar nogui' > /opt/minecraft/launch_server.sh && chmod +x /opt/minecraft/launch_server.sh
    mv /etc/rc.local /etc/rc.local.backup 2>/dev/null; echo -e '#!/bin/bash\\nscreen -dm -S minecraft /opt/minecraft/launch_server.sh\\nexit 0' > /etc/rc.local && chmod +x /etc/rc.local

    Теперь после перезагрузки виртуального сервера, minecraft сервер будет запускаться автоматически в программе screen.
    Просмотреть запущенные Minecraft сервер внутри утилиты screen можно командой:
    screen -r minecraft

    Выйти из screen с помощью Ctrl+a и затем нажать d.


    На этом все, надеюсь статья была полезна, приятной игры!