Когда на одном сервере уже тесно — хочется лобби, выживание, креатив и мини-игры одновременно — начинается настройка BungeeCord. Прокси принимает всех игроков на один адрес и раскидывает их по внутренним серверам, а переход между режимами происходит без переподключения: человек просто проваливается в другой мир командой или через портал.
Разберём схему целиком: прокси, бэкенды, форвардинг IP и то, что обязательно сломается, если пропустить один пункт.
Как устроена сеть
Игрок соединяется только с прокси. Прокси держит соединение и пересылает пакеты на нужный бэкенд.
Отсюда три следствия:
- Наружу торчит один порт — 25565 у прокси. Порты бэкендов должны быть закрыты для внешнего мира.
- Бэкенды работают в офлайн-режиме, лицензию проверяет прокси.
- Прокси — точка отказа. Упал он — недоступна вся сеть.
BungeeCord держит на себе только трансляцию, поэтому памяти ему нужно немного: 512 МБ – 1 ГБ хватает на сотню игроков. Основная нагрузка остаётся на бэкендах.
Запуск прокси
Скачайте BungeeCord.jar с сервера сборок MD_5 (форк Waterfall больше не развивается — для новой сети разработчики PaperMC рекомендуют Velocity). Положите в отдельную папку и запустите:
java -Xms512M -Xmx1G -jar BungeeCord.jarПосле первого старта появится config.yml — главный файл, ради которого всё и затевается.
config.yml: настройка BungeeCord по пунктам
Минимально рабочий конфиг выглядит так:
listeners:
- host: 0.0.0.0:25565
motd: '&aМоя сеть'
max_players: 200
priorities:
- lobby
force_default_server: true
servers:
lobby:
address: 127.0.0.1:25566
restricted: false
motd: 'Лобби'
survival:
address: 127.0.0.1:25567
restricted: false
motd: 'Выживание'
creative:
address: 127.0.0.1:25568
restricted: false
motd: 'Креатив'
ip_forward: true
online_mode: trueЧто здесь важно:
priorities— куда попадает игрок при входе. Первый в списке становится основным лобби.force_default_server: true— возвращать в лобби даже тех, кто был на другом сервере в прошлый раз.ip_forward: true— передавать бэкендам настоящий IP игрока. Без него все игроки будут выглядеть как127.0.0.1, и любые баны по IP, антибот-плагины и логи станут бесполезны.online_mode: true— проверка лицензии на прокси. Отключать только если сознательно строите офлайн-сеть с AuthMe.restricted: trueу сервера означает, что попасть туда можно только с правомbungeecord.server.<имя>— удобно для тестового бэкенда.
Адреса бэкендов пишите через 127.0.0.1, если всё на одной машине: трафик не пойдёт наружу и не будет лишних задержек.
Настройка бэкендов
На каждом Minecraft-сервере сети правим два файла.
server.properties:
server-port=25566
online-mode=false
server-ip=127.0.0.1Порты у всех разные, online-mode везде false. Строка server-ip=127.0.0.1 заставляет сервер слушать только петлю — снаружи к нему не подключатся физически. Это самый надёжный способ закрыть дыру, но работает он, только если прокси и бэкенды запущены на одной машине. Если серверы сети живут в отдельных контейнерах или на разных машинах, оставьте внутренний адрес и закройте порты бэкендов фаерволом. Остальные параметры файла разобраны в настройке server.properties.
spigot.yml (для Paper/Spigot):
settings:
bungeecord: trueБез этой строки бэкенд не поймёт форвардинг и будет кидать Unable to authenticate или пускать всех как 127.0.0.1.
На Paper 1.19+ есть ещё paper-global.yml с секцией proxies.bungee-cord.online-mode: true — оставьте по умолчанию, если прокси в онлайн-режиме. Значение должно совпадать с online_mode прокси, так написано в справочнике PaperMC.
Ядро на бэкендах должно быть Bukkit-совместимым. Установка Paper описана здесь.
Безопасность
Слабое место любой bungee-сети — открытый бэкенд. Если порт 25566 доступен снаружи и сервер в офлайн-режиме, кто угодно подключается напрямую под ником администратора.
Три уровня защиты, лучше все сразу:
server-ip=127.0.0.1на бэкендах;- фаервол, разрешающий доступ к портам бэкендов только с адреса прокси;
- плагин BungeeGuard или встроенный modern-forwarding (в BungeeCord его нет, это аргумент в пользу Velocity).
Проверяйте результат снаружи, а не с самой машины: попробуйте зайти на ваш_ip:25566 с домашнего компьютера. Должен быть отказ соединения.
Плагины прокси
BungeeCord держит свои плагины, они не совместимы с bukkit-версиями. Стандартный набор:
- BungeeGuard — защита от прямого подключения к бэкендам.
- LuckPerms (bungee-версия) — общие группы и права на всю сеть. Про команды читайте в отдельной статье.
- BungeeTabListPlus — единый таб-лист со всеми серверами.
- ServerListPlus — нормальный MOTD и иконка.
- AdvancedPortals или лобби-плагин — переходы порталами вместо команд.
Команда перехода по умолчанию — /server <имя>, список серверов — /server без аргументов.
Общие данные между серверами
Отдельная головная боль: игрок переходит из лобби в выживание, а денег и прав у него нет. Причина в том, что каждый бэкенд хранит данные у себя.
Решается переводом плагинов на MySQL:
- LuckPerms — общая база прав, ставится на прокси и все бэкенды;
- экономика — XConomy или CMI вместо файлового EssentialsX, подробности в статье про Vault и экономику;
- AuthMe — общая база аккаунтов, чтобы пароль спрашивали один раз.
Инвентарь между серверами синхронизируют MultiPaper-подобными решениями или плагинами вроде MySQLInventoryBridge, но чаще этого просто не делают: у лобби и выживания инвентари разные по смыслу.
Частые ошибки
If you wish to use IP forwarding, please enable it in your BungeeCord config as well! — ip_forward: true есть на прокси, но bungeecord: true не выставлен на бэкенде (или наоборот).
Игроков кидает обратно в лобби. Бэкенд не запущен или указан неверный порт. Смотрите лог прокси, там будет Could not connect to target server.
Все игроки с одним IP. Форвардинг выключен. Заодно проверьте, что баны по IP вообще имеют смысл — про них в заметке о банах и ban-list.
Тайм-аут при переходе между серверами. Обычно бэкенд подвисает на сохранении мира. Помогает разнести автосохранение по времени и заняться оптимизацией.
Коротко
Порядок: поднять прокси → прописать серверы в config.yml → ip_forward: true → на бэкендах online-mode=false, bungeecord: true, server-ip=127.0.0.1 → закрыть порты → перевести права и экономику на общую базу. Сравнение BungeeCord с более современным Velocity есть в обзорной статье.
Держать несколько серверов сети на одной площадке проще, чем разносить по разным хостерам — тарифы TeaHost.