Skip to content
Перейти к содержимому
Вернуться в блог
WaterdogPE для Bedrock Серверов: Руководство по Настройке

WaterdogPE для Bedrock Серверов: Руководство по Настройке

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
28 просмотров
TL;DR:WaterdogPE - обратный прокси для Minecraft Bedrock Edition. Узнайте, как настроить, правильно конфигурировать и избежать распространённых ошибок.
🐙 Открытый проект Minecraft

WaterdogPE/WaterdogPE

Новый прокси-сервер для Minecraft: Bedrock Edition

⭐ 323 звёзды💻 Java📜 GPL-2.0
Посмотреть на GitHub ↗

Если вы управляете несколькими серверами Minecraft Bedrock, вы знаете, как тяжело сбалансировать нагрузку между ними. Игроки могут отключаться между экземплярами, выручительно направляете трафик, и всё кажется хрупким. WaterdogPE решает эту проблему, действуя как обратный прокси, который сидит между вашими игроками и фактическими игровыми серверами, распределяя соединения интеллектуально и обрабатывая грязную работу, о которой вам не нужно беспокоиться.

Что делает WaterdogPE

WaterdogPE - это открытый прокси-сервер, построенный специально для Minecraft Bedrock Edition. Вместо того, чтобы игроки подключались напрямую к вашему серверу, они подключаются к прокси, который затем передаёт их на правильный бэкенд-сервер. Это похоже на то, как работает Bungeecord для Java Edition, но разработано заново для протокола Bedrock.

Ключевое различие между Bedrock и Java заключается в том, как работает протокол. Bedrock не имеет той же экосистемы прокси, что и Java, что означало, что операторы серверов Bedrock были застрявшими либо на одном сервере, либо сталкивались с неудачными сторонними решениями. WaterdogPE заполняет этот пробел.

Построенный с помощью библиотеки протокола Cloudbursts, он обрабатывает фактический перевод протокола и общение с сервером. Вам не нужно понимать всё это - главное, что оно работает надежно с основным программным обеспечением сервера Bedrock.


Почему вы бы использовали это

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

Управление сетью становится чище. Вместо того, чтобы говорить вашей общине «подключайтесь к server123.yournetwork.com», а затем «подключайтесь к server456.yournetwork.com» в зависимости от того, какой полон, все просто подключаются к proxy.yournetwork.com, и система разбирается с остальным.

Балансировка нагрузки - это третий большой выигрыш.

Если вы запускаете творческий сервер и сервер выживания (или несколько экземпляров одного и того же игрового режима), вы можете распределять игроков между ними. Игроки присоединяются к хаб-серверу через прокси, а затем направляются на соответствующий сервер на основе того, что они делают. Это работает особенно хорошо для сетей серверов, где вы хотите предложить разные игры или разные vanilla/modded-опыты.

Ещё есть развитие угла - если вы строите серверную инфраструктуру для общины или даже коммерческого проекта, наличие слоя прокси делает будущее масштабирование намного проще. Вы можете добавлять серверы без изменения вашего публичного конечной точки.


Запуск WaterdogPE

Установка не сложна, но она более сложна, чем просто нажатие кнопки. Вам понадобится Java (поскольку WaterdogPE работает на JVM) и базовое понимание вашей сети.

Скачайте последний релиз со страницы релизов GitHub. Проект предоставляет скомпилированный файл JAR, который можно запустить напрямую.

bash
wget https://github.com/WaterdogPE/WaterdogPE/releases/download/latest/Waterdog.jar
java -jar Waterdog.jar

Первый запуск создаёт каталог конфигурации и файлы конфигурации по умолчанию. Файл config.yml - это то место, где вы проведёте большую часть своего времени - это то место, где вы определяете, к каким бэкенд-серверам прокси должен передавать, какой IP/порт слушает прокси, и различные настройки поведения.

Базовая конфигурация выглядит примерно так:

bash
listeners:
 default:
 ip: 0.0.0.0
 port: 19132

downstream_servers:
 creative:
 address: creative-server.local
 port: 19133
 survival:
 address: survival-server.local
 port: 19134

Как только вы настроили свои серверы, прокси нужно сделать доступным из интернета (предполагая, что вы хотите внешних игроков). Перенаправьте порты, настройте DNS, и протестируйте с клиентом. Если вам нужно проверить, действительно ли сервер доступен и отвечает, есть тестер Minecraft Votifier.

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


Ключевые Функции, которые Материальны

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

Обработка аутентификации встроена. Вместо того, чтобы каждый сервер проверял входы отдельно, прокси делает это один раз и передаёт токен аутентификации вниз по потоку. Ещё одна вещь, с которой не нужно заниматься каждому бэкенд-серверу.

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

Фильтрация и маршрутизация пакетов - это то, где всё становится мощным.

Прокси может перехватывать пакеты и принимать решения относительно них. Некоторые идут напрямую на бэкенд, другие можно изменить или выбросить на основе правил, которые вы определяете. Это то, как вы реализуете пользовательские игровые механики или функции безопасности на уровне сети.

Проект также поддерживает плагины. Если вам нужно поведение, выходящее за рамки того, что предоставляет ядро, вы можете написать плагины, используя API WaterdogPE. Уже растёт экосистема плагинов вокруг него - посетите официальную страницу плагинов, если вам нужно что-то конкретное.


Хитрости Конфигурации и Решение Проблем

Совместимость программного обеспечения - первое, с чем сталкиваются люди. WaterdogPE официально поддерживает основное программное обеспечение сервера Bedrock - PocketMine-MP, Nukkit и подобные проекты. Если вы используете что-то редкое или пользовательский форк, вы можете столкнуться с проблемами протокола. Всегда проверяйте список совместимости, прежде чем тратить время на настройку.

Правила брандмауэра подвергают многих людей.

Прокси нужно слушать порт (по умолчанию 19132), открытый для интернета, И он нужно быть в состоянии достичь ваших бэкенд-серверов. Если ваши бэкенд-серверы находятся за брандмауэром, который блокирует внутренние соединения прокси, всё терпит неудачу молча. Протестируйте это, прежде чем предполагать, что что-то другое не так.

Ошибки синтаксиса конфигурации молча не работают. Прокси запустится, но фактически не передаст ничего. Читайте журналы внимательно, если игроки не могут подключиться.

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

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

С точки зрения производительности WaterdogPE эффективен, но если вы запускаете его на том же оборудовании, что и ваши бэкенд-серверы, возникает конкуренция ресурсов. Честно говоря, рассмотрите запуск прокси на отдельном оборудовании, если вы работаете в масштабе, особенно если вы перемещаете hundreds игроков в минуту между серверами.


Значимые Альтернативы

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

Для Java Edition Bungeecord и Velocity - это установленные решения с огромными сообществами. Они не совместимы с Bedrock, но если вы когда-нибудь рассматриваете смешанные платформенные сети, знание их существования помогает вам спланировать.

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


Ещё Одна Мысли

WaterdogPE представляет собой экосистему Bedrock, наконец, получающую необходимые инструменты инфраструктуры. Сообщество Bedrock меньше, чем Java, но оно растёт, и наличие правильных инструментов управления сетью меняет то, что возможно.

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

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

WaterdogPE/WaterdogPE - GPL-2.0, ★323
Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy