Клиентский балансировщик (Xray JSON)
Клиентский балансировщик даёт пользователю одну запись в подписке, которая всегда работает хорошо. Когда один из хостов слабеет или падает, ничего перенастраивать не нужно: клиент сам меряет задержку каждого хоста и держит трафик на двух лучших. Панель собирает такой конфиг автоматически, на нодах ничего не меняется, оригинальные хосты не удаляются. Пока балансировщик работает, они скрыты из подписки: мёртвые записи только путали бы пользователей. Разбор балансировщика возвращает и ноды, и записи.
Пункт находится в меню скрипта: 4. Расширения ноды → Клиентский балансировщик.
Как это работает
Заголовок раздела «Как это работает»В подписке появляется одна запись с именем балансировщика, отдельного адреса у неё нет. Соединения клиент открывает напрямую с хостами внутри балансировщика.
Настройка
Заголовок раздела «Настройка»-
Откройте 4. Расширения ноды и выберите пункт
Клиентский балансировщик:Расширения ноды 1.Шаблон для selfsteal ноды маскировка ноды под обычный сайт 2.Плагины ноды дополнительные функции для ноды 3.SSH-доступ к удалённым серверам сохранённые серверы и запуск команд на них 4.Серверный роутинг российские домены через мост на сервер выхода, остальное напрямую 5.Клиентский балансировщик одна запись в подписке вместо списка хостов 0.Выход Выберите действие (0-5):5
-
Балансировщиков ещё нет, создайте первый:
Клиентский балансировщик Подробности в wiki: https://wiki.egam.es/ru/configuration/client-balancer/ Балансировщики не настроены 1.Создать балансировщик 0.Выход Выберите действие (0-1):1
-
Выберите, кто будет пользоваться балансировщиком. Дальше примеры для Xray JSON, вариант для Mihomo описан в подразделе ниже:
Кто будет пользоваться балансировщиком? 1.Xray JSON v2rayN, Happ и другие клиенты полных конфигов Xray 2.Mihomo Clash Meta, Stash и подобные: группа с автоварьированием в подписке 0.Выход Выберите действие (0-2):1
-
Выберите пресет. Дальше примеры идут для пресета «Всегда быстрейший»:
Как клиенту выбирать хост? 1.Всегда быстрейший клиент сам меряет задержку и держит связь через два лучших хоста 2.Основные с резервом обычно трафик идёт через основные, когда они недоступны, через первый резервный 0.Выход Выберите действие (0-2):1
-
Если ни на одном инбаунде нет двух подходящих хостов (частая картина сразу после add-node, когда у каждой ноды свой профиль), мастер сам предложит хосты со всех инбаундов. Если подходящие инбаунды есть, он покажет их списком, как в подразделе ниже. Выберите основные хосты, номера вводятся через запятую:
Ни на одном инбаунде нет 2 подходящих хостов: выберу хосты со всех инбаундов и соберу на отдельный профиль Основные хосты: порядок выбора сохраняется в конфиге клиента 1.Германия (de-1.example.com) — Германия / VLESS 2.Эстония (ee-1.example.com) — Эстония / VLESS Номера хостов через запятую (1-2):1,2
-
Хосты на разных инбаундах, поэтому мастер предложит собрать их на отдельный профиль. Старые профили и хосты останутся как есть и проснутся после разбора балансировщика:
Выбранные хосты на разных инбаундах. Для балансировщика будет создан отдельный профиль, ноды переключатся на него, а старые профили и хосты останутся как есть: они оживут, когда нода вернётся. Разбор балансировщика вернёт ноды на свои профили сам [?] Продолжить с отдельным профилем? (y/n): y Создаю отдельный профиль «Balancer» и перевожу на него ноды... Ноды на профиле «Balancer», старые профили не тронуты
-
Введите название. Именно это имя пользователь увидит в подписке, Enter подставит «Авто-выбор»:
Название в подписке (Enter подставит Авто-выбор):Германия+Эстония Создаю шаблон подписки Xray JSON: CB balancer Шаблон создан Скрываю копию хоста Германия... Копия скрыта: Германия Скрываю копию хоста Эстония... Копия скрыта: Эстония Записываю конфиг в шаблон... Конфиг записан Создаю хост-обёртку «Германия+Эстония»... Хост-обёртка готова Скрываю исходные хосты, пока они спят... Исходные хосты скрыты: 2. Записи вернутся в подписку после разбора балансировщика Готово: в подписках Xray JSON появился хост «Германия+Эстония», внутри 2 основных Обычные подписки и Xray Checker его не видят, это задумано Исходные хосты спят и скрыты из подписки, пока их ноды заняты балансировщиком: уберёте его, ноды и записи вернутся сами
Если хосты уже на одном инбаунде
Заголовок раздела «Если хосты уже на одном инбаунде»Когда хосты живут на одном инбаунде, отдельный профиль не нужен: балансировщик использует существующий, ноды не трогаются. Мастер покажет подходящие инбаунды списком, вариант «С разных инбаундов» собирает хосты на отдельный профиль:
Все подходящие хосты уже на одном инбаунде: Германия / VLESS Инбаунд для балансировщика: хосты должны жить на одном инбаунде, и он должен быть в группах пользователей, которым положен балансировщик 1.Германия / VLESS — подходящих хостов: 3 2.С разных инбаундов хосты соберутся на отдельный профиль, ноды переключатся на него 0.Выход Выберите действие (0-2):1
Дальше выбор хостов идёт только с этого инбаунда, подтверждение отдельного профиля не спрашивается.
Балансировщик для Mihomo
Заголовок раздела «Балансировщик для Mihomo»С Mihomo проще: хосты годятся с любых инбаундов, отдельный профиль и скрытые копии не нужны. Мастер добавляет готовую группу в стандартный шаблон Mihomo, и она появляется в подписке рядом с обычным списком хостов. Пользователь переключается на неё в клиенте один раз:
Кто будет пользоваться балансировщиком? 1.Xray JSON v2rayN, Happ и другие клиенты полных конфигов Xray 2.Mihomo Clash Meta, Stash и подобные: группа с автоварьированием в подписке 0.Выход Выберите действие (0-2):2 Как клиенту выбирать хост? 1.Всегда быстрейший клиент сам меряет задержку и держит связь через два лучших хоста 2.Основные с резервом обычно трафик идёт через основные, когда они недоступны, через первый резервный 0.Выход Выберите действие (0-2):1 Основные хосты: порядок выбора сохраняется в конфиге клиента 1.Германия (de-1.example.com) — Германия / VLESS 2.Эстония (ee-1.example.com) — Эстония / VLESS Номера хостов через запятую (1-2):1,2 Название в подписке (Enter подставит Авто-выбор):Мой Mihomo Добавляю группу «Мой Mihomo» в шаблон Mihomo... Готово: в подписках Mihomo появилась группа «Мой Mihomo» Клиент сам меряет задержку и держит связь через лучший хост группы
Пресеты превращаются в родные группы Mihomo: «Всегда быстрейший» становится url-test, «Основные с резервом» становится fallback с вашим порядком хостов. Группа перемеряет хосты каждые 30 секунд. Добавление и удаление хостов пересобирают группу, разбор убирает её из шаблона и не трогает остальное.
Пресеты
Заголовок раздела «Пресеты»Один пул, все хосты равны. Балансировщик распределяет соединения по двум лучшим хостам по замеренной задержке (leastLoad, expected: 2). Подходит набору похожих серверов, где любой вариант хорош.
Две группы. Трафик идёт через основные хосты, а когда все они недоступны, клиент переходит на первый резервный. Подходит, когда основная линия за рубежом дополнена одним входом, который переживает региональные блокировки: резерв молчит, пока не понадобится.
Балансировщики Xray не умеют ссылаться друг на друга (fallbackTag указывает на outbound), поэтому запасным выходом служит первый хост резервной группы. Когда первым должен стать другой, поменяйте порядок через удаление и добавление.
Занять все хосты основными не выйдет: мастер потребует оставить хотя бы один резервным, а если подходящих хостов меньше двух, предупредит, что на две группы не хватает.
Клиент перемеряет пул каждые 30 секунд, поэтому переключение на резерв укладывается в один замер. Соединения, которые уже летели через упавший хост, доживают до собственного таймаута.
В балансировщик не предлагаются занятые хосты: личные выходы VLESS Route серверного роутинга (модуль роутинга может их перестроить) и обёртки других балансировщиков.
Несколько балансировщиков
Заголовок раздела «Несколько балансировщиков»Балансировщиков может быть сколько нужно, у каждого свой список хостов, свой шаблон Xray JSON и своя запись в подписке. Пять нод Германии собираются балансировщиком «Германия», пять нод Финляндии другим «Финляндия», и пользователь видит в подписке обе записи с разными именами.
При сборке с разных инбаундов каждый получает свой профиль: первый занимает «Balancer», второй автоматически «Balancer 2», и так далее. Разбор одного не затрагивает другой, а хост-обёртки соседних балансировщиков никогда не попадают в список выбора, продублировать запись случайно не выйдет.
Меню модуля показывает все балансировщики сразу, с режимом каждого. Выберите номер, откроется меню этого балансировщика с живым статусом и пятью действиями:
Клиентский балансировщик Подробности в wiki: https://wiki.egam.es/ru/configuration/client-balancer/ Настроено балансировщиков: 2 1.Германия • режим: быстрейший из пула 2.Финляндия • режим: основные с резервом 3.Создать балансировщик 0.Выход Выберите действие (0-3):
Балансировщик и серверный роутинг
Заголовок раздела «Балансировщик и серверный роутинг»Модули работают вместе, потому что решают разные задачи: балансировщик на клиенте выбирает точку входа, серверный роутинг затем определяет, куда уйдёт трафик. Российские домены уходят в мост на сервер выхода, остальное идёт напрямую со входной ноды.
Однородный пул
Заголовок раздела «Однородный пул»Соберите пул из нод с одинаковым роутингом, и ничего не сломается: ноды остаются на своих профилях со своими правилами, балансировщик просто выбирает среди них быстрейший. Отдельный профиль даже не создаётся.
Смешанный пул
Заголовок раздела «Смешанный пул»Не собирайте «С разных инбаундов» ноды с роутингом и без. Отдельный профиль наследует правила первого выбранного хоста, включая ссылку на файл RU-списков, а этот файл смонтирован не на всех нодах: нода без него не поднимет конфигурацию и отключится от панели. После разбора балансировщика она вернётся сама. Личные выходы VLESS Route в пул не попадают: серверный роутинг может их перестроить, поэтому модуль их не предлагает.
Управление
Заголовок раздела «Управление»Меню конкретного балансировщика показывает живой статус и пять действий:
Балансировщик «Германия+Эстония» Подробности в wiki: https://wiki.egam.es/ru/configuration/client-balancer/ хостов: 2 основных режим: быстрейший из пула хост-обёртка на месте шаблон Xray JSON на месте 1.Показать хосты живой список из панели с проверкой, что никто не потерялся 2.Добавить хосты скрытая копия каждого хоста попадёт в конфиг 3.Убрать хост скрытая копия удалится, оригинал останется как был 4.Переименовать новое название увидят клиенты в подписке 5.Убрать балансировщик обёртка, скрытые копии и шаблон удалятся, оригиналы хостов останутся 0.Выход Выберите действие (0-5):
Показать хосты сверяет сохранённый список с панелью:
Основные: Германия (de-1.example.com) Эстония (ee-1.example.com) Все хосты на месте
Добавить хосты берёт кандидатов с инбаунда балансировщика. Если он собран на отдельном профиле, мастер ответит прямо:
Подходящих хостов больше нетУ балансировщика на реальном инбаунде список не пуст, новая копия входит в конфиг:
Какие хосты добавить: порядок выбора сохраняется в конфиге клиента 1.Франкфурт (de-3.example.com) — Германия / VLESS Номера хостов через запятую (1-1):1 Скрываю копию хоста Франкфурт... Копия скрыта: Германия-2 Обновляю конфиг шаблона... Записываю конфиг в шаблон... Конфиг записан Добавлено хостов: 1
Убрать хост удаляет скрытую копию и пересобирает конфиг. Последний резерв уйти может, последние основные нет:
Какой хост убрать? 1.Германия (de-1.example.com) — Основные 2.Эстония (ee-1.example.com) — Основные Выберите действие (0-2):1 В основных должно остаться не меньше 2, для полного разбора уберите балансировщик целиком Хост убран, конфиг обновлён
Переименовать меняет имя записи в подписке:
Новое название (Enter оставит Германия+Эстония):Европа Хост переименован в «Европа»
Убрать балансировщик возвращает всё как было: обёртка, скрытые копии и шаблон удаляются, оригиналы хостов не трогаются. Если ноды были переведены на отдельный профиль, они вернутся на свои сами:
[?] Убрать балансировщик «Европа»? Хост-обёртка, скрытые копии и шаблон будут удалены, оригиналы хостов останутся (y/n): y Разбираю балансировщик «Европа»... Возвращаю ноды на их исходные профили... Ноды вернулись на свои профили Балансировщик убран, оригиналы хостов не тронуты
