Что нового
Новое:
Мёртвые серверы больше не роняют всю сеть. Движок при неотвечающей
подписке жив и трафик исправно принимает — а наружу тот не выходит; в режиме
«всё через VPN» это означало работающую программу, зелёные проверки и
отсутствующий интернет. Теперь, если выход не отвечает три проверки подряд,
трафик уводится мимо туннеля и возвращается обратно, как только выход оживёт.
Это компромисс, а не бесплатное улучшение: трафик пойдёт открыто и с домашнего
адреса. Для обхода блокировок цена приемлема — закрытый сайт просто останется
закрытым. Для скрытности нет, поэтому на вкладке «VPN» есть выключатель, а
подпись под ним называет цену прямо.
Проверка подмены DNS. Блокировка не всегда доходит до пакетов: дешевле
подменить ответ DNS, и тогда имя разрешается в заглушку оператора. Снаружи это
неотличимо от блокировки по имени — сайт не открывается, десинк не помогает, и
причину ищут не там.
Проверка судит по сертификату: подменённое имя нельзя подтвердить чужим. Такому
имени она и лечение называет верное — прибить настоящий адрес во вкладке «Файл
hosts», а не править рецепт десинка, которым подмена не лечится вовсе.
Пресет Universal V9, теперь по умолчанию. Семь рецептов, подобранных вручную
и проверенных на живой сети, стали частью пресета: Valheim, Instagram, Facebook,
SoundCloud, Speedtest, Medium, VirusTotal. Прежде такие правки жили отдельно от
пресета и терялись при сбросе настроек.
Поиск в файле hosts. По имени, по адресу и по пометке. Записей там набирается
под тысячу, и вопрос «кто у меня прибит на этот адрес» возникает не реже
обратного — так ловятся адреса, оставшиеся от давно сменившейся сети доставки.
Сортировка маршрутов по методу. Отвечает на вопрос «что у меня вообще идёт
через VPN» — прежде ради него приходилось перебирать семьдесят строк.
Исправления:
Подбор рецепта больше не называет работающим то, что не работает. Успехом
считался любой пришедший байт, а сайты на первый запрос часто отвечают коротким
перенаправлением на страницу входа — несколько сотен байт и закрытие. Отсюда
«открывается за 0,8 с» у имени, которое в браузере не грузилось вовсе. Теперь
перенаправления проходятся до конца, а открывшим считается тот, кто довёл до
страницы.
Подбор рецепта стал быстрее примерно на треть. Провальные рецепты
проваливаются одинаково — соединение встаёт мгновенно, а рукопожатие висит
до предела, — и предел этот платился за каждый из них целиком.
Рецепты из каталога стали доступны в подборе и стали применяться. Каталог
появился в прошлом выпуске, но окно выбора брало наборы только из пресета,
а выбранный из каталога рецепт молча не применялся: правило записано, в окне
написано, движок делает ничего.
Выбор сервера с флагом страны в названии больше не отказывает. Запрос к
движку уходил с лишней пометкой о кодировке, и тот отвечал отказом при
совершенно верном содержимом.
Переключатель DNS стал списком. Кнопка подписывалась действием, и после
нажатия нужный вариант словно пропадал. Заодно у обоих вариантов появилось
объяснение с ценой каждого.
Список маршрутов стал вдвое выше. Пояснения, которые прочитывают однажды,
убраны под значок «i», а кнопка пина заменена значком.
Чем это собрано и как сверить
NetZapret.zip 751EB515572512F12200AE346F39493619FFEF4027054B51C10752B24F409A94
NetZapret.exe 08A99297597680C103818DF1C61E0125DD2832E2DBD367D86FC2425C15FF26DE
Пакет SDK .NET 8.0.424, сборка Release, win-x64, self-contained, один файл.
Проверить скачанное:
Get-FileHash NetZapret.zip -Algorithm SHA256
Собрать самому и сравнить:
git checkout v0.6.4
pack.cmd
Совпасть должен NetZapret.exe. Архив — нет: в нём лежат winws2 и sing-box,
собранные не нами, и их версии у вас могут отличаться.