Создание связки серверов на Velocity
Когда создают крупные проекты с несколькими режимами (например, Survival, SkyBlock и пр.), обычно размещают разные режимы на разных серверах. За счёт этого:
- Проект проще масштабировать, т.к. при увеличении нагрузки можно просто добавить несколько новых серверов без влияния на существующие.
- Плагины не конфликтуют друг с другом, т.к. сервера изолированы друг от друга.
Чтобы игроки могли перемещаться между разными серверами, используют прокси-сервер. Когда игроки заходят на проект, они фактически подключаются к прокси-серверу, который направляет их соединение на нужный сервер.

В этой статье мы разберём, как настроить сделать свою связку серверов по такой схеме.
Зачем нужен прокси-сервер?
Прокси-сервер — это «входная дверь» твоего проекта. Игрок подключается к одному IP-адресу, а прокси уже сам решает, на какой сервер его отправить.
Что это даёт на практике:
- Один адрес для всего проекта. Игрокам не нужно запоминать отдельный IP для каждого режима — они подключаются к одному адресу, а дальше перемещаются между серверами через команды или порталы.
- Общие системы на всю сеть. Чат, права (LuckPerms), список игроков (TabList) — всё это можно настроить централизованно через прокси.
- Безопасность. Игровые серверы можно полностью закрыть от внешнего мира, оставив открытым только порт прокси. Подключиться к серверам напрямую в обход прокси не получится.
Почему Velocity, а не BungeeCord?
BungeeCord появился раньше и долгое время был стандартом, но сейчас для новых проектов лучше выбирать Velocity. Вот почему:
- Производительность. Velocity написан на современных библиотеках и спокойно держит тысячи игроков с минимальной нагрузкой на процессор.
- Стабильность. Более продвинутая обработка пакетов — меньше вылетов под нагрузкой.
- Совместимость с модами. Velocity гораздо лучше работает с Forge- и Fabric-серверами.
- Безопасная передача данных. Встроенная система modern forwarding надёжнее старых методов BungeeCord.
Настройка Velocity
Основная настройка происходит в файле velocity.toml. Чтобы прокси «увидел» твои игровые серверы, их нужно зарегистрировать.
Регистрация серверов (Backend)
Найди в конфигурации секцию [servers]. Здесь задаётся внутреннее имя сервера (оно будет использоваться в командах, например /server lobby) и его фактический адрес.
# Имя сервера = "IP-адрес:порт"
lobby = "127.0.0.1:30001"
survival = "127.0.0.1:30002"
creative = "127.0.0.1:30003"
Режим передачи данных игрока (player info forwarding)
Это одна из самых важных настроек. Через этот механизм прокси сообщает игровому серверу настоящий IP-адрес игрока и его UUID. Без этого все игроки будут выглядеть так, будто заходят с IP-адреса самого прокси, а скины могут не подгружаться.
Что нужно сделать:
- Открой
velocity.tomlи найди параметрplayer-info-forwarding-mode. - Установи значение
modern.
После выбора режима modern Velocity создаст файл forwarding.secret. Текст из этого файла — твой секретный ключ. Его нужно будет скопировать и вставить в настройки каждого игрового сервера. Благодаря этому к серверам нельзя будет подключиться в обход прокси.
Настройка игровых серверов
Каждый игровой сервер должен знать, что он работает за прокси, и принимать данные от Velocity. Настройка зависит от ядра сервера.
Paper (и форки: Purpur, Pufferfish и т.д.)
- Открой файл
config/paper-global.yml(в старых версиях —paper.yml). - Найди раздел
velocity-support. - Установи
enabled: true. - В поле
secretвставь содержимое файлаforwarding.secretот Velocity. - В
server.propertiesустановиonline-mode=false.
Fabric
Для Fabric потребуется дополнительный мод — например, FabricProxy-Lite:
- Установи мод в папку
mods. - Запусти сервер, чтобы сгенерировался конфиг мода.
- В конфиге включи поддержку Velocity и вставь секретный ключ.
- В
server.propertiesустановиonline-mode=false.
Forge (1.16+)
Современные версии Forge поддерживают Velocity через мод-прослойку, например Ambassador:
- Установи мод на сервер.
- В конфиге мода укажи секретный ключ из
forwarding.secret. - В
server.propertiesустановиonline-mode=false.
Распространённые ошибки
Failed to verify username
Эта ошибка появляется в двух случаях:
- Ты пытаешься зайти на игровой сервер напрямую (в обход прокси), а на нём стоит
online-mode=true. - Прокси работает в лицензионном режиме, а ты заходишь с пиратского клиента.
Убедись, что на всех игровых серверах стоит online-mode=false и что ты подключаешься именно через прокси.
Connection refused
Прокси не может достучаться до игрового сервера. Проверь:
- Запущен ли игровой сервер.
- Правильно ли указан его адрес и порт в
velocity.toml.
Invalid velocity secret
Секретный ключ в конфиге игрового сервера не совпадает с тем, что лежит в forwarding.secret у Velocity. Скопируй ключ заново и убедись, что нет лишних пробелов или переносов строки.