Программа для восстановления доступа к сайтам и сервисам, работа которых нарушена фильтрацией трафика. Бесплатная, без подписок, рекламы и телеметрии.
Nova не требует настройки. Ничего искать, регистрировать и оплачивать не нужно: рабочие узлы уже встроены, и Nova подключается сама. После запуска она определяет, какие ресурсы недоступны и какой способ восстановления связи подходит именно вашей сети.
- Нейросети — ChatGPT, Claude, Gemini, Grok и другие.
- Видео и музыка — YouTube без подтормаживаний, Spotify, SoundCloud, Twitch в 1080p (на отдельных каналах — 1440p при входе в аккаунт).
- Мессенджеры — Telegram, WhatsApp, Discord, включая голосовые звонки.
- Сайты — те, что перестали открываться или загружаются с задержками.
Все изменения системных настроек выполняются явно и обратимо. Файл hosts
программа не затрагивает; при завершении работы конфигурация возвращается к
исходному состоянию.
Оборудование фильтрации не блокирует ресурс целиком. Оно анализирует первые пакеты соединения, извлекает из них имя запрашиваемого узла и разрывает связь. Задача сводится к тому, чтобы это имя оказалось неразличимым для промежуточного оборудования, оставаясь корректным для сервера назначения.
Способов достичь этого много: разделить пакет в неожиданной для анализатора позиции, предварить его специально сформированным, задать время жизни пакета так, чтобы он достиг оборудования оператора связи, но не прошёл дальше.
Какой именно способ окажется действенным, зависит от оператора, региона и даже времени суток — универсального решения не существует. Поэтому Nova подбирает его самостоятельно и продолжает подбор всё время работы.
Помимо этого:
- Раздельная маршрутизация. Трафик распределяется между несколькими путями: прямым соединением с обходом фильтрации, туннелем Cloudflare WARP и европейскими серверами Opera VPN. Мессенджеры используют отдельный маршрут — их протоколы требуют иной обработки.
- Автоматический возврат к резервному маршруту. При потере туннеля трафик не зависает, а немедленно переключается на прямое соединение с обходом фильтрации и возвращается обратно после восстановления связи.
- Ресурсы за Cloudflare. Многие операторы ограничивают сети Cloudflare целиком. Nova распознаёт такие ресурсы по признакам в ответе сервера и обрабатывает их по отдельному правилу.
Дайте программе несколько минут: при первом запуске выполняется подбор параметров, и он занимает некоторое время.
Затем проверьте по порядку:
- Другой браузер. Чаще всего мешают сохранённый кэш, файлы cookie или расширения для обхода блокировок — последние необходимо отключить, они вступают в конфликт с Nova.
- Файл
hosts. Программа не изменяетC:\Windows\System32\drivers\etc\hosts. Если в нём остались записи от других средств обхода, они будут препятствовать работе — приведите файл к исходному виду. - Настройки DNS. Страница «Доступ к сайту ограничен законом РФ» означает,
что DNS-запросы обрабатываются оператором связи. Укажите публичный
DNS-сервер —
8.8.8.8или1.1.1.1в настройках windows. - Реклама на Twitch. Вместе с высоким качеством возвращается и реклама. Устраняется расширением AdGuard Exta.
Если ничего не помогло — напишите в группу, разберёмся вместе 😉
Ниже описано, как программа устроена внутри. Для повседневной работы эти сведения не требуются — раздел адресован тем, кому интересно, что происходит "под капотом".
Первоначально Nova вплоть до v1.30 перебирала заготовленный набор стратегий, проверяя каждую на сотне ресурсов и оставляя лучшую. Подход работал, но имел два ограничения. Во-первых, он затратен: перебор выполняется целиком даже тогда, когда в сети ничего не изменилось. Во-вторых, у него есть предел — если ни одна из заготовленных стратегий не преодолевает новое правило фильтрации, ответ «решения нет» сохраняется до следующего обновления программы.
Сейчас реализован иной подход.
Наблюдение вместо опроса. Каждое обычное соединение пользователя уже является измерением действующей стратегии. Отдельные проверочные запросы выполняются лишь тогда, когда обычный трафик не позволяет разрешить неопределённость.
Реакция на событие, а не по расписанию. За результативностью следит детектор смены режима: он фиксирует момент, когда работавшая стратегия начинает сдавать позиции, и только тогда инициирует поиск. Пока сеть стабильна, поиск не выполняется вовсе.
Выбор вместо перебора. Стратегия определяется методом сэмплирования Томпсона: для каждой поддерживается оценка вероятности успеха, из которой делается случайная выборка; побеждает наибольшая. Проверке подвергается только победитель. Накопленные наблюдения постепенно теряют вес, поэтому вчерашний результат не препятствует получению сегодняшнего.
Собственные стратегии, а не только заготовленные. Программа комбинирует и
видоизменяет работающие стратегии, получая новые. Прежде чем израсходовать на
кандидата реальную проверку, он передаётся самому winws --dry-run — тот
разбирает командную строку и сообщает, запустился бы он в принципе. Одна такая
проверка, не требующая обращения к сети, отсеивает целый класс заведомо
непригодных вариантов.
Отбор по разнообразию, а не по результату. Это оказалось важнее всего прочего. Если раз за разом брать лучших по набранным очкам и изменять у них один параметр, популяция неизбежно вырождается. В накопленных данных обнаружились 36 стратегий, различавшихся всего четырьмя параметрами из пятнадцати — тысячи измерений были потрачены на переизмерение одной и той же идеи. Теперь стратегии распределяются по «нишам»: чем именно они воздействуют на анализатор, как далеко проходит пакет, по какой причине получатель его отбрасывает. В резерве сохраняется лучшая стратегия каждой ниши, и каждая следующая попытка отказывает по иной причине, чем предыдущая, — только это и делает последовательный перебор осмысленным.
Непрерывно и с ограниченной нагрузкой. Обучение выполняется всё время работы программы под жёстким ограничением: не более трёх проверочных процессов и пятнадцати одновременных соединений. Предел задан абсолютной величиной, а не долей вычислительной мощности, — фоновая работа должна обходиться одинаково дёшево и на современном компьютере, и на устаревшем.
Все результаты измерений остаются на компьютере пользователя и никуда не передаются. Обучение у каждого своё: условия сети у разных операторов различаются, и заимствованный опыт здесь скорее вредит.
| Компонент | Назначение |
|---|---|
nova.pyw |
Приложение: интерфейс, маршрутизация, подбор стратегий |
resources/ |
Модули приложения: метаданные, профили маршрутизации, транспорт |
nova-rs/ |
Движок на Rust: обучение, эволюция стратегий, определение Cloudflare |
NovaDivert/ |
Перехват трафика средствами WinDivert |
NovaWFP/ |
Прокси-компоненты для TCP и UDP |
tgrelay/ |
Прозрачный релей для Telegram |
strat/, list/, ip/ |
Стратегии, перечни доменов и адресов |
docs/adr/ |
Архитектурные решения: что выбрано, на каком основании и что отклонено |
py Inno.py
Формирует Nova.exe средствами PyInstaller и установщик средствами Inno Setup 6.
Движок на Rust собирается отдельно:
cargo build --release --manifest-path nova-rs/Cargo.toml
Здесь намеренно нет двух вещей, и от каждой зависит своё.
Сторонние бинарники (bin/) — winws.exe из zapret, WinDivert, opera-proxy,
клиент WARP. Их распространение — дело их авторов, поэтому они не
перевыкладываются здесь; ссылки на оригиналы ниже. Без них обход не работает:
именно они его и выполняют.
Исключение — nova-tls-terminator.exe. Он собирается из nova-rs/ на GitHub
Actions, и Inno.py скачивает его сам, проверяя хэш. Отдельных действий не
требует. Без него приложение тоже работает — но рукопожатие TLS у релея тогда
питоновское, а оно не похоже ни на один браузер и потому заметно.
Ключи Nova — два файла, каждый открывает доступ к инфраструктуре, за которую платит автор:
| Файл | К чему даёт доступ | Что будет без него |
|---|---|---|
tgrelay/cf_ws.key |
Свой Cloudflare Worker на kws*.nova-app.eu |
Telegram пойдёт через официальные релеи и общедоступный пул доменов; личные домены автора отвергнут неподписанного клиента |
awg/opera_relay.key |
Релеи API для регионов Opera EU/US | EU/US не поднимутся там, где прямой запрос к API Opera заблокирован; на остальное не влияет |
Собранная из исходников копия работает — она просто не пользуется личной инфраструктурой автора.
У Telegram есть собственные WebSocket-релеи kws1…kws5.web.telegram.org —
через них клиент работает там, где обычный протокол не проходит. Когда провайдер
режет и их, Nova поднимает то же соединение через Cloudflare: запрос приходит на
её домен, а оттуда передаётся тому же релею Telegram.
Номер нужного дата-центра при этом едет в заголовке Host — внутри шифрования.
Раньше он стоял в имени соединения, которое видно в открытом виде, и одного
правила по этому имени хватало, чтобы закрыть сразу все домены. Теперь снаружи
видно обычное имя сайта.
Nova создана с участием проверенных временем решений: вместо повторного прохождения уже пройденного пути отобрано лучшее из существующего и объединено в единую систему, настроенную под текущие условия. За каждым из этих проектов — годы работы.
- zapret, bol-van — движок
winws, выполняющий непосредственное преодоление фильтрации. - WinDivert, basil00 — перехват сетевых пакетов в Windows.
- opera-proxy, Snawoot — благодаря этому решению доступны серверы Opera.
- Cloudflare WARP и AmneziaWG — туннелирование трафика.
Лицензии приведены в THIRD_PARTY_NOTICES.md.
Nova — программное средство управления сетевым трафиком на компьютере пользователя. Она изменяет порядок формирования сетевых пакетов и распределяет исходящие соединения между доступными маршрутами.
Программа:
- не размещает, не хранит и не распространяет какую-либо информацию с сайтов;
- не собирает сведений о пользователе и не передаёт данные третьим лицам;
- не осуществляет доступ к чужим информационным системам и не нарушает их работу;
- не преодолевает средства защиты информации и не модифицирует чужое программное обеспечение;
- функционирует исключительно в пределах компьютера, на котором установлена.
Перечни доменов и сетевых адресов, входящие в состав программы, используются как техническая выборка для измерения качества связи и выбора сетевых параметров.
Программа распространяется безвозмездно, с открытым исходным кодом, на условиях «как есть», без каких-либо гарантий — в том числе гарантий пригодности для конкретных целей. Автор не несёт ответственности за способы использования программы и за последствия такого использования. Ответственность за соблюдение законодательства своей страны несёт пользователь.
Исходный код открыт: любой желающий может убедиться в том, что описанное выше соответствует действительности.
Настоящий раздел носит информационный характер и не является юридической консультацией.
🙋 Группа в Телеграм: @nova_txt — вопросы, новости, поддержка.
☕ Отблагодарить — если Nova оказалась полезной. Это необязательный способ сказать "спасибо".