Одна кнопка. Автоматический выбор протокола. Обновления прямо в приложении.
Chameleon4.5.1
VPNПротоколДоступОбновления
Не подключено
Нажмите кнопку — это демонстрация интерфейса
ПротоколAUTO
Chameleon VPN
Ваше подключение
Готов к подключениюВыбран AUTO. Трафик пока не защищён VPN.
Подключить VPN
ПротоколAUTO
Отправлено0 Б
Получено0 Б
Интерактивная демонстрация интерфейса. Реальное подключение — в приложении.
Обновление от 30 сентября 2026: вышли Android 4.5.1 и Windows 4.5.0 — вкладка «Обновления», мгновенное отключение на Android и аккуратная навигация. Скачать.
Мы представляем Chameleon 4.5 — самый удобный и проверяемый выпуск нашего персонального VPN.
Chameleon объединяет собственный транспорт CITP поверх TCP и быстрый KS поверх UDP. В режиме AUTO приложение само проверяет, какой протокол работает в вашей сети, подключает его и запоминает удачный вариант. Никаких адресов, портов и конфигов — только личный ключ и одна кнопка.
Начиная с этой версии приложения сами следят за новыми сборками: вкладка «Обновления» находит новую версию на официальном сайте, скачивает её, проверяет размер, контрольную сумму SHA‑256 и подпись и устанавливает — ключ и настройки сохраняются.
2платформы — Android и Windows
KS + CITPдва протокола и режим AUTO
SHA‑256для каждого опубликованного файла
0рекламных SDK и сторонних трекеров
Как это работает
AUTO: выбор протокола под вашу сеть
KS · UDP
CITP · TCP
Выбранный маршрут
В обычной сети AUTO сначала проверяет KS: зашифрованный пробный запрос должен получить подлинный ответ ноды. Ответ пришёл — подключаемся через быстрый UDP.
Путь трафика через туннель
Зашифровано
Обычный интернет
Блокируется правилами
Весь трафик уходит в виртуальный адаптер и дальше — только в зашифрованном виде. На время подключения правила ChameleonFree‑* закрывают DNS мимо туннеля и IPv6‑утечки; при отключении маршруты, DNS и правила снимаются.
Обновление в приложении: 6 проверок до установки
1Манифест/vpn/manifest.json по HTTPS
2Версиятолько новее установленной
3Загрузкатолько с официального сайта
4Размербайт в байт с манифестом
5SHA‑256контрольная сумма совпала
6Подписьrelease‑ключ / версия PE
✓Установкаключ и настройки сохранены
Android проверяет пакет, versionCode и сертификат подписи и ставит обновление через системный установщик. Windows держит установщик в защищённой папке Program Files, отключает VPN, ставит новую версию тихо и снова открывает приложение.
Опубликованные файлы (МиБ)
данные: /vpn/manifest.json
Приложения
Исходники
Размеры берутся из того же манифеста, по которому приложения проверяют обновления.
«Мы не сохраняем содержимое VPN‑трафика. В приложениях нет рекламных SDK и сторонних трекеров. Каждый файл на этом сайте можно сверить по SHA‑256, а каждую строку кода — прочитать на GitHub.»
Принципы проекта Chameleon
Всё, что нужно. Ничего лишнего.
Одна кнопка
Приложение само выбирает сервер и транспорт и показывает реальный статус соединения.
AUTO: KS и CITP
Быстрый UDP там, где он работает, и устойчивый TCP в строгих сетях. Удачный выбор запоминается.
Личный ключ
Подписанный доступ для каждого пользователя. На Windows ключ шифруется DPAPI, адреса вводить не нужно.
Мгновенное отключение
В Android 4.5 VPN отключается сразу, без ожидания завершения фоновых задач.
Обновления в приложении
Вкладка «Обновления» находит, проверяет и ставит новую версию. Скачивать вручную больше не нужно.
Открытый код
Исходники клиентов, ноды и протокола открыты. Архив исходников каждой сборки лежит рядом с ней.
Скачать Chameleon
Файлы отдаются только с этого сайта. После загрузки сверьте SHA‑256 — инструкция ниже.
Нажмите «Скачать APK» выше. Если браузер спросит — разрешите установку приложений из этого браузера.
Установите и откройте
Откройте загруженный файл и нажмите «Установить». Приложение не просит доступ к контактам, камере, микрофону или геолокации.
Получите личный ключ
Откройте бота @citpauthbot. Откройте QR‑ссылку на телефоне или вставьте ключ во вкладке «Доступ».
Нажмите «Подключить»
Подтвердите системный запрос VPN. Режим AUTO сам выберет KS или CITP.
Скачайте установщик
Сборки пока без коммерческой подписи Authenticode, поэтому SmartScreen может предупредить: «Подробнее» → «Выполнить в любом случае». Перед этим сверьте SHA‑256.
Установите
Подтвердите UAC. Установщик поставит приложение и службу ChameleonBroker в Program Files. Перед установкой поверх старой версии закройте её (значок в трее → «Выход»); ключ сохранится.
Разрешите изменения системы
Приложение запускается от администратора и один раз спрашивает разрешение: адаптер Wintun, маршруты, DNS и правила ChameleonFree‑* на время подключения.
Ключ и подключение
Получите ключ в боте, вставьте его в «Мой доступ» и нажмите «Подключить VPN». Крестик окна сворачивает приложение в трей; выход — через меню значка.
Откройте «Обновления»
Android 4.5+ и Windows 4.5+ проверяют сайт при запуске. Если есть новая версия, на вкладке появится отметка.
Нажмите «Обновить»
Файл скачается и пройдёт проверки размера, SHA‑256, версии и подписи. При несовпадении установка отменяется.
Подтвердите установку
Android один раз попросит разрешить установку из этого источника и покажет системное окно. Windows отключит VPN, установит версию и сам откроет приложение.
Готово
Ключ, устройство и выбранный протокол сохраняются. На вкладке будет «Установлена последняя версия».
Сравните результат с SHA‑256 в карточке загрузки — строки должны совпасть полностью.
Нагрузочный тест хаба на реальной RU-ноде (2 vCPU, 2 ГБ). Хаб ограничен одним ядром (CPUQuota=100%) и 700 МБ RAM. Нагрузку подаёт отдельная машина: 10% пользователей активны (20 пакетов/с по 1000 Б), остальные раз в 2 с шлют keepalive. На каждой ступени 60 с измерений.
Сколько пользователей держит одно ядро
ks-hub 2 (было)ks-hub 3, общий портks-hub 3, свой порт
Задержка p95
95% ответов быстрее этой отметки. Ниже — лучше, логарифмическая шкала.
Пользователей на связи
Доля клиентов, которые получали ответы во время измерения.
Память хаба
Пиковое потребление RAM (systemd MemoryPeak).
Время подключения p95
От первого пакета до первого ответа хаба. Ниже — лучше.
Таблица с цифрами
Пользователей
ks-hub 2 (было)
ks-hub 3, общий порт
ks-hub 3, свой порт у каждого
100
✅ 100/100 · p95 165 мс
✅ 100/100 · p95 218 мс
✅ 100/100 · p95 178 мс
300
⚠️ 300/300 · p95 1257 мс
⚠️ 300/300 · p95 2605 мс
⚠️ 300/300 · p95 691 мс
500
⚠️ 500/500 · p95 3134 мс
⚠️ 500/500 · p95 1762 мс
⚠️ 500/500 · p95 1916 мс
700
⚠️ 699/700 · p95 5774 мс
⚠️ 700/700 · p95 3437 мс
⚠️ 700/700 · p95 3468 мс
1000
отказ (0 живых)
⚠️ 1000/1000 · p95 10664 мс
⚠️ 898/1000 · p95 9635 мс
✅ ≥99% пользователей на связи и p95 RTT ≤ 500 мс. ⚠️ все на связи, но задержка выше порога. Базовый RTT до ноды ≈ 125 мс.
Свой порт у каждого пользователя
RU-нода: пользователь слота N подключается к порту база+N. Хаб сразу знает, чей это пакет, и не перебирает ключи всех пользователей.
Плечо до выхода:ks-relay держит отдельный сеанс на каждого пользователя: порт база+N и ключ HMAC(master, N). Выход видит внутренний адрес пользователя, общего SNAT нет.
Ленивое окно ключей: пока пользователь молчит, хаб держит 256 позиций вместо 8192. Памяти и CPU нужно примерно в 30 раз меньше, байты на проводе прежние.
Как нас видит DPI/ТСПУ
Мы воспроизвели опубликованные методы обнаружения VPN (сигнатуры, правило «полностью зашифрованный трафик» FET, ритм простоя, ACK-эхо, активные зонды) и пять политик блокировки, а затем прогнали через них KS, CITP и для сравнения WireGuard, OpenVPN и обычный HTTPS. Меньше признаков — труднее отличить от обычного трафика.
Признаков из 7
KS
CITP
CITP + CBR
WireGuard
OpenVPN
HTTPS (эталон)
До исправлений
2
2
1
5
2
0
Сейчас (beta)
1
0
0
—
—
—
Что исправили: у CITP пропал ровный 5-секундный «пульс», зонд закрывается в случайный момент, первый пакет выглядит как TLS-запись, сервер слушает и 443; у KS убрано ACK-эхо (паддинг мелких пакетов) и снята чувствительность к сбитым часам (раньше дрейф ±9 с ломал связь, теперь держит ±30 с).
Политики: CITP работает при блокировке UDP, бане IP за UDP и когда открыты только порты ниже 1000. KS при блокировке UDP не работает — для этого и нужен AUTO. «Заморозку» соединения после 16 КБ пока не переживает ни один протокол.
Живая проверка (Россия → зарубежный сервер): все шесть протоколов 56/56 загрузок, вмешательства сети не видно.
Оговорка: это модель по открытым публикациям, а не настоящий ТСПУ. Полноценный разбор TLS увидит, что за заголовком CITP не TLS.
Запустить у себя
./bench/bench.sh # 1 скорость · 2 пользователи/ресурсы · 3 скорость/число пользователей
./bench/bench.sh status # пройденные чекпоинты; после обрыва продолжит с того же места
Свой сервер за 5 минут
git clone https://github.com/xfgx/Chameleon-CITP-VPN chameleon && cd chameleon
make setup && ./bin/chameleon-setup # Windows: bin\chameleon-setup.exe
Мастер спросит адреса RU-ноды и выхода, порты (auto / default / свой) и число пользователей. Потом он заменит все заглушки в репозитории и запишет готовые команды запуска в .chameleon-setup/RUN.md. Откатить: chameleon-setup -undo.
Нужны тестеры
Chameleon бесплатный и открытый. Нам нужны люди с разными провайдерами и в разных городах: мобильный интернет, домашний, офисный Wi-Fi. Оставьте заявку ↗: город, провайдер и устройство. Мы пришлём ключ.
README
Открытый исходный код Chameleon CITP — VPN‑клиентов для Android и Windows, общего ядра на Go, серверной ноды и спецификации протокола. Реальные адреса, порты, ключи и токены заменены заглушками (vpn.example.com, 203.0.113.x, <port>); логика кода не менялась.
Ветки
Ветка
Что внутри
main
Полный проект: клиенты, ядро, серверы, протокол, инструменты, документация
app/chameleon-4.5
Только исходники приложения 4.5: Android 4.5.1, Windows 4.5.0 и общее ядро
Возможности
AUTO — клиент пробует транспорты CITP, KS и ChaosSync и держится за тот, что проходит в текущей сети; итоги сеансов учитываются при следующем выборе.
Российские сайты напрямую, остальное — через VPN.
Подписанный DNS (v2) — ответы о выборе узла проверяются клиентом, без тихого отката при ошибке.
Фоновый маскирующий трафик ограничен по объёму и времени.
Обновления в приложении со сверкой SHA‑256 пакета.
Состав репозитория
Путь
Что это
android
Приложение Android (Kotlin, VpnService, Gradle)
desktop/Chameleon.Windows
Интерфейс Windows на C# / WPF (.NET 10)
mobilecore
Go‑ядро для Android (gomobile bind → .aar)
cmd/chamd
Служба Windows: Wintun, AUTO, DNS, брандмауэр
cmd/cham-server
Серверная нода CITP (Linux)
cmd/ks-*, cmd/chaossync-*
Протоколы KS и ChaosSync: клиент, хаб, консоль
internal/chameleon
Ядро протокола: кадры, криптография, транспорты
protocol/
Спецификация, инварианты, модель угроз, TLA+
packaging/, scripts/
Установщик NSIS, сборка релизов, проверки безопасности
tools/, test/e2e
Диагностика, лабораторные утилиты, сквозные тесты
Сборка
Нужны Go ≥ 1.26; для Android — Android SDK 34, gomobile, Gradle 8.7; для Windows — .NET 10 SDK и NSIS 3.
bash
git clone https://github.com/xfgx/Chameleon-CITP-VPN chameleon && cd chameleon
make build test vet # всё Go-ядро, серверы и утилиты# Сервер (linux/amd64)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "-s -w" ./cmd/cham-server
# Ядро Windows
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "-H=windowsgui" ./cmd/chamd
# Android: ядро + APK
gomobile bind -target=android -androidapi 23 -o android/app/libs/mobilecore.aar ./mobilecore
cd android && gradle assembleRelease
Своя инсталляция
Что
Как
Ключ ноды
cham-server -genkey -keyfile server.key
Ключ клиента
cham-keygen — публичная часть в allowlist ноды
Домен и бот
замените vpn.example.com и your_activation_bot на свои
Токен bulletin board
длинная случайная строка в CITP_CF_BOARD_TOKEN
DNS‑аутентификация v2 не принимает старые MAC: клиенты и все узлы цепочки обновляются вместе.
Свой сервер за 5 минут
make setup && ./bin/chameleon-setup: 8 вопросов (адреса нод, порты auto/default/свой, число пользователей, домен), замена всех заглушек, ключ плеча в secrets/, команды запуска в .chameleon-setup/RUN.md. Для Windows есть chameleon-setup.exe.
Бенчмарк
./bench/bench.sh: сравнение скорости, максимум пользователей на разных ресурсах, скорость при разном числе пользователей. После каждого шага сохраняется чекпоинт, результаты в разделе Бенчмарки.
Безопасность
Модель угроз — THREAT_MODEL.md, сообщения об уязвимостях — по SECURITY.md, не в открытых issue.
make security ищет случайно закоммиченные секреты и уязвимые зависимости.
CI на GitHub только собирает и тестирует код и не имеет доступа к серверам проекта.
Устранение неполадок
Нода молчит — так задумано: на неаутентифицированные запросы нода отвечает 0 байт. Проверьте allowlist и ключи.
Windows не поднимает туннель — откройте «Диагностику» и нажмите «Проверить и исправить»: приложение запустит BFE, брандмауэр и службу ChameleonBroker.
KS не подключается — проверьте синхронизацию времени Windows; AUTO переключится на CITP.
Лицензия
MIT, см. LICENSE и LICENSE-NOTICE.md. Сторонние компоненты (Wintun, .NET и Go‑модули) распространяются под своими лицензиями — список в packaging/THIRD-PARTY-NOTICES.txt.
Вопросы
Что входит в бесплатный план?
До двух установок на персональный ключ. Срок доступа по умолчанию — 30 дней с продлением через бота. Доступ зависит от ёмкости нод; это предварительный релиз.
Какой протокол выбрать?
Оставьте AUTO. Приложение проверит KS (UDP) и при недоступности подключит CITP (TCP). Вручную протокол меняется во вкладке «Протокол» при отключённом VPN.
Почему Windows просит права администратора?
Они нужны для адаптера Wintun, маршрутов, DNS и правил брандмауэра против утечек. Правила других программ не изменяются, а при отключении всё снимается.
Почему SmartScreen не узнаёт установщик?
У предварительных сборок пока нет коммерческой подписи Authenticode. Скачивайте только с этого сайта и сверяйте SHA‑256. APK подписан отдельным release‑ключом — его отпечаток указан выше.
Что сохраняется при обновлении?
Ключ активации, идентификатор устройства и выбранный протокол. На Windows ключ хранится в DPAPI‑хранилище пользователя и не удаляется даже при деинсталляции.
Что вы записываете?
Мы не сохраняем содержимое VPN‑трафика. Служебные сетевые метаданные нужны для диагностики и хранятся до 72 часов с ограничением объёма. На сайте — только собственные счётчики просмотров и загрузок, без сторонних трекеров.
Есть ли гарантии обхода блокировок?
Нет. Chameleon делает всё, чтобы подключаться в строгих сетях, но мы не обещаем обход любой блокировки, полную анонимность или невидимость для DPI.