В статье описано два сценария настройки плагина: рекомендуемый NetherNet без Anycast и подключение через Anycast-туннель с RakNet.

Актуальные версии Geyser действительно nethernet, both и raknet

NetherNet использует WebRTC и отдельный механизм signaling. GitHub

Настройка GeyserMC для подключения игроков Minecraft Bedrock

GeyserMC позволяет игрокам Minecraft Bedrock Edition подключаться к Java-серверу.

В этой инструкции рассмотрены два варианта подключения:

  1. NetherNet напрямую к серверу — рекомендуемый вариант

  2. Подключение через Anycast-туннель — с использованием RakNet

Если Anycast-защита для Bedrock вам не требуется, рекомендуем использовать NetherNet.


1. Настройка Geyser через NetherNet без Anycast

NetherNet — новый транспорт Bedrock, использующий WebRTC.

Для его корректной работы Geyser должен не только слушать UDP-порт, но и передавать игроку правильный внешний IP-адрес сервера.

Шаг 1. Создайте дополнительный порт

В панели управления сервером перейдите во вкладку «Порты» и создайте дополнительный порт.

Например:

25987

Запомните этот порт — далее его необходимо указать в конфигурации Geyser.

Порт должен быть доступен по UDP. Geyser использует UDP для Bedrock-подключений.


Шаг 2. Настройте Geyser

Откройте:

plugins/Geyser-Spigot/config.yml

или соответствующий config.yml вашей версии Geyser.

В блоке bedrock укажите созданный ранее порт и включите NetherNet:

bedrock:
  address: 0.0.0.0
  port: 25987
  transport: nethernet

Где:

25987

— порт, созданный во вкладке «Порты» вашего сервера.

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


Шаг 3. Укажите внешний IP в строке запуска

При работе NetherNet сервер должен сообщать Bedrock-клиенту правильный IP-адрес, по которому необходимо устанавливать соединение.

Во вкладке «Строка запуска» добавьте перед -jar следующий параметр:

-DgeyserAdvertiseAddresses=IP

Вместо IP укажите основной IP-адрес вашего сервера без порта.

Например:

-DgeyserAdvertiseAddresses=185.123.123.123

Итоговая строка запуска может выглядеть примерно так:

java -Xms128M -XX:MaxRAMPercentage=90.0 -DgeyserAdvertiseAddresses=185.123.123.123 -jar server.jar

Если изменение строки запуска требует модерации, используйте кнопку «Отправить изменение на модерацию».


Шаг 4. Настройте Floodgate

Если вы хотите разрешить игрокам Bedrock входить без приобретённой Java Edition, установите плагин Floodgate.

После установки Floodgate найдите в конфигурации Geyser параметр:

auth-type: online

и измените его на:

auth-type: floodgate

Официальная документация Geyser также указывает, что Floodgate позволяет Bedrock-игрокам подключаться без необходимости авторизации через приобретённый Java-аккаунт.


Шаг 5. Перезапустите сервер

Полностью перезапустите Minecraft-сервер.

После запуска Bedrock-игрок должен подключаться по:

IP_СЕРВЕРА:ПОРТ_GEYSER

Например:

185.123.123.123:25987

При использовании собственного домена в качестве адреса можно указать домен, ведущий непосредственно на IP сервера.


2. Настройка Geyser при использовании Anycast

Здесь есть важное отличие.

NetherNet нельзя использовать через обычный Anycast UDP-туннель нашего сервиса.

NetherNet работает через WebRTC: во время установки соединения Geyser передаёт клиенту сетевые адреса и порты, через которые должен устанавливаться дальнейший транспорт. Поэтому простого перенаправления одного UDP-порта, как в случае обычного RakNet, недостаточно.

Для Bedrock через текущий Anycast-туннель необходимо использовать:

transport: raknet

Шаг 1. Создайте порт Geyser

Во вкладке «Порты» создайте дополнительный порт.

Например:

25987

В Geyser укажите его:

bedrock:
  address: 0.0.0.0
  port: 25987
  transport: raknet

Шаг 2. Создайте Anycast UDP-туннель

В панели управления Anycast:

  1. Выберите нужный Anycast-домен.

  2. Перейдите в раздел UDP.

  3. Нажмите «Создать туннель».

  4. В качестве назначения укажите UDP-порт Geyser вашего сервера.

Например, Geyser работает на:

25987

а Anycast выдаёт вам:

31.57.117.1:19132

В таком случае игрок подключается именно к:

31.57.117.1:19132

либо к соответствующему Anycast-домену и порту.

Сам Geyser при этом продолжает работать на локальном порту:

25987

Шаг 3. Если внешний и внутренний порты отличаются

Если игрок подключается к одному порту, а Geyser фактически работает на другом, необходимо сообщить Geyser внешний порт.

Для этого используется параметр broadcast-port.

Например:

advanced:
  bedrock:
    broadcast-port: 19132

Где:

19132

— порт Anycast-туннеля, который используют игроки.

Geyser официально предусматривает broadcast-port именно для ситуаций, когда порт подключения игроков отличается от порта, на котором непосредственно работает Geyser.


Proxy Protocol

Если для UDP-туннеля включена передача исходного IP игрока через Proxy Protocol, соответствующая поддержка должна быть включена и в Geyser.

В актуальных конфигурациях Geyser этот параметр может находиться в расширенном блоке Bedrock и называться:

use-haproxy-protocol: true

Конкретное название зависит от используемой версии Geyser, поэтому ориентируйтесь на комментарии внутри вашего config.yml.

Не включайте Proxy Protocol в Geyser, если он выключен со стороны Anycast-туннеля.


Floodgate при использовании Anycast

Настройка Floodgate никак не меняется.

Установите Floodgate и установите:

auth-type: floodgate

После этого Bedrock-игроки смогут проходить авторизацию через Floodgate.


Что выбрать?

Без Anycast

Используйте:

transport: nethernet

Создайте отдельный порт и добавьте в строку запуска:

-DgeyserAdvertiseAddresses=IP_СЕРВЕРА

Это рекомендуемый вариант для прямого подключения.

С Anycast

Используйте:

transport: raknet

и создайте UDP Anycast-туннель на порт Geyser.

NetherNet через обычный UDP Anycast-туннель в текущей конфигурации сервиса не используется.


Пример готовой конфигурации без Anycast

Допустим:

IP сервера: 185.123.123.123
Порт Geyser: 25987

Конфигурация:

bedrock:
  address: 0.0.0.0
  port: 25987
  transport: nethernet

Авторизация:

auth-type: floodgate

Строка запуска:

-DgeyserAdvertiseAddresses=185.123.123.123

Игрок подключается:

185.123.123.123:25987

Пример готовой конфигурации с Anycast

Допустим:

Порт Geyser на сервере: 25987
Anycast: play.example.com:19132

Конфигурация:

bedrock:
  address: 0.0.0.0
  port: 25987
  transport: raknet

Если требуется указать внешний порт:

advanced:
  bedrock:
    broadcast-port: 19132

Anycast UDP-туннель:

play.example.com:19132
        ↓
IP сервера:25987/UDP

Игроки подключаются по:

play.example.com:19132

При этом реальный IP Minecraft-сервера игрокам сообщать не требуется.

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)