github RixyPow/netzapret v0.6.1
NetZapret 0.6.1

latest releases: v1.3.0, v1.2.4, v1.2.3...
one month ago

Что нового

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

Новое:

Проверка ходит одним соединением вместо четырёх. Прежде на каждое имя
открывалось четыре подряд: TCP, рукопожатие 1.2, рукопожатие 1.3, передача.
Браузер открывает одно. Часть площадок такую очередь отшивает, и отказ
доставался четвёртому при живых первых трёх — whatsapp.net выходил
сломанным три захода из трёх, тогда как по одному соединению то же имя
проходило двадцать раз из двадцати. Проверка ста семнадцати имён заметно
короче.

Одна колонка TLS вместо двух, и в ней версия. Версии предлагаются обе
сразу, как это делает браузер, а сторона берёт свою. В ячейке теперь стоит
1.3 или 1.2 — то, на чём сошлись. Сразу стало видно, что battle.net,
playstation.com, nintendo.com, zoom.com, bsky.app и ещё полдюжины
работают по 1.2; прежние две колонки это прятали.

Своё приветствие TLS, собранное по образцу Chrome. Windows выдаёт
приветствие, по которому нас узнают: в нём нет GREASE, два шифра TLS 1.3
из трёх, нет compress_certificate, ALPS и status_request. Настройками
это не лечится. Теперь отвергнутое рукопожатие переспрашивается вторым,
написанным байтами, и отчёт различает три случая вместо одной догадки:

Чем ответили браузерному Что это значит
ServerHello отвергли наше приветствие — в браузере сайт откроется
отказ словами сторона и правда разборчива, и это её право
молчание или обрыв дело не в приветствии, вмешательство настоящее

Второе соединение открывается только там, где первое отказало: исправному
имени по-прежнему хватает одного. Так medium.com впервые получил честную
причину, а speedtest.net и nflxvideo.net перестали числиться мёртвыми,
работая.

Файл hosts правится прямо в программе. Свои записи и чужие показываются
врозь, как пресеты. Имя прибивается к адресу вручную — когда адрес уже
известен и подбирать пробами нечего. Чужие записи удаляются по одной,
с вопросом перед каждой и копией файла рядом; кнопки «почистить всё» нет
намеренно — файл общий, в него пишут редактор Zapret GUI, антивирус и рука,
и часть записей нужна для обхода. Видеть их обязательно: именно чужой пин
на Canva и RuTracker однажды выглядел как неисправный VPN.

Окно узнало то, что знала только консоль. В шапке отчёта — обстановка
замера: режим, пресет, выбранный сервер, состояние туннеля и страна выхода,
и всё это до вердиктов. Порядок не косметика: мёртвый туннель обесценивает
всё сказанное про проксируемые имена, и знать об этом надо раньше, чем они
появятся на экране. Там же — секция пресета, которая заберёт имя, жалобы
движка за нынешний прогон и связь строки с пином в hosts.

Тесты на окно. Их было ноль при пятистах на начинку, а окно с 0.5.0
забрало себе всё. Теперь 38: сборка конфига целиком, создание каждой
вкладки, существование каждого имени стиля в разметке, порядок пресетов,
список подписок.

Исправления:

Значок в трее пропадал при входе в систему. Оболочка объявляет о создании
области уведомлений один раз, а программа поднимается автозапуском в ту же
секунду: опоздав на рассылку, значок не появлялся уже никогда. При запуске
руками он был, при входе в систему нет.

Шапка отчёта молчала о туннеле при живом туннеле. Группа автоподбора
до первого замера задержки отвечает пустым именем, и в отчёте оставалось
«Сервер: » с пустотой и «Туннель: состояние не выяснено».

Секция пресета считалась двумя разными способами. Один ответ на вопрос
«какая секция заберёт это имя» лежал в дереве дважды — у консоли и у окна, —
и реализации расходились по существу: одна перечитывала списки с диска
на каждое имя и не знала обратного совпадения, другая знала. Осталась одна.

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

Чем это собрано и как сверить

NetZapret.zip   F6C89F623E816838F3EBC456D8B0C6A84640CA9020FA410A5191B02AA762DA47
NetZapret.exe   A2319E547B11E56A8FE38D27F2E8AEE0AAC16F2FF817169E8CC8911FCFAA61F1

Пакет SDK .NET 8.0.424, сборка Release, win-x64, self-contained, один файл.

Проверить скачанное:

Get-FileHash NetZapret.zip -Algorithm SHA256

Собрать самому и сравнить:

git checkout v0.6.1
pack.cmd

Совпасть должен NetZapret.exe. Архив — нет: в нём лежат winws2 и sing-box,
собранные не нами, и их версии у вас могут отличаться.

Don't miss a new netzapret release

NewReleases is sending notifications on new releases.