
Velocity: Современный Прокси для Minecraft Серверов
"Современный, следующее поколение прокси для Minecraft серверов."
PaperMC/Velocity, github.com
Если вы управляете несколькими Minecraft серверами и хотите, чтобы игроки могли перемещаться между ними без повторного входа, вам нужен прокси для маршрутизации. Это то, что делает Velocity - современный серверный прокси, обрабатывающий тысячи игроков, переключая их между разными бэкендами и поддерживая все в рабочем порядке.
Что делает Velocity
Прокси-сервер располагается между игроками и вашими фактическими игровыми серверами. Вместо прямого подключения к отдельным серверам, игроки подключаются к одному адресу, а прокси решает, куда их направить.
Velocity заново построил эту концепцию с нуля для современного Minecraft. Это не коллекция патчей, навязанных на что-то старое - это архитектурно спроектировано для быстроты, поддержки и гибкости. Кодовая база чистая (что действительно нравится разработчикам), а API достаточно мощный, чтобы создатели плагинов могли делать сложные вещи без борьбы с системой.
У проекта три основных цели. Кодовая база, действительно приятная для поддержки. Сырая скорость, обрабатывающая тысячи одновременных игроков. И плагин API, избегающий ошибок из предыдущих проксей.
Почему вам это нужно
Сети серверов повсюду в Minecraft. Кто-то запускает мир выживания, творческий мир, зону PvP, и лобби - все отдельные серверы, все нуждающиеся в общении друг с другом. Без прокси игроки выходят из одного и заново входят в другой, полностью разбивая опыт.
С Velocity, игроки остаются подключенными к одному адресу. Прокси невидимо переключает их между бэкендами. Когда кто-то переходит из лобби в выживание, его сессия сохраняется. Нет сообщения о разрыве соединения. Нет повторной аутентификации.
В масштабе это становится критичным.
Вы, возможно, запускаете серверы Paper вместе с модифицированными. Velocity поддерживает реализации Paper, Sponge, Fabric и Forge в одной сети. Другое серверное программное обеспечение может работать, но эти четыре получают первоклассную поддержку. Смешивайте без архитектурных головоболей.
И прокси позволяет настраивать маршрутизацию. Новые игроки попадают в лобби. Ветераны сразу переходят в выживание. Турниры PvP направляются на выделенный мини-игровой сервер. Прокси контролирует все без изменения серверных конфигов.
Начало работы с Velocity
Вам нужен Java 11 или новее. Скачайте последнюю сборку со страницы загрузок PaperMC - они предоставляют предсобранные JAR-файлы, так что компиляция не требуется.
java -jar velocity-*.jarЗапустите это один раз. Velocity генерирует файл конфигурации и завершает работу. Откройте velocity.toml и начните настраивать свою сеть.
[servers]
lobby = "localhost:25565"
survival = "localhost:25566"
minigames = "localhost:25567"
[server-options]
try-list = ["lobby"]Это маршрутизирует три бэкенд-сервера через прокси. Новые игроки попадают в лобби сначала. Настройте на основе структуры вашей сети, перезапустите Velocity, и игроки смогут подключаться к адресу прокси вместо отдельных серверов.
Вы можете отполировать запись серверного списка с помощью создателя MOTD для Minecraft, чтобы дать вашей сети профессиональный вид в клиенте.
Ключевые особенности, которые имеют значение
Бесперебойное переключение серверов. Игроки перемещаются между серверами без выхода из системы. Данные сессии автоматически сохраняются. Нет утомительных экранов переподключения или циклов аутентификации.
Поддержка нескольких реализаций. Paper, Sponge, Fabric, Forge - Velocity обрабатывает все. Смешивайте разные серверные программные продукты в одной сети. Это удивительно редко и действительно полезно для сложных настроек.
Современный плагин API. Разработчики подключаются к событиям подключения, чату, расчетам урона и многому другому. API хорошо спроектирован и избегает ошибок, встроенных в старые прокси.
Доказанная производительность. Построено для тысяч игроков на фактических сетях, обрабатывающих реальный трафик. Не теоретическая - продемонстрирована в производстве. Кодовая база отдает приоритет эффективности с самого начала.
Обработка аутентификации. Прокси управляет последовательностями входа, онлайн/офлайн режимами и серверами аутентификации. Игроки аутентифицируются один раз, а затем прокси маршрутизирует их гладко.
Что часто приводит к проблемам
Большинство проблем с прокси возникают из-за неправильной настройки, а не из-за самого прокси. Ваши бэкенд-серверы должны знать, что перед ними стоит прокси - настройте их на ожидание и доверие прокси-соединениям, иначе они молчаливо откажут в передаче.
Velocity требует выделенных ресурсов. Он легче, чем игровой сервер, но все равно это Java-приложение, работающее 24/7. Не запускайте его на оборудовании, уже загруженном до предела. Я видел настройки, где сам прокси становился瓶颈 просто потому, что никто не выделил достаточно памяти.
Протоколы перенаправления портов имеют значение. Большое значение.
Ваш прокси получает публично доступный порт, а бэкенд-серверы живут за ним в частной сети. Я видел, как люди случайно暴露 бэкенд-серверы в интернет - это подрывает整个 смысл и открывает серьезные уязвимости безопасности. При настройке доменов для вашей сети, настройте DNS аккуратно. Бесплатный сервис DNS для Minecraft может упростить управление, если вы еще не используете настраиваемый DNS.
Velocity не автоматически синхронизирует данные игроков между разными серверными программными продуктами. Данные плагинов на сервере Paper не появятся на сервере Fabric. Вам нужна общая база данных или кастомная логика синхронизации, если вы смешиваете реализации и делятесь инвентарем или прогрессом. Но это ловит многих людей врасплох, когда они впервые пытаются запускать смешанные типы серверов.
Совместимость версий плагинов также имеет значение. Плагин, построенный для Velocity 3.x, может не работать на 4.x. Проверяйте совместимость перед обновлением, особенно если вы запускаете много плагинов.
Альтернативы, достойные внимания
BungeeCord - оригинальный серверный прокси, по-прежнему широко развернутый. Он протестирован, доказан и сообщество знает, как устранять неисправности внутри и снаружи. Velocity новее с чистой архитектурой, но если вам нужна максимальная стабильность и база знаний, BungeeCord существует.
Waterfall - поддерживаемый форк BungeeCord. Он исправляет некоторые ошибки и остается верным исходному дизайну. Если вам нравится философия BungeeCord, но нужны улучшения качества, это средний путь.
Выбирайте Velocity, если вы начинаете заново и хотите современный дизайн. Кодовая база проще для понимания, API более гибкий, а производительность сопоставима. Ни один из них не является объективно неправильным - это просто разные философии. Ваш выбор зависит от того, приоритете ли вы последний дизайн (Velocity) или максимальную совместимость и базу знаний сообщества (BungeeCord).
Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.
Комментарии
Пока нет комментариев. Станьте первым, кто поделится своим мнением!


