Skip to content

Repository files navigation

🌌 Nova

Программа для восстановления доступа к сайтам и сервисам, работа которых нарушена фильтрацией трафика. Бесплатная, без подписок, рекламы и телеметрии.

image

⬇️ Скачать NovaSetup.exe


Возможности

Nova не требует настройки. Ничего искать, регистрировать и оплачивать не нужно: рабочие узлы уже встроены, и Nova подключается сама. После запуска она определяет, какие ресурсы недоступны и какой способ восстановления связи подходит именно вашей сети.

  • Нейросети — ChatGPT, Claude, Gemini, Grok и другие.
  • Видео и музыка — YouTube без подтормаживаний, Spotify, SoundCloud, Twitch в 1080p (на отдельных каналах — 1440p при входе в аккаунт).
  • Мессенджеры — Telegram, WhatsApp, Discord, включая голосовые звонки.
  • Сайты — те, что перестали открываться или загружаются с задержками.

Все изменения системных настроек выполняются явно и обратимо. Файл hosts программа не затрагивает; при завершении работы конфигурация возвращается к исходному состоянию.

Принцип работы

Оборудование фильтрации не блокирует ресурс целиком. Оно анализирует первые пакеты соединения, извлекает из них имя запрашиваемого узла и разрывает связь. Задача сводится к тому, чтобы это имя оказалось неразличимым для промежуточного оборудования, оставаясь корректным для сервера назначения.

Способов достичь этого много: разделить пакет в неожиданной для анализатора позиции, предварить его специально сформированным, задать время жизни пакета так, чтобы он достиг оборудования оператора связи, но не прошёл дальше.

Какой именно способ окажется действенным, зависит от оператора, региона и даже времени суток — универсального решения не существует. Поэтому Nova подбирает его самостоятельно и продолжает подбор всё время работы.

Помимо этого:

  • Раздельная маршрутизация. Трафик распределяется между несколькими путями: прямым соединением с обходом фильтрации, туннелем Cloudflare WARP и европейскими серверами Opera VPN. Мессенджеры используют отдельный маршрут — их протоколы требуют иной обработки.
  • Автоматический возврат к резервному маршруту. При потере туннеля трафик не зависает, а немедленно переключается на прямое соединение с обходом фильтрации и возвращается обратно после восстановления связи.
  • Ресурсы за Cloudflare. Многие операторы ограничивают сети Cloudflare целиком. Nova распознаёт такие ресурсы по признакам в ответе сервера и обрабатывает их по отдельному правилу.

Если доступ не восстановился

Дайте программе несколько минут: при первом запуске выполняется подбор параметров, и он занимает некоторое время.

Затем проверьте по порядку:

  1. Другой браузер. Чаще всего мешают сохранённый кэш, файлы cookie или расширения для обхода блокировок — последние необходимо отключить, они вступают в конфликт с Nova.
  2. Файл hosts. Программа не изменяет C:\Windows\System32\drivers\etc\hosts. Если в нём остались записи от других средств обхода, они будут препятствовать работе — приведите файл к исходному виду.
  3. Настройки DNS. Страница «Доступ к сайту ограничен законом РФ» означает, что DNS-запросы обрабатываются оператором связи. Укажите публичный DNS-сервер — 8.8.8.8 или 1.1.1.1 в настройках windows.
  4. Реклама на 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 заблокирован; на остальное не влияет

Собранная из исходников копия работает — она просто не пользуется личной инфраструктурой автора.

Почему kws и при чём тут Telegram

У Telegram есть собственные WebSocket-релеи kws1kws5.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 оказалась полезной. Это необязательный способ сказать "спасибо".

About

Программа для восстановления доступа к большинству сайтов для windows 10/11

Resources

Stars

156 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages