Files
PCA_Phobos/docs/SERVER-SWITCH.md
Andrei Leibzon 1f3eced228 release 1.5.0: one panel in all channels; Apple apps (iOS, new macOS tab) only in beta/dev
- stable gets the beta panel and server features (new design, presets, firewall,
  monthly traffic, router failover over all ports/addresses + TCP, altip, HR tab,
  Windows tab, update banner); ios/ macos/ windows/ sources stay out of stable
- menu item "Update to N" under Settings when a new version is out
- mobile: top menu no longer stretches to 200px
- urllib User-Agent: Cloudflare in front of git.bobyrev.com returns 403 to Python-urllib
- docs: GitHub adleibzon-rgb as source, password/uninstall/devices sections,
  new screenshots, PORTS.md TCP fallback and second IP

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 18:12:13 +03:00

5.0 KiB
Raw Blame History

Смена сервера у клиента: что и как работает

Клиент (учётка) в панели привязан к серверу. Если в панели открыть «Редактировать» и выбрать другой сервер, адрес меняется у клиента автоматически только в наших приложениях. Сторонние клиенты (PhobosWG и др.) ничего не знают о панели — им нужно заново импортировать ссылку phobos://.

Кто подхватывает смену сервера

Клиент Как узнаёт о смене Задержка
Роутер (Keenetic/OpenWrt) pull-агент phobos-pull.sh раз в минуту забирает failover.conf; phobos-health.sh видит рассинхрон (DESYNC) и переключает (SWITCH) до ~1 мин
iOS (build 7+), Android 1.4.5+ подписка # pca-sub в ссылке: приложение читает /api/phone-sub/<клиент>?token=… при запуске и по таймеру
Windows 1.4.5+ помощник sub читает # pca-sub, раз в минуту; при другом host/ключе переписывает profile.conf и переподключается до ~1 мин
Сторонние (PhobosWG и др.) никак переимпорт ссылки вручную

Как это устроено

  1. Панель → Клиенты → «Редактировать» → «Сервер» (поле client_assignments в settings.json).
  2. Панель добавляет WG-пир клиента на выбранный сервер и рассылает конфиг (fanout_router_config).
  3. «Переход на другие серверы»: «Да, при блокировке» — выбранный сервер первый, остальные запасные; «Только этот сервер» (client_pinned) — в списке один выбранный сервер.
  4. Список отдаётся роутеру (failover.conf) и телефонам/Windows (/api/phone-sub); первый в списке — назначенный.

Что нужно, чтобы это работало

  • Проверено 03.11.2026 (главная панель на ВМ + secondary на VPS): регистрация (registered), пир клиента появляется на secondary, «Сервер» меняет порядок в /api/phone-sub (назначенный первый), «Только этот сервер» оставляет один. Команда secondary в панели сама подставляет подсеть главной.
  • Один сервер управления. Остальные серверы ставятся как secondary командой из панели (раздел «Серверы»): общий список клиентов и адресов. Отдельная панель на втором VPS (полный install.sh) — это другая панель со своими клиентами, смена сервера между ними не работает.
  • Если всё же ставите независимые серверы — у каждого своя подсеть (10.25.0.0/16, 10.25.11.0/24, …), иначе клиенты получат одинаковые IP и второй туннель на роутере не поднимется. Подсеть вида 10.25.11.0/16 установщик превращает в 10.25.11.0/24.
  • В ссылке клиента должна быть строка # pca-sub = …. Старые ссылки без неё импортировать заново один раз.
  • Несколько учёток на одном роутере (по стране на учётку): у каждой «Только этот сервер», в beta/dev они ставятся в /opt/etc/Phobos/acc/<учётка>/. Не пробовать на канале stable (v1.4.7): там затрёт главную.

Как проверить за минуту

# что панель отдаёт клиенту (первый сервер = назначенный)
curl -s "http://ПАНЕЛЬ:ПОРТ/api/phone-sub/КЛИЕНТ?token=ТОКЕН"
# роутер: новый сервер и журнал переключения
cat /opt/etc/Phobos/failover.conf | grep ^SERVER_1; tail /opt/etc/Phobos/health.log
# Windows: журнал и профиль
type C:\ProgramData\PCAPhobos\pcaphobos.log   # «panel moved us to … -> reconnect»

Ограничения

  • Windows-помощник сравнивает host, ключ обфускатора и WG-ключ; смена только порта не вызывает переподключения.
  • Пока клиент оффлайн, он узнает о смене при следующем запуске/подключении.