Инструмент проксирования для обхода блокировок в сложных сетевых средах. Использует методы прозрачного проксирования, локальной перезаписи MITM, реплея через прямые QUIC-соединения, TLS-фрагментации, разделения трафика через Warp и транзита через обратные прокси. Поддерживает Domain Fronting, ECH и прямые апстрим-соединения по протоколу HTTP/3.
-
Шесть режимов проксирования
transparent: Прозрачное проксирование (позволяет подменять заголовокhost, эффективно, если заблокирован только DNS).mitm: Режим «человек посередине» (дешифровка через локальный CA, модификация SNI для обхода блокировок; актуально для сайтов с поддержкой Domain Fronting или ECH).quic: Режим прямого QUIC-соединения (трафик от браузера до программы идет через MITM, затем программа переотправляет расшифрованный HTTP-запрос как прямое соединение HTTP/3/QUIC, используя техникуscramblingиз библиотекиquic-go).tls-rf: Режим фрагментации TLS (разбивает пакет ClientHello на фрагменты при отправке).server: Режим сервера (подключение к удаленному динамическому обратному прокси, передача трафика без специфических признаков/сигнатур).warp: Разделение трафика через WARP Masque (используетusqueкак туннель для WARP с возможностью выборочного проксирования).
-
Разделение трафика через Warp
- Использует usque как локальный подпроцесс. При включении запускается локальный SOCKS5-туннель, который соединяется с целевыми сайтами через протокол WARP Masque.
- Если в правилах параметр
upstreamустановлен в значениеwarp, трафик этого сайта будет перенаправлен через Cloudflare Warp. - По умолчанию выключено, активируется вручную при необходимости.
- Помогает решить проблемы с доступом к некоторым ресурсам (например, ChatGPT).
- Примечание: В текущем виде несовместимо с ECH и пулом отборных IP Cloudflare. Однако вы можете вручную найти подходящий Endpoint IP и внести его в конфигурацию.
-
ECH (Encrypted Client Hello)
- Динамический ECH: Использует встроенный DoH-обработчик для динамического получения конфигураций ECH. Позволяет включать шифрование приветственного пакета для поддерживаемых сайтов.
- Динамический пул IP: Интеллектуальный подбор оптимальных пограничных узлов (edge nodes) для повышения производительности.
Браузер → SniShaper(127.0.0.1:port) → Сопоставление правил → [Выбор режима: transparent/mitm/quic/tls-rf/server или Warp] → Рукопожатие с апстримом (ECH/Domain Fronting/QUIC H3/TLS Fragment/Warp) → Прямое соединение с целью
Запустите snishaper.exe. Порт прослушивания по умолчанию — 127.0.0.1:8080 (можно изменить в настройках).
Выполните следующие команды:
cd frontend
npm run build
cd ..
go build -ldflags="-H windowsgui" -o build\bin\snishaper.exe .Текущая версия использует wails/v3, поэтому десктопное приложение генерируется напрямую через входную точку Go, без зависимости от wails build.
Процесс публикации в GitHub Actions автоматически упаковывает rules/config.json, proxy/usque.exe вместе с собранным бинарным файлом.
Нажмите кнопку «Управление сертификатами» (Certificate Management) в интерфейсе, затем выберите «Установка в один клик». Это автоматически установит сгенерированный корневой сертификат в системное хранилище «Доверенные корневые центры сертификации».
На странице правил или ECH введите домен, который хотите ускорить, и создайте конфигурацию, исходя из текущей ситуации.
Нажмите «Запустить прокси» (Start Proxy) на главном экране и включите «Системный прокси» (System Proxy).
| Поле | Описание |
|---|---|
domains |
Список сопоставляемых доменов |
website |
Название группы сайтов (для агрегации в интерфейсе) |
mode |
Режимы: transparent, mitm, quic, tls-rf или server |
upstream |
Адрес апстрима (IP:443) или специальное значение warp |
dns_mode |
Стратегия разрешения DNS: По умолчанию, Приоритет IPv4/IPv6, Только IPv4/IPv6 |
sni_policy |
Стратегия обработки SNI |
ech_enabled |
Включить/выключить ECH |
use_cf_pool |
Использовать ли пул отборных IP Cloudflare для балансировки нагрузки и стабильности |
cloudflare_config.warp_enabled |
Включить функции Warp |
cloudflare_config.warp_endpoint |
Адрес конечной точки Warp MASQUE |
Режим quic — это не прозрачная трансляция QUIC-пакетов, а схема «Вход через MITM, выход через H3 replay»:
- От браузера к программе: обычный HTTPS, расшифрованный локальным CA.
- От программы к целевому сайту: инициируется прямое соединение HTTP/3/QUIC с помощью библиотеки
quic-go/http3. - При соответствии правилам используется встроенная в
quic-goфункция scrambling (запутывание) для ClientHello.
Когда использовать:
- Сайт точно поддерживает HTTP/3.
- Сайт блокируется по SNI и не принимает Domain Fronting.
- TLS-фрагментация работает нестабильно.
Режим tls-rf не обрывает клиентское TLS-соединение (как MITM) и не проксирует его в исходном виде (как прозрачный режим). При пересылке трафика апстриму программа разделяет TLS ClientHello на части, что в некоторой степени позволяет избежать идентификации SNI системами цензуры.
Примечание: Этот метод не гарантирует долгосрочную безопасность (Forward Secrecy) и может требовать обновлений. Идея заимствована из проекта moi-si/lumine, спасибо автору за исследования.
Когда использовать:
- Вы не хотите устанавливать локальный корневой сертификат.
- Целевой сайт чувствителен к Domain Fronting (блокирует такие запросы).
Режим server является опциональным и используется для обхода блокировок по IP. Это не классический прокси: он модифицирует urlpath исходного соединения и связывается с динамическим сервером обратного проксирования.
Клиент → Worker → Целевой сайт
Шаги развертывания:
- Войдите в Cloudflare Dashboard.
- Создайте новый Worker (шаблон "Hello World").
- Скопируйте содержимое файла
sni-server/worker.jsв редактор воркера. - В настройках воркера добавьте переменную окружения
AUTH_SECRETи установите пароль. - Разверните воркер и получите его домен (например,
xxx.workers.dev). - В клиенте SniShaper в настройках узла Server укажите этот домен и ваш пароль.
Клиент → Cloudflare Tunnel → VPS (sni-server) → Целевой сайт
Шаги развертывания:
- Подготовьте VPS (любой Linux с поддержкой Go).
- Запустите скрипт автоматической установки:
curl -fsSL https://raw.githubusercontent.com/coolapijust/Shaper-Next/main/server/install.sh -o /tmp/sni-server-install.sh sudo bash /tmp/sni-server-install.sh
- Настройте домен. Рекомендуется использовать Cloudflare Tunnel:
bash <(curl -sSL https://github.com/sky22333/shell/raw/main/dev/cf-tunnel.sh) - Введите полученный домен туннеля и пароль в настройки клиента.
Примечание: Можно подключаться к VPS напрямую без CDN, поддержка этой функции появится в будущих версиях. Если не хотите настраивать свой сервер, просто используйте встроенный WARP, переключив режим работы правила на warp.
- Ошибка сертификата: Убедитесь, что сертификат импортирован в категорию «Доверенные корневые центры сертификации» и обязательно перезапустите браузер.
- Низкая скорость: Рекомендуется добавить в «Пул IP» больше IP-адресов Cloudflare Anycast с низкой задержкой для вашей сети; попробуйте изменить режим работы правила для конкретного сайта.
Для анализа состояния целевого сайта можно использовать сопутствующий инструмент — SniViewer. На основе его тестов можно создавать точечные правила. Для небольших сайтов, не охваченных стандартными правилами, вероятность успеха очень высока. Если сайт не открывается даже после правки правил, используйте режим Server или WARP.
Проект вдохновлен и опирается на наработки следующих проектов: