19 KiB
Changelog — PCA Phobos
Каналы: stable (публичный, без токена) · beta / dev (приватный repo, токен подписчика).
Обновление: phobos-update stable · GH_TOKEN=… phobos-update beta|dev · из панели → «Версия и обновления».
Как обновиться после фиксов
# stable (открытый)
phobos-update stable
# beta/dev (токен уже сохранён в /opt/phobos-panel/.gh_token)
phobos-update beta # или: phobos-update dev
Затем пересоздать клиентов в панели (старые конфиги могли содержать неверный порт обфускатора).
Обновляются: панель, скрипты онбординга, агент, updater. Ключи WireGuard, server.env, клиенты — НЕ трогаются.
1.4.6 — роутеры снова получают смену адреса
- Исправлено: роутер получал 403 при pull конфига, если клиент создан через API/бота (
/api/client/ensure) — смена адреса/сервера до него не доходила. Теперь принимается и общий ключ из пакета, и личный токен клиента. Роутеры переустанавливать не нужно — достаточно обновить панель.
1.4.5 — подсеть при установке, beta/dev по токену
-
feat: beta и dev теперь берутся из приватного репозитория на Gitea (GitHub заблокирован):
phobos-update beta|devс токеном подписчика — в панели «Настройки → Версия и обновления → токен подписчика» илиGH_TOKEN=… phobos-update beta. Без токена updater сообщает, что канал закрыт, и ничего не трогает. -
fix: при переустановке на сервер с готовым
wg0.confподсеть берётся из него. -
feat: подсеть VPN-клиентов задаётся при установке:
install.shиsecondary-setup.shспрашивают её в терминале (Enter =10.25.0.0/16) или берутSERVER_WG_IPV4_NETWORK=10.25.1.0/24. Неверная или публичная сеть — установка останавливается с ошибкой.
1.4.4 — канал «Облако» (через KeenDNS своего Keenetic)
- Канал «Облако» в Android PCA Phobos VPN 1.4.4 и iPhone (TestFlight 1.0 (6)): телефон → облако KeenDNS → ваш Keenetic → сервер. Помогает, когда сам сервер заблокирован, а сайты Keenetic открываются; белый IP роутеру не нужен.
- wsgw — шлюз WebSocket → UDP для Keenetic (Entware: aarch64, mipsel, mips) и Linux. Инструкция с картинками — docs/cloud.md.
- Панель: ссылки на приложения ведут на v1.4.4. Остальной сервер не менялся.
1.4.2 — настройка обфускатора сервера
- feat: в панели «Настройки» → «Обфускатор сервера»: masking (AUTO/STUN/NONE), max-dummy, idle — записываются во все порты сервера, обфускатор перезапускается (клиенты переподключаются за секунды).
- fix (Android PCA Phobos VPN 1.4.3): конфиги других сборок Phobos с лишними ключами (
obfuscate-bytesи т. п.) больше не роняют обфускатор («обфускатор завершился, код 1»): передаются только ключи, известные wg-obfuscator v1.6.
1.4.1 — резервный TCP-канал, «РФ напрямую»
- feat: резервный канал TCP: если провайдер режет UDP, клиент сам переходит на TCP (порт 443, иначе 8443/2096/4433). Сервер: служба
phobos-tcp(udptcp), ставится и включается автоматически при установке и обновлении. Проверено реальной блокировкой UDP: переключение за ~15 с, без блокировки остаётся UDP. - feat (Android 1.4.2): «Российские сайты — напрямую, без VPN» (по умолчанию), выбор канала Авто/UDP/TCP, журнал TCP-канала.
- fix: установка и обновления с git.bobyrev.com (GitHub — запасной), каскад раздаёт панель.
- Ограничения: TCP-резерв пока только на основном сервере (не на вторых) и только в приложении PCA Phobos VPN (роутеры и PhobosWG — по-прежнему UDP с перебором портов).
1.4.0 — единая версия (stable = beta = dev)
Три канала сведены в одну версию: всё из dev (WARP, ttyd, бэкап, маршрут Keenetic, параметры обфускатора)
- фиксы beta (обновлятор через API, порт/схема панели) + новое:
- feat: светлая/тёмная тема, компактные карточки клиентов, мобильная версия без горизонтальной прокрутки.
- feat: лимит скорости на клиента (tc на wg0, применяется и на вторых серверах).
- feat: замер скорости сервера (реальный) и клиента (живой +
/speedtestна устройстве через туннель). - feat: домен панели (nginx + Let's Encrypt), адрес для клиентов по домену, каскад (
phobos-cascade.sh). - feat: сторож — блоклист сканеров РКН (
phobos-guard.sh). - fix: secondary-setup на чистой Ubuntu 24.04 (нет iptables → wg0 не поднимался), без tty,
SERVER_IPдля NAT; клиенты досылаются на новый сервер сразу. - fix: очистка orphan-peer (не было WG_CONFIG), дубль карточки WARP и кнопки WARP, имена клиентов кириллицей.
- fix: после обновления старым обновлятором 1.2.x/1.3.x панель сама докачивает новые скрипты.
- fix: APK без токена подписчика — из публичного релиза (как в 1.2.8).
Обновление: phobos-update (stable) — клиенты, ключи и server.env не трогаются. Проверено на школе: 1.2.8 → 1.4.0, старый клиент работает без переустановки.
stable
v1.2.7
- fix: импорт
phobos://в PhobosWG. Конфиги дополняются= noneдля недостающих полей (PresharedKeyи др.) перед base64 — иначе приложение писало «невозможно импортировать туннель».
v1.2.6
- fix: бинарники wg-obfuscator для роутеров. Keenetic = aarch64, а Ground-Zerro раздаёт только x86_64. Теперь install.sh и сборка пакета клиента авто-качают aarch64/mipsel/armv7 из ClusterM/wg-obfuscator releases.
v1.2.5
- feat: поле токена подписчика + кнопки каналов (stable/beta/dev) прямо в карточке «Версия и обновления». Подписчик вставляет токен в панель и переключается на beta/dev без консоли.
v1.2.4
- feat: установка по умолчанию стабильная; beta/dev — опционально (
CHANNEL=).
v1.2.3
- fix: дебаунс DOWN-алертов (3 цикла + повтор) — убирает ложный флап серверов.
- fix:
phobos-updateотменяет обновление на несуществующую версию (текущая не трогается). - feat:
--check/--versions, кнопка «Проверить обновления».
v1.2.2
- контакт во всех местах → группа
@PCAdministration.
Критичные фиксы (общие, во всех каналах)
| Версия | Проблема | Решение |
|---|---|---|
| 1.2.8 / 1.3.x | Android PhobosWG: «Неправильная длина ключа в PublicKey» | Android/iOS payload восстанавливает потерянный = в WireGuard ключах и не добавляет PresharedKey = none; QR/link нужно открыть заново |
| 1.2.8 / 1.3.x | Установка/обновление могли пройти, но потом панель генерила кривую ссылку | phobos-self-check --fix встроен в install/update и доступен как отдельная команда |
| 1.2.7 / 1.3.x | PhobosWG: «невозможно импортировать туннель» | phobos:// дополняется = none для всех обязательных полей (PresharedKey) по спеке формата |
| 1.2.8 / 1.3.x | Install [6/9] PCA patches: curl: (23) Failure writing output to destination |
fetch() создаёт папку назначения перед curl -o |
| 1.2.8 / 1.3.x | VPS x86_64: ERROR: obfuscator binary for x86_64 missing |
авто-загрузка linux-x64 из ClusterM releases + нормализация amd64 -> x86_64 |
| 1.2.6 / 1.3.x | Роутер aarch64: «бинарник не найден в архиве» | авто-загрузка aarch64/mipsel/armv7 из ClusterM releases |
| (внутр.) | Клиент не подключается, «НЕТ СОЕДИНЕНИЯ», handshake не встаёт | клиентский обфускатор целился в порт 51821 (никто не слушал); теперь берёт первый из OBFUSCATOR_PORTS (2083) |
| (внутр.) | агент secondary не обновлялся через phobos-update |
server/api.py добавлен в managed_files |
beta (приватный)
v1.3.0-beta
- fix: install/update теперь запускают
phobos-self-check --fix: автоматически чинят потерянный=вSERVER_WG_PUBLIC_KEY, сверяют ключ сwg0, проверяют router helper-файлы и shell syntax до выдачи клиентских ссылок. - fix: Android/iOS phone configs теперь восстанавливают потерянный
=в WireGuardPrivateKey/PublicKey/PresharedKey. Это закрывает ошибку PhobosWG «Неправильная длина ключа в PublicKey». - fix:
lib-core.shбольше не теряет финальный=при чтенииserver.env, поэтому новые клиентские.confполучают полныйPublicKey. - fix: клиентский router package теперь содержит обязательные
lib-client.sh,install-obfuscator.sh,install-wireguard.shи дополнительные helper-скрипты из PCA repo, поэтомуwget .../init/TOKEN.sh | shбольше не падает сcan't open './lib-client.sh'. - fix: шаг
[6/9] PCA patchesбольше не падает сcurl: (23) Failure writing output to destination, если папкиrepo/server/scriptsилиrepo/client/templatesне были созданы upstream sparse clone. - fix: установка
wg-obfuscatorна x86_64 больше не падает сERROR: obfuscator binary for x86_64 missing. Installer и secondary installer берутlinux-x64из ClusterM releases. - fix: свежая beta-установка снова получает
lib-core.sh, без которого client helper мог ломаться на чистой машине. - fix: старые ссылки
/tagsтеперь ведут в/labels, без 404. - fix: поле имени клиента больше не даёт ошибку в консоли Chrome из-за HTML
pattern. UI bench-test прошёл без console/page errors. - fix: WG tunnel subnet перестала быть жёстко зашита в
10.25.0.0/16. Installer, secondary deploy, client packaging и router pull теперь используютSERVER_WG_IPV4_NETWORK, так что10.26/10.27и другие отдельные WG-сети на разных VPS работают без ручных правок. - fix: в клиентский пакет добавляется
panel_tunnel_ip, аphobos-pullиспользует его как tunnel endpoint панели вместо жёсткого10.25.0.1. - скачивание
.confдля телефона (Androidphobos://+ QR, iOS обычный WireGuard + QR); - кнопка скачивания приложения PhobosWG (APK) — авто-загрузка из GitHub Release приватного repo;
- все критичные фиксы выше.
dev (приватный, активная разработка)
v1.3.4-dev
- fix: install/update теперь запускают
phobos-self-check --fix: автоматически чинят потерянный=вSERVER_WG_PUBLIC_KEY, сверяют ключ сwg0, проверяют router helper-файлы и shell syntax до выдачи клиентских ссылок. - fix: Android/iOS phone configs теперь восстанавливают потерянный
=в WireGuardPrivateKey/PublicKey/PresharedKey. Это закрывает ошибку PhobosWG «Неправильная длина ключа в PublicKey». - fix:
lib-core.shи WARP helper больше не теряют финальный=при чтенииserver.env, поэтому новые клиентские.confполучают полныйPublicKey. - fix: клиентский router package теперь содержит обязательные
lib-client.sh,install-obfuscator.sh,install-wireguard.shи дополнительные helper-скрипты из PCA repo, поэтомуwget .../init/TOKEN.sh | shбольше не падает сcan't open './lib-client.sh'. - fix: шаг
[6/9] PCA patchesбольше не падает сcurl: (23) Failure writing output to destination, если папкиrepo/server/scriptsилиrepo/client/templatesне были созданы upstream sparse clone. - fix: установка
wg-obfuscatorна x86_64 больше не падает сERROR: obfuscator binary for x86_64 missing. Installer и secondary installer берутlinux-x64из ClusterM releases. - fix: поле имени клиента больше не даёт ошибку в консоли Chrome из-за HTML
pattern. UI bench-test прошёл без console/page errors. - fix: WG tunnel subnet больше не зашита в
10.25.0.0/16.install.sh,secondary-setup.sh, client packaging, router pull и secondary deploy теперь берутSERVER_WG_IPV4_NETWORK, поэтому один сервер можно держать на10.25, другой на10.26,10.27и дальше без ручногоnano. - fix: в клиентский пакет добавляется
panel_tunnel_ip, аphobos-pull/phobos-ttydиспользуют его вместо жёсткого10.25.0.1. Это убирает поломку управления роутером после смены WG-подсети на сервере. - fix: per-client WARP стал действительно точечным. Удалено старое правило на всю подсеть WG, правила теперь ставятся и снимаются только по
client tunnel IP /32. - fix: клиентские пакеты и install-команды снова собираются стабильно: создаётся
/opt/Phobos/bin, шаблонinstall-router.sh.templateобрабатывается мягко, пустойOBFUSCATOR_KEYбольше не валит сборку. - fix:
/clientsбольше не падает при неполной выкладке dev-стенда. Добавлены обязательныеlib-core.shи client templates в install/update flow. - fix: “живой peer есть, клиента нет” больше не выглядит как пропавший клиент. Сиротские peer теперь отображаются в
СессиииКлиентыкакorphan-*, с кнопкамиWARP,Kick,Purge. - fix: старые ссылки
/tagsтеперь ведут в/labels. - security: login hardening —
HttpOnly+SameSite=Laxcookie, ограничение попыток входа, constant-time compare для пароля и API keys, upload limit64 MB. - ops:
phobos-updateиphobos-backup restoreтеперь сами определяют активный panel service (phobos-panelилиphobos-dev-test) и перезапускают правильный unit. - security/cleanup: из secondary API убран
shell=Trueтам, где он был не нужен; чтение CPU/mem/network переведено на более безопасный путь.
v1.3.1-dev
- баланс по трафику: агенты отдают пропускную способность канала (rx/tx NIC),
server_load = 0.45·cpu + 0.30·mem + 0.25·bw; карточки серверов показывают ↕ Mbps; - WARP / WARP+: в
/settingsдобавлен отдельный блок с режимамиegress,relay,custom profileи полемWARP+ key; - egress mode: исходящий трафик клиентов можно завернуть через Cloudflare WARP на стороне сервера;
- relay mode: добавлен UDP relay по мотивам
warp-relayдля отдельных WARP/WireGuard профилей; - custom profile: полный
warp.confможно вставить и сохранить прямо из веб-панели; - help UI: у блока WARP появился
?с человеческим объяснением режимов, ограничений и сценариев использования; - все фиксы и фичи из beta.