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

48 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Смена сервера у клиента: что и как работает
Клиент (учётка) в панели привязан к серверу. Если в панели открыть «Редактировать» и выбрать другой
сервер, адрес меняется у клиента **автоматически только в наших приложениях**. Сторонние клиенты
(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): там затрёт главную.
## Как проверить за минуту
```bash
# что панель отдаёт клиенту (первый сервер = назначенный)
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-ключ; смена только порта не вызывает переподключения.
- Пока клиент оффлайн, он узнает о смене при следующем запуске/подключении.