From cbba8a78766421fe8a26079e13fb15de0a40cc7a Mon Sep 17 00:00:00 2001 From: 0x201 Date: Mon, 4 Nov 2024 15:21:20 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=95=D1=89=D1=91=20=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D0=B8=20.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...art_windows.txt => quick_start_windows.md} | 151 ++++++----- docs/readme.md | 6 +- docs/{windows.txt => windows.md} | 256 ++++++++++-------- 3 files changed, 228 insertions(+), 185 deletions(-) rename docs/{quick_start_windows.txt => quick_start_windows.md} (62%) rename docs/{windows.txt => windows.md} (53%) diff --git a/docs/quick_start_windows.txt b/docs/quick_start_windows.md similarity index 62% rename from docs/quick_start_windows.txt rename to docs/quick_start_windows.md index ecf5a3c..f202fdc 100644 --- a/docs/quick_start_windows.txt +++ b/docs/quick_start_windows.md @@ -1,11 +1,15 @@ -Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt. +# Windows quick start -Как обычно, компьютерная грамотность ложится полностью на вас. -Вы должны уметь работать с консолью windows и иметь минимальные навыки обращения с командными файлами bat,cmd. -Если грамотность отсутствует и возникает куча "как" на базовых вещах, значит эта программа не для вас. -Разработчик не будет отвечать на вопросы из серии школы компьютерной грамотности. -Если вы все-таки хотите продолжать, задавайте вопросы в дискуссиях на github или на форумах. -Возможно, кто-то вам поможет. Но не надо писать issue на github. Они будут закрываться сразу. +Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt. +> [!CAUTION] +> Как обычно, компьютерная грамотность ложится полностью на вас. +> Вы должны уметь работать с консолью windows и иметь минимальные навыки обращения с командными файлами `bat`, `cmd`. +> Если грамотность отсутствует и возникает куча _"как?"_ на базовых вещах, значит эта программа не для вас. +> Разработчик не будет отвечать на вопросы из серии школы компьютерной грамотности. +> Если вы все-таки хотите продолжать, задавайте вопросы в дискуссиях]на github или на форумах. +> Возможно, кто-то вам поможет. Но не надо писать issue на github. Они будут закрываться сразу. + +## Немного разъяснений Обход DPI является хакерской методикой. Под этим словом понимается метод, которому сопротивляется окружающая среда, которому автоматически не гарантирована работоспособность в любых условиях и на любых ресурсах, @@ -18,32 +22,37 @@ Будем считать, что у вас есть windows 7 или выше. Задача - обойти блокировки с самой системы. -Есть решение самое простое, а есть "как положено". +> [!NOTE] +> Есть решение самое простое, а есть "как положено". -САМОЕ ПРОСТОЕ РЕШЕНИЕ +## САМОЕ ПРОСТОЕ РЕШЕНИЕ -Совсем ничего не могу, все очень сложно, дайте мне таблетку. +_"Совсем ничего не могу, все очень сложно, дайте мне таблетку."_ ©Простой пользователь -Скачайте и распакуйте архив https://github.com/bol-van/zapret-win-bundle/archive/refs/heads/master.zip -Запустите zapret-winws/preset_russia.cmd от имени администратора. -Возможно, заведется сразу. Этот вариант похож на "2_any_country.cmd" из GoodbyeDPI. +1) Скачайте и распакуйте архив https://github.com/bol-van/zapret-win-bundle/archive/refs/heads/master.zip. +2) Запустите `zapret-winws/preset_russia.cmd` от имени администратора. Возможно, заведется сразу. -То же самое с ограничителем по автоматически создаваемому хост-листу preset_russia_autohostlist.cmd. -Что такое autohostlist - читайте readme.txt. Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. +> [!TIP] +> Этот вариант похож на `2_any_country.cmd` из [_GoodbyeDPI_](https://github.com/ValdikSS/GoodbyeDPI). + +То же самое с ограничителем по автоматически создаваемому хост-листу `preset_russia_autohostlist.cmd`. +Что такое `autohostlist` - читайте [readme.txt](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. Сначала не будет, но надо пытаться много раз, и тогда сработает, а дальше будет всегда срабатывать. Остальное не будет ломаться. Использовать только, если первый вариант тоже работает. -Не помогла таблетка ? Это вовсе не значит, что ничего не получится. Но придется делать по-нормальному. +Не помогла _"таблетка"_ ? Это вовсе не значит, что ничего не получится. Но придется делать по нормальному. -РЕШЕНИЕ "КАК ПОЛОЖЕНО" +## РЕШЕНИЕ "КАК ПОЛОЖЕНО" -1) Скачайте и распакуйте архив https://github.com/bol-van/zapret-win-bundle/archive/refs/heads/master.zip +1) Скачайте и распакуйте архив https://github.com/bol-van/zapret-win-bundle/archive/refs/heads/master.zip. -2) Если у вас Windows 7 x64, читайте docs/windows.txt. Без описанной там подготовки может не работать. -Для 32-битных систем Windows нет готового полного варианта, но есть собранные бинарники : -https://github.com/bol-van/zapret-win32 -На windows 11 arm64 выполните arm64/install_arm64.cmd от имени администратора и перезагрузите компьютер. -Читайте docs/windows.txt +2) Если у вас Windows 7 x64, читайте [docs/windows.md](./windows.md). Без описанной там подготовки может не работать. + +> [!WARNING] +> Для 32-битных систем Windows нет готового полного варианта. + +На windows 11 arm64 выполните `arm64/install_arm64.cmd` от имени администратора и перезагрузите компьютер. +Читайте [docs/windows.md](./windows.md) Имейте в виду, что антивирусы могут плохо реагировать на windivert. cygwin так же имеет внушительный список несовместимостей с антивирусами, хотя современные антивирусы @@ -54,15 +63,15 @@ cygwin так же имеет внушительный список несовм 4) Если вы работаете в виртуальной машине, необходимо использовать соединение с сетью в режиме bridge. nat не подходит -5) Запустите blockcheck\blockcheck.cmd. blockcheck в начале проверяет DNS. -Если выводятся сообщения о подмене адресов, то нужно будет решить проблему с DNS. -blockcheck перейдет в этом случае на DoH и будет пытаться получить и использовать реальные IP адреса. +5) Запустите `blockcheck\blockcheck.cmd`. blockcheck в начале проверяет **DNS**. +Если выводятся сообщения о подмене адресов, то нужно будет решить проблему с **DNS**. +blockcheck перейдет в этом случае на **DoH** _(DNS over HTTPS)_ и будет пытаться получить и использовать реальные IP адреса. Но если вы не настроите решение этой проблемы, обход будет работать только для тех программ, которые сами реализуют механизмы SecureDNS. Для других программ обход работать не будет. Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов -от провайдера на публичные (1.1.1.1, 8.8.8.8), либо в случае перехвата провайдером обращений -к сторонним серверам - через специальные средства шифрования DNS запросов, такие как dnscrypt, DoT, DoH. +от провайдера на публичные (`1.1.1.1`, `8.8.8.8`), либо в случае перехвата провайдером обращений +к сторонним серверам - через специальные средства шифрования DNS запросов, такие как [dnscrypt](https://www.dnscrypt.org/), **DoT** _(DNS over TLS)_, **DoH**. В современных броузерах чаще всего DoH включен по умолчанию, но curl будет использовать обычный системный DNS. win11 поддерживает системные DoH из коробки. Они не настроены по умолчанию. В последних билдах win10 существует неофициальный обходной путь для включения DoH. @@ -71,13 +80,17 @@ win11 поддерживает системные DoH из коробки. Он Тут все разжевано как и где это включается : https://hackware.ru/?p=13707 6) blockcheck позволяет выявить рабочую стратегию обхода блокировок. -Лог скрипта будет сохранен в blockcheck\blockcheck.log. -Запомните найденные стратегии. +Лог скрипта будет сохранен в `blockcheck\blockcheck.log`. +Запомните/Перепишите найденные стратегии. -Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале. -Вероятно, все остальные домены блокированы подобным образом, но не факт. -В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно. -Необходимо понимать как работают стратегии. +> [!WARNING] +> Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале. +> Вероятно, все остальные домены блокированы подобным образом, но не факт. + +> [!TIP] +> В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно. + +Необходимо понимать [как работают стратегии](./readme.md/#nfqws). zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел. Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов @@ -86,8 +99,8 @@ zapret не может пробить блокировку по IP адресу. blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки. В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях. Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель ---dpi-desync-fooling, чтобы не сломать сайты на более коротких дистанциях. -md5sig наиболее совместим, но работатет только на linux серверах. +`--dpi-desync-fooling`, чтобы не сломать сайты на более коротких дистанциях. +_md5sig_ наиболее совместим, но работатет только на linux серверах. badseq может работать только на https и не работать на http. Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL с каждым из этих ограничителей. @@ -100,75 +113,77 @@ badseq может работать только на https и не работа с использованием мультистратегии. Как работают мультистратегии описано в readme.txt. Прежде всего вам нужно собрать фильтр перехватываемого трафика. Это делается через параметры ---wf-l3, --wf-tcp, --wf-udp. ---wf-l3 относится к версии ip протокола - ipv4 или ipv6. ---wf-tcp и --wf-udp содержат перечень портов или диапазонов портов через запятую. +`--wf-l3`, `--wf-tcp`, `--wf-udp`. +`--wf-l3` относится к версии ip протокола - ipv4 или ipv6. +`--wf-tcp` и `--wf-udp` содержат перечень портов или диапазонов портов через запятую. -Пример стандартного фильтра для перехвата http, https, quic : --wf-tcp=80,443 --wf-udp=443 +Пример стандартного фильтра для перехвата http, https, quic : `--wf-tcp=80,443` `--wf-udp=443` -Фильтр должен быть минимально необходимым. Перехват лишнего трафика приведет только к бессмысленному -расходованию ресурсов процессора и замедлению интернета. +> [!WARNING] +> Фильтр должен быть минимально необходимым. Перехват лишнего трафика приведет только к бессмысленному расходованию ресурсов процессора и замедлению интернета. Если кратко по мультистратегии, то обычно параметры конструируются так : -"--filter-udp=443 'параметры для quic' --new ---filter-tcp=80,443 'обьединенные параметры для http и https'" +`--filter-udp=443 'параметры для quic' --new --filter-tcp=80,443 'обьединенные параметры для http и https'` Или так : -"--filter-udp=443 "параметры для quic" --new +`--filter-udp=443 'параметры для quic' --new --filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https'" +--filter-tcp=443 'параметры для https'` Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так : -"--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" --new +```--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" --new --filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' --new --filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' --new --filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" --new ---filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' --new ---filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6'" +--filter-l3=ipv6 --filter-tcp=80 "параметры для http ipv6" --new +--filter-l3=ipv6 --filter-tcp=443 "параметры для https ipv6" +``` -Но здесь совсем "копи-пастный" вариант. +Но здесь совсем _"копи-пастный"_ вариант. Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше. Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через -параметры --wf-* и убрать соответствующие им профили мультистратегии. +параметры `--wf-*` и убрать соответствующие им профили мультистратегии. tcp 80 - http, tcp 443 - https, udp 443 - quic. -Если используются методы нулевой фазы десинхронизации (--mss, --wssize, --dpi-desync=syndata) и фильтрация hostlist, +Если используются методы нулевой фазы десинхронизации (`--mss`, `--wssize`, `--dpi-desync=syndata`) и фильтрация hostlist, то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мультистратегии, которые получат управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий. -"--filter-tcp=80 'параметры для http' --new +```--filter-tcp=80 'параметры для http' --new --filter-tcp=443 'параметры для https' --hostlist=d:/users/user/temp/list.txt --new ---filter-tcp=443 --wssize 1:6" +--filter-tcp=443 --wssize 1:6 +``` autohostlist профиль приоритетен, поэтому wssize нужно писать туда : -"--filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https' --wssize 1:6 --hostlist-auto=d:/users/user/temp/autolist.txt" +```--filter-tcp=80 'параметры для http' --new +--filter-tcp=443 'параметры для https' --wssize 1:6 --hostlist-auto=d:/users/user/temp/autolist.txt +``` В этих примерах wssize будет применяться всегда к порту tcp 443, а хостлист будет игнорироваться. К http применять wssize вредно и бессмысленно. -7) Протестируйте найденные стратегии на winws. winws следует брать из zapret-winws. +7) Протестируйте найденные стратегии на winws. Winws следует брать из zapret-winws. Для этого откройте командную строку windows от имени администратора в директории zapret-winws. -Проще всего это сделать через _CMD_ADMIN.cmd. Он сам поднимет права и зайдет в нужную директорию. +Проще всего это сделать через `_CMD_ADMIN.cmd`. Он сам поднимет права и зайдет в нужную директорию. 8) Обеспечьте удобную загрузку обхода блокировок. Есть 2 варианта. Ручной запуск через ярлык или автоматический при старте системы, вне контекста текущего пользователя. Последний вариант разделяется на запуск через планировщик задач и через службы windows. -Если хотите ручной запуск, скопируйте preset_russia.cmd в preset_my.cmd и адаптируйте его под ваши параметра запуска. -Потом можно создать ярлык на рабочем столе на preset_my.cmd. Не забудьте, что требуется запускать от имени администратора. +Если хотите ручной запуск, скопируйте `preset_russia.cmd` в `preset_my.cmd` (`<ваше_название>.cmd`) и адаптируйте его под ваши параметра запуска. +Потом можно создать ярлык на рабочем столе на `preset_my.cmd`. Не забудьте, что требуется запускать от имени администратора. Но лучше будет сделать неинтерактивный автоматический запуск вместе с системой. -В zapret-winws есть командные файлы task_*, предназначенные для управления задачами планировщика. -Там следует поменять содержимое переменной WINWS1 на свою стратегию. +В zapret-winws есть командные файлы `task_*`, предназначенные для управления задачами планировщика. +Там следует поменять содержимое переменной `WINWS1` на свою стратегию. Если вы не можете обьединить несколько стратегий для разных протоколов в одну, дублируйте код в каждом из cmd -для поддержки нескольких задач : winws1,winws2,winws3. +для поддержки нескольких задач : _winws1_,_winws2_,_winws3_. После создания задач запустите их. Проверьте, что обход встает после перезагрузки windows. -Аналогично настраиваются и службы windows. Смотрите service_*.cmd +Аналогично настраиваются и службы windows. Смотрите `service_*.cmd` 9) Если ломаются отдельные незаблокированные ресурсы, нужно пользоваться ограничивающим ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей. @@ -176,6 +191,8 @@ ipset или хост листом. Читайте основной талмуд Есть стратегии довольно безобидные, а есть сильно ломающие, которые подходят только для точечного пробития отдельных ресурсов, когда ничего лучше нет. Хорошая стратегия может сильно ломать из-за плохо подобранных ограничителей для фейков - ttl, fooling. -Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея. -В некоторых случаях вы не обойдетесь без знаний и основного "талмуда". -Подробности и полное техническое описание расписаны в readme.txt +> [!CAUTION] +> Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея. +> В некоторых случаях вы не обойдетесь без знаний и основного "талмуда". + +Подробности и полное техническое описание расписаны в [readme.md](./readme.md) diff --git a/docs/readme.md b/docs/readme.md index 8cda1c0..bbf76ba 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -6,7 +6,8 @@ [![ru](https://img.shields.io/badge/lang-ru-green.svg)](./readme.md) *** - +- [zapret v.67](#zapret-v67) +- [Multilanguage README](#multilanguage-readme) - [Зачем это нужно](#зачем-это-нужно) - [Быстрый старт](#быстрый-старт) - [Как это работает](#как-это-работает) @@ -66,7 +67,7 @@ VPN. > *Linux/openwrt:* [docs/quick_start.txt](./quick_start.txt) > ->*Windows:* [docs/quick_start_windows.txt](./quick_start_windows.txt) +>*Windows:* [docs/quick_start_windows.md](./quick_start_windows.md) ## Как это работает @@ -2173,4 +2174,5 @@ VPS можно прибрести в множестве мест. Существ [Реквизиты](https://github.com/bol-van/zapret/issues/590): USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E + USDT BTC bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve diff --git a/docs/windows.txt b/docs/windows.md similarity index 53% rename from docs/windows.txt rename to docs/windows.md index de71421..812a7ab 100644 --- a/docs/windows.txt +++ b/docs/windows.md @@ -1,55 +1,64 @@ -tpws ----- +# Windows -Запуск tpws возможен только в Linux варианте под WSL. +## tpws + +Запуск tpws возможен только в Linux варианте под **WSL** _(Windows Subsystem for Linux)_. Нативного варианта под Windows нет, поскольку он использует epoll, которого под windows не существует. tpws в режиме socks можно запускать под более-менее современными билдами windows 10 и windows server с установленным WSL. Совсем не обязательно устанавливать дистрибутив убунту, как вам напишут почти в каждой статье про WSL, которую вы найдете в сети. tpws - статический бинарик, ему дистрибутив не нужен. -Установить WSL : dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all -Скопировать на целевую систему binaries/x86_64/tpws_wsl.tgz. -Выполнить : wsl --import tpws "%USERPROFILE%\tpws" tpws_wsl.tgz -Запустить : wsl -d tpws --exec /tpws --uid=1 --no-resolve --socks --bind-addr=127.0.0.1 --port=1080 <параметры_дурения> -Прописать socks 127.0.0.1:1080 в броузер или другую программу. +Установить WSL : + `dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all` +Скопировать на целевую систему `binaries/x86_64/tpws_wsl.tgz`. +Выполнить : + `wsl --import tpws "%USERPROFILE%\tpws" tpws_wsl.tgz` +Запустить : + `wsl -d tpws --exec /tpws --uid=1 --no-resolve --socks --bind-addr=127.0.0.1 --port=1080 <параметры_дурения>` +Прописать socks `127.0.0.1:1080` в браузер или другую программу. -Удаление : wsl --unregister tpws +Удаление : `wsl --unregister tpws` -Проверено на windows 10 build 19041 (20.04). +> [!NOTE] +> Проверено на windows 10 build 19041 (20.04). -Не работают функции --oob и --mss из-за ограничений реализации WSL. ---disorder не работает из-за особенностей tcp/ip стека windows. -Может не срабатывать детект RST в autohostlist. -WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться --nosplice. -Не поддерживается tcp user timeout. -Чтобы избавиться от исообщений об ошибке добавляйте "--local-tcp-user-timeout=0 --remote-tcp-user-timeout=0". +Возможные проблемы: +- Не работают функции `--oob` и `--mss` из-за ограничений реализации WSL. +`--disorder` не работает из-за особенностей tcp/ip стека windows. + +- Может не срабатывать детект RST в autohostlist. + +- WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться `--nosplice`. + +- Не поддерживается tcp user timeout. +Чтобы избавиться от сообщений об ошибке добавляйте : + `--local-tcp-user-timeout=0 --remote-tcp-user-timeout=0`. Эти сообщения только информативные, на работу они не влияют. - -winws ------ +## winws Это вариант пакетного фильтра nfqws для Windows, построенный на базе windivert. Все функции работоспособны, однако функционал ipset отсутствует. Фильтры по большому количеству IP адресов невозможны. Работа с проходящим трафиком, например в случае "расшаривания" соединения, не проверялась и не гарантируется. Для работы с windivert требуются права администратора. -Специфические для unix параметры, такие как --uid, --user и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws. +Специфические для unix параметры, такие как `--uid`, `--user` и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws. -Работа с пакетным фильтром основана на двух действиях. -Первое - выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode. -Второе - собственно обработка перенаправленных пакетов в пакетном фильтре. +Работа с пакетным фильтром основана на двух действиях : +1) Выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode. +2) Собственно обработка перенаправленных пакетов в пакетном фильтре. -В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw. +В windows отсутствуют встроенные средства для перенаправления трафика, такие как _iptables_, _nftables_, _pf_ или _ipfw_. Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным -secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning. +secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите `secureboot` или включите режим `testsigning`. На windows 7 вероятно будут проблемы с загрузкой windivert. Читайте ниже соответствующий раздел. -Задача iptables в winws решается внутренними средствами через фильтры windivert. +Задача _iptables_ в **winws** решается внутренними средствами через фильтры windivert. У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark. -Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language +[Документация по фильтрам windivert.](https://reqrypt.org/windivert-doc.html#filter_language) Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров. +``` --wf-iface=[.] ; числовые индексы интерфейса и суб-интерфейса --wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6. --wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание @@ -59,170 +68,185 @@ secure boot могут быть проблемы из-за подписи дра --ssid-filter=ssid1[,ssid2,ssid3,...] ; включать winws только когда подключена любая из указанных wifi сетей --nlm-filter=net1[,net2,net3,...] ; включать winws только когда подключена любая из указанных сетей NLM --nlm-list[=all] ; вывести список сетей NLM. по умолчанию только подключенных, all - всех. -Параметры --wf-l3, --wf-tcp, --wf-udp могут брать несколько значений через запятую. + ``` -Номера интерфейсов можно узнать так : netsh int ip show int. -Некоторых типы соединений там не увидеть. В этом случае запускайте winws с параметром --debug и смотрите IfIdx там. -SubInterface используется windivert, но практически всегда 0, его можно не указывать. Вероятно он нужен в редких случаях. +Параметры `--wf-l3`, `--wf-tcp`, `--wf-udp` могут брать несколько значений через запятую. + +Номера интерфейсов можно узнать так : `netsh int ip show int`. +Некоторых типы соединений там не увидеть. В этом случае запускайте **winws** с параметром `--debug` и смотрите IfIdx там. +SubInterface используется windivert, но практически всегда **0**, его можно не указывать. Вероятно он нужен в редких случаях. Конструктор фильтров автоматически включает входящие tcp пакеты с tcp synack и tcp rst для корректной работы функций autottl и autohostlist. При включении autohostlist так же перенаправляются пакеты данных с http redirect с кодами 302 и 307. Всегда добавляется фильтр на исключение не-интернет адресов ipv4 и ipv6. Для сложных нестандартных сценариев могут потребоваться свои фильтры. Логично будет начать со стандартного шаблона, -сохраненного через --wf-save. Нужно править файл и подсовывать его в параметре --wf-raw. Максимальный размер фильтра - 8 Kb. +сохраненного через `--wf-save`. Нужно править файл и подсовывать его в параметре `--wf-raw`. Максимальный размер фильтра - **8 Kb**. -Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры. +Можно запускать несколько процессов **winws** с разными стратегиями. Однако, не следует делать пересекающиеся фильтры. -В --ssid-filter можно через запятую задать неограниченное количество имен wifi сетей (SSID). Если задана хотя бы одна сеть, -то winws включается только, если подключен указанный SSID. Если SSID исчезает, winws отключается. Если SSID появляется снова, +В `--ssid-filter` можно через запятую задать неограниченное количество имен wifi сетей (**SSID**). Если задана хотя бы одна сеть, +то winws включается только, если подключен указанный **SSID**. Если **SSID** исчезает, winws отключается. Если **SSID** появляется снова, winws включается. Это нужно, чтобы можно было применять раздельное дурение к каждой отдельной wifi сети. -Названия сетей должны быть написаны в том регистре, в котором их видит система. Сравнение идет с учетом регистра ! +Названия сетей должны быть написаны в том регистре, в котором их видит система. Сравнение идет с учетом регистра! При этом нет никаких проверок куда реально идет трафик. Если одновременно подключен, допустим, ethernet, и трафик идет туда, то дурение включается и выключается просто по факту наличия wifi сети, на которую трафик может и не идти. -И это может сломать дурение на ethernet. Поэтому полезно так же будет добавить фильтр --wf-iface на индекс интерфейса wifi адаптера, +И это может сломать дурение на ethernet. Поэтому полезно так же будет добавить фильтр `--wf-iface` на индекс интерфейса wifi адаптера, чтобы не трогать другой трафик. ---nlm-filter аналогичен --ssid-filter, но работает с именами или GUIDами сетей Network List Manager (NLM). +`--nlm-filter` аналогичен `--ssid-filter`, но работает с именами или GUIDами сетей Network List Manager (NLM). Это те сети, которые вы видите в панели управления в разделе "Центр управления сетями и общим доступом". Под сетью подразумевается не конкретный адаптер, а именно сетевое окружение конкретного подключения. Обычно проверяется mac адрес шлюза. К сети можно подключиться через любой адаптер, и она останется той же самой. Если подключиться, допустим, к разными роутерам по кабелю, то будут разные сети. А если к одному роутеру через 2 разных сетевых карточки на том же компе - будет одна сеть. NLM абстрагирует типы сетевых адаптеров. Он работает как с wifi, так и с ethernet и любыми другими. -Поэтому это более универсальный метод, чем ssid фильтр. +Поэтому это более универсальный метод, чем **SSID** фильтр. Однако, есть и неприятная сторона. В windows 7 вы легко могли ткнуть на иконку сети и выбрать тип : private или public. Там же вы могли посмотреть список сетей и обьединить их. Чтобы, допустим, вы могли подключаться по кабелю и wifi к одному роутеру, и система эти подключения воспринимала как одну сеть. В следующих версиях windows они эти возможности сильно порезали. Похоже нет встроенных средств полноценно управлять -network locations в win10/11. Кое-что есть в powershell. -Можно поковыряться напрямую в реестре здесь : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList -Нужно менять ProfileGUID в Signatures\Unmanaged. Имена можно поменять в Profiles. +network locations в win10/11. Кое-что есть в **powershell**. +Можно поковыряться напрямую в реестре здесь : +`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList` +Нужно менять ProfileGUID в `Signatures\Unmanaged`. Имена можно поменять в Profiles. Есть кое-какие сторонние утилиты. Кое-что находится, позволяющее посмотреть и удалить network profiles, но не обьединить. Факт, что в ms они это сильно испортили. Движок network list все тот же, и он способен на все то, что было в win7. Можно не бороться с этой проблемой, а просто указывать через запятую те названия сетей или GUIDы, которые выбрала система. -Или если у вас только wifi, то использовать --ssid-filter. Там хотя бы есть гарантия, что SSID соответствуют реальности, +Или если у вас только wifi, то использовать `--ssid-filter`. Там хотя бы есть гарантия, что **SSID** соответствуют реальности, а система их не назвала как-то по-своему. -Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM. +Если в путях присутствуют национальные символы, то при вызове winws из `cmd` или `bat` кодировку нужно использовать **OEM**. Для русского языка это 866. Пути с пробелами нужно брать в кавычки. -При использовании опции @ кодировка в файле должна быть UTF-8 без BOM mark. +При использовании опции @ кодировка в файле должна быть **UTF-8** без **BOM mark**. -Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится winws, находится -копия cygwin1.dll, winws не запустится. -Если нужен запуск под cygwin, то следует удалить или переместить cygwin1.dll из binaries/win64. Это нужно для работы blockcheck. -Из cygwin шелла можно посылать winws сигналы через kill точно так же, как в *nix. +Существует неочевидный момент, каcаемый запуска **winws** из cygwin shell\`а. Если в директории, где находится winws, находится +копия `cygwin1.dll`, **winws** не запустится. +Если нужен запуск под cygwin, то следует удалить или переместить `cygwin1.dll` из `binaries/win64`. Это нужно для работы blockcheck. +Из cygwin шелла можно посылать winws сигналы через `kill` точно так же, как в `*nix`. Как получить совместимый с windows 7 и winws cygwin : -curl -O https://www.cygwin.com/setup-x86_64.exe -setup-x86_64.exe --allow-unsupported-windows --no-verify --site http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2024/01/30/231215 -Следует выбрать установку curl. +`curl -O https://www.cygwin.com/setup-x86_64.exe` \ -Для сборки из исходников требуется gcc-core,make,zlib-devel. -Собирать из директории nfq командой "make cygwin64" или "make cygwin32" для 64 и 32 битных версий соответственно. -winws требует cygwin1.dll, windivert.dll, windivert64.sys или windivert32.sys. -Их можно взять из binaries/win64 и binaries/win32. +`setup-x86_64.exe --allow-unsupported-windows --no-verify --site http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2024/01/30/231215` -Для arm64 windows нет подписанного драйвера windivert и нет cygwin. +> [!IMPORTANT] +> Следует выбрать установку curl. + +Для сборки из исходников требуется _gcc-core_,_make_,_zlib-devel_. +Собирать из директории nfq командой `make cygwin64` или `make cygwin32` для 64 и 32 битных версий соответственно. +**winws** требует `cygwin1.dll`, `windivert.dll`, `windivert64.sys` или `windivert32.sys`. +Их можно взять из `binaries/win64` и `binaries/win32`. + +Для _arm64_ windows нет подписанного драйвера windivert и нет cygwin. Однако, эмуляция x64 windows 11 позволяет использовать все, кроме WinDivert64.sys без изменений. -Но при этом надо заменить WinDivert64.sys на неподписанную arm64 версию и установить режим testsigning. +Но при этом надо заменить WinDivert64.sys на неподписанную _arm64_ версию и установить режим testsigning. -Windows 7 и windivert ---------------------- +## Windows 7 и windivert Требования к подписи драйверов windows изменились в 2021 году. Официальные бесплатные обновления windows 7 закончились в 2020. -После этого несколько лет продолжали идти платные обновления по программе ESU. -Именно в этих ESU обновлениях находится обновление ядра windows 7, позволяющиее загрузить драйвер -windivert 2.2.2-A, который идет в поставке zapret. +После этого несколько лет продолжали идти платные обновления по программе **ESU**. +Именно в этих **ESU** обновлениях находится обновление ядра windows 7, позволяющиее загрузить драйвер +_windivert 2.2.2-A_, который идет в поставке zapret. Поэтому варианты следующие : -1) Взять windivert64.sys и windivert.dll версии 2.2.0-C или 2.2.0-D отсюда : https://reqrypt.org/download +1) Взять `windivert64.sys` и `windivert.dll` версии _2.2.0-C_ или _2.2.0-D_ отсюда : https://reqrypt.org/download и заменить эти 2 файла. -В zapret-win-bundle есть отдельных 2 места, где находится winws : zapret-winws и blockcheck/zapret/nfq. +В [zapret-win-bundle](https://github.com/bol-van/zapret-win-bundle) есть отдельных 2 места, где находится **winws** : [_zapret-winws_](https://github.com/bol-van/zapret-win-bundle/tree/master/zapret-winws) и [_blockcheck/zapret/nfq_](https://github.com/bol-van/zapret-win-bundle/tree/master/blockcheck). Надо менять в обоих местах. -Этот вариант проверен и должен работать. Тем не менее патч 10 летней давности, который включает SHA256 -сигнатуры, все еще необходим. -2) Взломать ESU : +> [!NOTE] +> Этот вариант проверен и должен работать. Тем не менее патч 10 летней давности, который включает SHA256 сигнатуры, все еще необходим. + +2) Взломать **ESU** : https://hackandpwn.com/windows-7-esu-patching/ http://www.bifido.net/tweaks-and-scripts/8-extended-security-updates-installer.html и обновить систему 3) Использовать UpdatePack7R2 от simplix : https://blog.simplix.info -Но с этим паком есть проблема. Автор из Украины, он очень обиделся на русских. -Если в панели управления стоит регион RU или BY, появляется неприятный диалог. -Чтобы эту проблему обойти, можно поставить временно любой другой регион, потом вернуть. -Так же нет никаких гарантий, что автор не насовал туда какой-то зловредный код. -Использовать на свой страх и риск. +> [!WARNING] +> Но с этим паком есть проблема. Автор из Украины, он очень обиделся на русских. +> Если в панели управления стоит регион RU или BY, появляется неприятный диалог. +> Чтобы эту проблему обойти, можно поставить временно любой другой регион, потом вернуть. +> Так же нет никаких гарантий, что автор не насовал туда какой-то зловредный код. +> Использовать на свой страх и риск. + Более безопасный вариант - скачать последнюю нормальную довоенную версию : 22.2.10 https://nnmclub.to/forum/viewtopic.php?t=1530323 -Ее достаточно, чтобы windivert 2.2.2-A заработал на windows 7. +Ее достаточно, чтобы _windivert 2.2.2-A_ заработал на windows 7. -blockcheck ----------- +## blockcheck -blockcheck.sh написан на posix shell и требует некоторых стандартных утилит posix. В windows, естественно, этого нет. -Потому просто так запустить blockcheck.sh невозможно. -Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе. -Следует запустить от имени администратора cygwin shell через cygwin.bat. +`blockcheck.sh` написан на _posix shell_ и требует некоторых стандартных утилит _posix_. В windows, естественно, этого нет. +Потому просто так запустить `blockcheck.sh` невозможно. +Для этого требуется скачать и установить _cygwin_ так , как описано в предыдущем разделе. +Следует запустить от имени администратора _cygwin shell_ через `cygwin.bat`. В нем нужно пройти в директорию с zapret. Обратные слэши путей windows нужно удваивать, менять на прямые слэши, либо использовать отображение на unix path. -Корректный вариант 1 : cd "C:\\Users\\vasya" -Корректный вариант 2 : cd "C:/Users/vasya" -Корректный вариант 3 : cd "/cygdrive/c/Users/vasya" -Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится winws, находится -копия cygwin1.dll, winws не запустится. Нужно переименовать файл cygwin1.dll. -Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh. +Корректные варианты : +- `cd C:\\Users\\vasya` +- `cd C:/Users/vasya` +- `cd /cygdrive/c/Users/vasya` + +Существует неочевидный момент, каcаемый запуска **winws** из _cygwin_ шелла. Если в директории, где находится **winws**, есть копия `cygwin1.dll`, **winws** не запустится. Нужно переименовать файл `cygwin1.dll`. +Далее все как в _*nix_ : 1 раз `./install_bin.sh` , затем `./blockcheck.sh`. WSL использовать нельзя, это не то же самое. -cygwin для обычной работы winws не нужен. +_cygwin_ для обычной работы **winws** не нужен. -Однако, хотя такой способ и работает, использование winws сильно облегчает zapret-win-bundle. -Там нет проблемы с cygwin.dll. +Однако, хотя такой способ и работает, использование **winws** сильно облегчает [zapret-win-bundle](https://github.com/bol-van/zapret-win-bundle). +Там нет проблемы с `cygwin.dll`. -автозапуск winws ----------------- +## Автозапуск winws -Для запуска winws вместе с windows есть 2 варианта. Планировщик задач или службы windows. +Для запуска **winws** вместе с windows есть 2 варианта. Планировщик задач или службы windows. Можно создавать задачи и управлять ими через консольную программу schtasks. -В директории binaries/win64/winws подготовлены файлы task_*.cmd . -В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной %WINWS1%. +В директории `binaries/win64/winws` подготовлены файлы `task_*.cmd` . +В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной `%WINWS1%`. Исправьте параметры на нужную вам стратегию. Если для разных фильтров применяется разная стратегия, размножьте код -для задач winws1,winws2,winws3,... +для задач _winws1_,_winws2_,_winws3_,_..._ -Аналогично настраивается вариант запуска через службы windows. Смотрите service_*.cmd. +Аналогично настраивается вариант запуска через службы windows. Смотрите `service_*.cmd`. Все батники требуется запускать от имени администратора. -Управлять задачами можно так же из графической программы управления планировщиком taskschd.msc +Управлять задачами можно так же из графической программы управления планировщиком `taskschd.msc` -zapret-win-bundle ------------------ +## Zapret-win-bundle -Можно не возиться с cygwin, а взять готовый пакет, включающий в себя cygwin и blockcheck : https://github.com/bol-van/zapret-win-bundle -Там сделан максимум удобств для сосредоточения на самом zapret, исключая возню с установкой cygwin, +Можно не возиться с _cygwin_, а взять готовый пакет, включающий в себя _cygwin_ и _blockcheck_ : https://github.com/bol-van/zapret-win-bundle +Там сделан максимум удобств для сосредоточения на самом zapret, исключая возню с установкой _cygwin_, заходами в директории, запусками под администратором и прочими сугубо техническими моментами, в которых могут быть ошибки и непонимания, а новичок без базиса знаний может и вовсе запутаться. -/zapret-winws - здесь все, что нужно для запуска winws в повседневном рабочем режиме. остальное не нужно. -/zapret-winws/_CMD_ADMIN.cmd - получить командную строку cmd в этой директории от имени администратора для тестирования winws +`/zapret-winws` - здесь все, что нужно для запуска winws в повседневном рабочем режиме. остальное не нужно. +`/zapret-winws/_CMD_ADMIN.cmd` - получить командную строку cmd в этой директории от имени администратора для тестирования **winws** с параметрами, вводимыми вручную -/blockcheck/blockcheck.cmd - достаточно кликнуть по нему, чтобы пошел blockcheck с записью лога в blockcheck/blockcheck.log -/cygwin/cygwin.cmd - запуск среды cygwin bash под текущим пользователем -/cygwin/cygwin-admin.cmd - запуск среды cygwin bash под администратором +`/blockcheck/blockcheck.cmd` - достаточно кликнуть по нему, чтобы пошел _blockcheck_ с записью лога в `blockcheck/blockcheck.log` +`/cygwin/cygwin.cmd` - запуск среды _cygwin bash_ под текущим пользователем +`/cygwin/cygwin-admin.cmd` - запуск среды _cygwin bash_ под администратором -В среде cygwin уже настроены alias-ы на winws,blockcheck,ip2net,mdig. С путями возиться не нужно ! -Из cygwin можно не только тестировать winws, но и посылать сигналы. -Доступны команды pidof,kill,killall,pgrep,pkill. -Но важно понимать, что таким образом не выйдет посылать сигналы winws, запущенному из zapret-winws, -поскольку там свой cygwin1.dll, и они не разделяют общее пространство процессов unix. -zapret-winws - это отдельный комплект для повседневного использования, не требующий что-то еще, но и не связанный со средой cygwin. +В среде _cygwin_ уже настроены alias-ы на winws,blockcheck,ip2net,mdig. С путями возиться не нужно! + +> [!TIP] +> Из cygwin можно не только тестировать winws, но и посылать сигналы. +> Доступны команды: +>- `pidof` +>- `kill` +>- `killall` +>- `pgrep` +>- `pkill` + +Но важно понимать, что таким образом не выйдет посылать сигналы **winws**, запущенному из _zapret-winws_, +поскольку там свой `cygwin1.dll`, и они не разделяют общее пространство процессов unix. +_zapret-winws_ - это отдельный комплект для повседневного использования, не требующий что-то еще, но и не связанный со _средой cygwin_. Среду cygwin можно использовать для записи в файл дебаг-лога winws. Для этого пользуйтесь командой tee. -winws --debug --wf-tcp=80,443 | tee winws.log -winws.log будет в cygwin/home/<имя_пользователя> +`winws --debug --wf-tcp=80,443 | tee winws.log` +`winws.log` будет в `cygwin/home/<имя_пользователя>` Если у вас windows 7, то блокнот не поймет переводы строк в стиле unix. Воспользуйтесь командой -unix2dos winws.log +`unix2dos winws.log` -Поскольку 32-битные windows мало востребованы, zapret-win-bundle существует только в варианте для windows x64/arm64. +> [!CAUTION] +> Поскольку 32-битные windows мало востребованы, _zapret-win-bundle_ существует только в варианте для windows _x64/arm64_. From cff12dd431543012043a4651af2fa837ddb25717 Mon Sep 17 00:00:00 2001 From: 0x201 Date: Mon, 4 Nov 2024 17:30:50 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/quick_start_windows.md | 30 ++++++++----- docs/readme.md | 84 ++++++++++++++++++------------------- docs/windows.md | 4 ++ 3 files changed, 64 insertions(+), 54 deletions(-) diff --git a/docs/quick_start_windows.md b/docs/quick_start_windows.md index f202fdc..c113a74 100644 --- a/docs/quick_start_windows.md +++ b/docs/quick_start_windows.md @@ -1,6 +1,6 @@ # Windows quick start -Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt. +Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню [readme.md](./readme.md). > [!CAUTION] > Как обычно, компьютерная грамотность ложится полностью на вас. > Вы должны уметь работать с консолью windows и иметь минимальные навыки обращения с командными файлами `bat`, `cmd`. @@ -36,7 +36,7 @@ _"Совсем ничего не могу, все очень сложно, да > Этот вариант похож на `2_any_country.cmd` из [_GoodbyeDPI_](https://github.com/ValdikSS/GoodbyeDPI). То же самое с ограничителем по автоматически создаваемому хост-листу `preset_russia_autohostlist.cmd`. -Что такое `autohostlist` - читайте [readme.txt](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. +Что такое `autohostlist` - читайте [readme.md](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. Сначала не будет, но надо пытаться много раз, и тогда сработает, а дальше будет всегда срабатывать. Остальное не будет ломаться. Использовать только, если первый вариант тоже работает. @@ -110,7 +110,7 @@ badseq может работать только на https и не работа она стабильна, на третьих полный хаос, и проще отказаться. Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска winws -с использованием мультистратегии. Как работают мультистратегии описано в readme.txt. +с использованием мультистратегии. Как работают мультистратегии описано в [readme.md](./readme.md). Прежде всего вам нужно собрать фильтр перехватываемого трафика. Это делается через параметры `--wf-l3`, `--wf-tcp`, `--wf-udp`. @@ -123,15 +123,21 @@ badseq может работать только на https и не работа > Фильтр должен быть минимально необходимым. Перехват лишнего трафика приведет только к бессмысленному расходованию ресурсов процессора и замедлению интернета. Если кратко по мультистратегии, то обычно параметры конструируются так : -`--filter-udp=443 'параметры для quic' --new --filter-tcp=80,443 'обьединенные параметры для http и https'` +``` +--filter-udp=443 'параметры для quic' --new +--filter-tcp=80,443 'обьединенные параметры для http и https' +``` Или так : -`--filter-udp=443 'параметры для quic' --new +``` +--filter-udp=443 'параметры для quic' --new --filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https'` +--filter-tcp=443 'параметры для https' +``` Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так : -```--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" --new +``` +--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" --new --filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' --new --filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' --new --filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" --new @@ -150,14 +156,16 @@ tcp 80 - http, tcp 443 - https, udp 443 - quic. то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мультистратегии, которые получат управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий. -```--filter-tcp=80 'параметры для http' --new +``` +--filter-tcp=80 'параметры для http' --new --filter-tcp=443 'параметры для https' --hostlist=d:/users/user/temp/list.txt --new --filter-tcp=443 --wssize 1:6 ``` autohostlist профиль приоритетен, поэтому wssize нужно писать туда : -```--filter-tcp=80 'параметры для http' --new +``` +--filter-tcp=80 'параметры для http' --new --filter-tcp=443 'параметры для https' --wssize 1:6 --hostlist-auto=d:/users/user/temp/autolist.txt ``` @@ -180,13 +188,13 @@ autohostlist профиль приоритетен, поэтому wssize нуж В zapret-winws есть командные файлы `task_*`, предназначенные для управления задачами планировщика. Там следует поменять содержимое переменной `WINWS1` на свою стратегию. Если вы не можете обьединить несколько стратегий для разных протоколов в одну, дублируйте код в каждом из cmd -для поддержки нескольких задач : _winws1_,_winws2_,_winws3_. +для поддержки нескольких задач : _winws1_, _winws2_, _winws3_. После создания задач запустите их. Проверьте, что обход встает после перезагрузки windows. Аналогично настраиваются и службы windows. Смотрите `service_*.cmd` 9) Если ломаются отдельные незаблокированные ресурсы, нужно пользоваться ограничивающим -ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей. +ipset или хост листом. Читайте основной талмуд [readme.md](./readme.md) ради подробностей. Но еще лучше будет подбирать такие стратегии, которые ломают минимум. Есть стратегии довольно безобидные, а есть сильно ломающие, которые подходят только для точечного пробития отдельных ресурсов, когда ничего лучше нет. Хорошая стратегия может сильно ломать из-за плохо подобранных ограничителей для фейков - ttl, fooling. diff --git a/docs/readme.md b/docs/readme.md index bbf76ba..d3f398a 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -6,49 +6,47 @@ [![ru](https://img.shields.io/badge/lang-ru-green.svg)](./readme.md) *** -- [zapret v.67](#zapret-v67) -- [Multilanguage README](#multilanguage-readme) - - [Зачем это нужно](#зачем-это-нужно) - - [Быстрый старт](#быстрый-старт) - - [Как это работает](#как-это-работает) - - [Что сейчас происходит в России](#что-сейчас-происходит-в-россии) - - [Как это реализовать на практике в системе linux](#как-это-реализовать-на-практике-в-системе-linux) - - [Особенности применения ip6tables](#особенности-применения-ip6tables) - - [Особенности применения nftables](#особенности-применения-nftables) - - [Когда это работать не будет](#когда-это-работать-не-будет) - - [nfqws](#nfqws) - - [АТАКА ДЕСИНХРОНИЗАЦИИ DPI](#атака-десинхронизации-dpi) - - [КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ](#комбинирование-методов-десинхронизации) - - [РЕЖИМ SYNACK](#режим-synack) - - [РЕЖИМ SYNDATA](#режим-syndata) - - [ВИРТУАЛЬНЫЕ МАШИНЫ](#виртуальные-машины) - - [CONNTRACK](#conntrack) - - [РЕАССЕМБЛИНГ](#реассемблинг) - - [ПОДДЕРЖКА UDP](#поддержка-udp) - - [IP ФРАГМЕНТАЦИЯ](#ip-фрагментация) - - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии) - - [tpws](#tpws) - - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии-1) - - [Способы получения списка заблокированных IP](#способы-получения-списка-заблокированных-ip) - - [ip2net](#ip2net) - - [mdig](#mdig) - - [Фильтрация по именам доменов](#фильтрация-по-именам-доменов) - - [Режим фильтрации autohostlist](#режим-фильтрации-autohostlist) - - [Проверка провайдера](#проверка-провайдера) - - [Выбор параметров](#выбор-параметров) - - [Прикручивание к системе управления фаерволом или своей системе запуска](#прикручивание-к-системе-управления-фаерволом-или-своей-системе-запуска) - - [Вариант custom](#вариант-custom) - - [Простая установка](#простая-установка) - - [Простая установка на openwrt](#простая-установка-на-openwrt) - - [Установка на openwrt в режиме острой нехватки места на диске](#установка-на-openwrt-в-режиме-острой-нехватки-места-на-диске) - - [Android](#android) - - [Мобильные модемы и роутеры huawei](#мобильные-модемы-и-роутеры-huawei) - - [FreeBSD, OpenBSD, MacOS](#freebsd-openbsd-macos) - - [Windows](#windows) - - [Другие прошивки](#другие-прошивки) - - [Обход блокировки через сторонний хост](#обход-блокировки-через-сторонний-хост) - - [Почему стоит вложиться в покупку VPS](#почему-стоит-вложиться-в-покупку-vps) - - [Поддержать разработчика](#поддержать-разработчика) +- [Зачем это нужно](#зачем-это-нужно) +- [Быстрый старт](#быстрый-старт) +- [Как это работает](#как-это-работает) +- [Что сейчас происходит в России](#что-сейчас-происходит-в-россии) +- [Как это реализовать на практике в системе linux](#как-это-реализовать-на-практике-в-системе-linux) +- [Особенности применения ip6tables](#особенности-применения-ip6tables) +- [Особенности применения nftables](#особенности-применения-nftables) +- [Когда это работать не будет](#когда-это-работать-не-будет) +- [nfqws](#nfqws) + - [АТАКА ДЕСИНХРОНИЗАЦИИ DPI](#атака-десинхронизации-dpi) + - [КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ](#комбинирование-методов-десинхронизации) + - [РЕЖИМ SYNACK](#режим-synack) + - [РЕЖИМ SYNDATA](#режим-syndata) + - [ВИРТУАЛЬНЫЕ МАШИНЫ](#виртуальные-машины) + - [CONNTRACK](#conntrack) + - [РЕАССЕМБЛИНГ](#реассемблинг) + - [ПОДДЕРЖКА UDP](#поддержка-udp) + - [IP ФРАГМЕНТАЦИЯ](#ip-фрагментация) + - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии) +- [tpws](#tpws) + - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии-1) +- [Способы получения списка заблокированных IP](#способы-получения-списка-заблокированных-ip) +- [ip2net](#ip2net) +- [mdig](#mdig) +- [Фильтрация по именам доменов](#фильтрация-по-именам-доменов) +- [Режим фильтрации autohostlist](#режим-фильтрации-autohostlist) +- [Проверка провайдера](#проверка-провайдера) +- [Выбор параметров](#выбор-параметров) +- [Прикручивание к системе управления фаерволом или своей системе запуска](#прикручивание-к-системе-управления-фаерволом-или-своей-системе-запуска) +- [Вариант custom](#вариант-custom) +- [Простая установка](#простая-установка) +- [Простая установка на openwrt](#простая-установка-на-openwrt) +- [Установка на openwrt в режиме острой нехватки места на диске](#установка-на-openwrt-в-режиме-острой-нехватки-места-на-диске) +- [Android](#android) +- [Мобильные модемы и роутеры huawei](#мобильные-модемы-и-роутеры-huawei) +- [FreeBSD, OpenBSD, MacOS](#freebsd-openbsd-macos) +- [Windows](#windows) +- [Другие прошивки](#другие-прошивки) +- [Обход блокировки через сторонний хост](#обход-блокировки-через-сторонний-хост) +- [Почему стоит вложиться в покупку VPS](#почему-стоит-вложиться-в-покупку-vps) +- [Поддержать разработчика](#поддержать-разработчика) *** ## Зачем это нужно diff --git a/docs/windows.md b/docs/windows.md index 812a7ab..d3d9fb3 100644 --- a/docs/windows.md +++ b/docs/windows.md @@ -11,11 +11,15 @@ tpws в режиме socks можно запускать под более-ме Установить WSL : `dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all` + Скопировать на целевую систему `binaries/x86_64/tpws_wsl.tgz`. + Выполнить : `wsl --import tpws "%USERPROFILE%\tpws" tpws_wsl.tgz` + Запустить : `wsl -d tpws --exec /tpws --uid=1 --no-resolve --socks --bind-addr=127.0.0.1 --port=1080 <параметры_дурения>` + Прописать socks `127.0.0.1:1080` в браузер или другую программу. Удаление : `wsl --unregister tpws` From b28447e79609bda712b4651146b926c56b5fe764 Mon Sep 17 00:00:00 2001 From: 0x201 Date: Mon, 4 Nov 2024 17:33:35 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/windows.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/windows.md b/docs/windows.md index d3d9fb3..cc70658 100644 --- a/docs/windows.md +++ b/docs/windows.md @@ -129,7 +129,8 @@ network locations в win10/11. Кое-что есть в **powershell**. Из cygwin шелла можно посылать winws сигналы через `kill` точно так же, как в `*nix`. Как получить совместимый с windows 7 и winws cygwin : -`curl -O https://www.cygwin.com/setup-x86_64.exe` \ + +`curl -O https://www.cygwin.com/setup-x86_64.exe` `setup-x86_64.exe --allow-unsupported-windows --no-verify --site http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2024/01/30/231215` From 086a0e44080e4629b59eef3bfdb5d2f1f400172f Mon Sep 17 00:00:00 2001 From: 0x201 Date: Mon, 4 Nov 2024 18:48:02 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=98=20=D0=B5=D1=89=D1=91=20=D1=84=D0=B8?= =?UTF-8?q?=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/readme.en.md | 47 +++++++++++++++++++++++++++++++++++++++++++---- docs/readme.md | 5 +++-- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/docs/readme.en.md b/docs/readme.en.md index b88732d..488b76d 100644 --- a/docs/readme.en.md +++ b/docs/readme.en.md @@ -1,8 +1,46 @@ -# Multilanguage README +# zapret v.67 + +# Multilanguage/Мультиязычный README ___ [![en](https://img.shields.io/badge/lang-en-red.svg)](https://github.com/bol-van/zapret/tree/master/docs/readme.en.md) [![ru](https://img.shields.io/badge/lang-ru-green.svg)](https://github.com/bol-van/zapret/tree/master/docs/readme.md) +*** + +- [What is it for](#what-is-it-for) +- [How it works](#how-it-works) +- [How to put this into practice in the linux system](#how-to-put-this-into-practice-in-the-linux-system) +- [ip6tables](#ip6tables) +- [nftables](#nftables) +- [When it will not work](#when-it-will-not-work) +- [nfqws](#nfqws) + - [DPI desync attack](#dpi-desync-attack) + - [DPI desync combos](#dpi-desync-combos) + - [SYNACK mode](#synack-mode) + - [SYNDATA mode](#syndata-mode) + - [Virtual Machines](#virtual-machines) + - [CONNTRACK](#conntrack) + - [Reassemble](#reassemble) + - [UDP support](#udp-support) + - [IP fragmentation](#ip-fragmentation) + - [multiple strategies](#multiple-strategies) +- [tpws](#tpws) + - [multiple strategies](#multiple-strategies-1) +- [Ways to get a list of blocked IP](#ways-to-get-a-list-of-blocked-ip) +- [Domain name filtering](#domain-name-filtering) +- [**autohostlist** mode](#autohostlist-mode) +- [Choosing parameters](#choosing-parameters) +- [Screwing to the firewall control system or your launch system](#screwing-to-the-firewall-control-system-or-your-launch-system) +- [Installation](#installation) + - [Checking ISP](#checking-isp) + - [desktop linux system](#desktop-linux-system) + - [OpenWRT](#openwrt) + - [Android](#android) + - [FreeBSD, OpenBSD, MacOS](#freebsd-openbsd-macos) + - [Windows (WSL)](#windows-wsl) + - [Other devices](#other-devices) +- [Donations](#donations) +*** ## What is it for @@ -155,7 +193,7 @@ follows all standards. For example, we are routed to squid. Connection goes thro ## nfqws This program is a packet modifier and a NFQUEUE queue handler. -For BSD systems there is dvtws. Its built from the same source and has almost the same parameters (see bsd.en.md). +For BSD systems there is dvtws. Its built from the same source and has almost the same parameters (see [bsd.en.md](./bsd.en.md)). nfqws takes the following parameters: ``` @@ -1280,11 +1318,11 @@ Now its possible to run `/data/local/tmp/zapret/tpws` from any app such as taske ### FreeBSD, OpenBSD, MacOS -see docs/bsd.en.md +see [docs/bsd.en.md](./bsd.en.md) ### Windows (WSL) -see docs/windows.en.md +see [docs/windows.en.md](./windows.en.md) ### Other devices @@ -1314,4 +1352,5 @@ If this is the case then run another script in background and add some delay the Are welcome here : USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E + USDT BTC bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve diff --git a/docs/readme.md b/docs/readme.md index d3f398a..c24180d 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,11 +1,12 @@ # zapret v.67 -# Multilanguage README +# Multilanguage/Мультиязычный README [![en](https://img.shields.io/badge/lang-en-red.svg)](./readme.en.md) [![ru](https://img.shields.io/badge/lang-ru-green.svg)](./readme.md) *** + - [Зачем это нужно](#зачем-это-нужно) - [Быстрый старт](#быстрый-старт) - [Как это работает](#как-это-работает) @@ -2169,7 +2170,7 @@ VPS можно прибрести в множестве мест. Существ ## Поддержать разработчика -[Реквизиты](https://github.com/bol-van/zapret/issues/590): +Реквизиты : USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E From 773da6383b8809d03b677e25c587dbe12d022aad Mon Sep 17 00:00:00 2001 From: bol-van Date: Tue, 5 Nov 2024 16:09:53 +0300 Subject: [PATCH 5/5] doc works --- docs/quick_start_windows.md | 5 +- docs/readme.md | 103 ++++++++++++++++++------------------ 2 files changed, 52 insertions(+), 56 deletions(-) diff --git a/docs/quick_start_windows.md b/docs/quick_start_windows.md index c113a74..dce9a47 100644 --- a/docs/quick_start_windows.md +++ b/docs/quick_start_windows.md @@ -6,7 +6,7 @@ > Вы должны уметь работать с консолью windows и иметь минимальные навыки обращения с командными файлами `bat`, `cmd`. > Если грамотность отсутствует и возникает куча _"как?"_ на базовых вещах, значит эта программа не для вас. > Разработчик не будет отвечать на вопросы из серии школы компьютерной грамотности. -> Если вы все-таки хотите продолжать, задавайте вопросы в дискуссиях]на github или на форумах. +> Если вы все-таки хотите продолжать, задавайте вопросы в дискуссиях на github или на форумах. > Возможно, кто-то вам поможет. Но не надо писать issue на github. Они будут закрываться сразу. ## Немного разъяснений @@ -32,9 +32,6 @@ _"Совсем ничего не могу, все очень сложно, да 1) Скачайте и распакуйте архив https://github.com/bol-van/zapret-win-bundle/archive/refs/heads/master.zip. 2) Запустите `zapret-winws/preset_russia.cmd` от имени администратора. Возможно, заведется сразу. -> [!TIP] -> Этот вариант похож на `2_any_country.cmd` из [_GoodbyeDPI_](https://github.com/ValdikSS/GoodbyeDPI). - То же самое с ограничителем по автоматически создаваемому хост-листу `preset_russia_autohostlist.cmd`. Что такое `autohostlist` - читайте [readme.md](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. Сначала не будет, но надо пытаться много раз, и тогда сработает, а дальше будет всегда срабатывать. diff --git a/docs/readme.md b/docs/readme.md index c24180d..bfbca28 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,53 +1,53 @@ # zapret v.67 -# Multilanguage/Мультиязычный README +# Multilanguage README [![en](https://img.shields.io/badge/lang-en-red.svg)](./readme.en.md) [![ru](https://img.shields.io/badge/lang-ru-green.svg)](./readme.md) *** -- [Зачем это нужно](#зачем-это-нужно) -- [Быстрый старт](#быстрый-старт) -- [Как это работает](#как-это-работает) -- [Что сейчас происходит в России](#что-сейчас-происходит-в-россии) -- [Как это реализовать на практике в системе linux](#как-это-реализовать-на-практике-в-системе-linux) -- [Особенности применения ip6tables](#особенности-применения-ip6tables) -- [Особенности применения nftables](#особенности-применения-nftables) -- [Когда это работать не будет](#когда-это-работать-не-будет) -- [nfqws](#nfqws) - - [АТАКА ДЕСИНХРОНИЗАЦИИ DPI](#атака-десинхронизации-dpi) - - [КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ](#комбинирование-методов-десинхронизации) - - [РЕЖИМ SYNACK](#режим-synack) - - [РЕЖИМ SYNDATA](#режим-syndata) - - [ВИРТУАЛЬНЫЕ МАШИНЫ](#виртуальные-машины) - - [CONNTRACK](#conntrack) - - [РЕАССЕМБЛИНГ](#реассемблинг) - - [ПОДДЕРЖКА UDP](#поддержка-udp) - - [IP ФРАГМЕНТАЦИЯ](#ip-фрагментация) - - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии) -- [tpws](#tpws) - - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии-1) -- [Способы получения списка заблокированных IP](#способы-получения-списка-заблокированных-ip) -- [ip2net](#ip2net) -- [mdig](#mdig) -- [Фильтрация по именам доменов](#фильтрация-по-именам-доменов) -- [Режим фильтрации autohostlist](#режим-фильтрации-autohostlist) -- [Проверка провайдера](#проверка-провайдера) -- [Выбор параметров](#выбор-параметров) -- [Прикручивание к системе управления фаерволом или своей системе запуска](#прикручивание-к-системе-управления-фаерволом-или-своей-системе-запуска) -- [Вариант custom](#вариант-custom) -- [Простая установка](#простая-установка) -- [Простая установка на openwrt](#простая-установка-на-openwrt) -- [Установка на openwrt в режиме острой нехватки места на диске](#установка-на-openwrt-в-режиме-острой-нехватки-места-на-диске) -- [Android](#android) -- [Мобильные модемы и роутеры huawei](#мобильные-модемы-и-роутеры-huawei) -- [FreeBSD, OpenBSD, MacOS](#freebsd-openbsd-macos) -- [Windows](#windows) -- [Другие прошивки](#другие-прошивки) -- [Обход блокировки через сторонний хост](#обход-блокировки-через-сторонний-хост) -- [Почему стоит вложиться в покупку VPS](#почему-стоит-вложиться-в-покупку-vps) -- [Поддержать разработчика](#поддержать-разработчика) + - [Зачем это нужно](#зачем-это-нужно) + - [Быстрый старт](#быстрый-старт) + - [Как это работает](#как-это-работает) + - [Что сейчас происходит в России](#что-сейчас-происходит-в-россии) + - [Как это реализовать на практике в системе linux](#как-это-реализовать-на-практике-в-системе-linux) + - [Особенности применения ip6tables](#особенности-применения-ip6tables) + - [Особенности применения nftables](#особенности-применения-nftables) + - [Когда это работать не будет](#когда-это-работать-не-будет) + - [nfqws](#nfqws) + - [АТАКА ДЕСИНХРОНИЗАЦИИ DPI](#атака-десинхронизации-dpi) + - [КОМБИНИРОВАНИЕ МЕТОДОВ ДЕСИНХРОНИЗАЦИИ](#комбинирование-методов-десинхронизации) + - [РЕЖИМ SYNACK](#режим-synack) + - [РЕЖИМ SYNDATA](#режим-syndata) + - [ВИРТУАЛЬНЫЕ МАШИНЫ](#виртуальные-машины) + - [CONNTRACK](#conntrack) + - [РЕАССЕМБЛИНГ](#реассемблинг) + - [ПОДДЕРЖКА UDP](#поддержка-udp) + - [IP ФРАГМЕНТАЦИЯ](#ip-фрагментация) + - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии) + - [tpws](#tpws) + - [МНОЖЕСТВЕННЫЕ СТРАТЕГИИ](#множественные-стратегии-1) + - [Способы получения списка заблокированных IP](#способы-получения-списка-заблокированных-ip) + - [ip2net](#ip2net) + - [mdig](#mdig) + - [Фильтрация по именам доменов](#фильтрация-по-именам-доменов) + - [Режим фильтрации autohostlist](#режим-фильтрации-autohostlist) + - [Проверка провайдера](#проверка-провайдера) + - [Выбор параметров](#выбор-параметров) + - [Прикручивание к системе управления фаерволом или своей системе запуска](#прикручивание-к-системе-управления-фаерволом-или-своей-системе-запуска) + - [Вариант custom](#вариант-custom) + - [Простая установка](#простая-установка) + - [Простая установка на openwrt](#простая-установка-на-openwrt) + - [Установка на openwrt в режиме острой нехватки места на диске](#установка-на-openwrt-в-режиме-острой-нехватки-места-на-диске) + - [Android](#android) + - [Мобильные модемы и роутеры huawei](#мобильные-модемы-и-роутеры-huawei) + - [FreeBSD, OpenBSD, MacOS](#freebsd-openbsd-macos) + - [Windows](#windows) + - [Другие прошивки](#другие-прошивки) + - [Обход блокировки через сторонний хост](#обход-блокировки-через-сторонний-хост) + - [Почему стоит вложиться в покупку VPS](#почему-стоит-вложиться-в-покупку-vps) + - [Поддержать разработчика](#поддержать-разработчика) *** ## Зачем это нужно @@ -305,7 +305,7 @@ dvtws, собираемый из тех же исходников (см. [bsd.tx --new ; начало новой стратегии (новый профиль) --filter-l3=ipv4|ipv6 ; фильтр версии ip для текущей стратегии --filter-tcp=[~]port1[-port2]|* ; фильтр портов tcp для текущей стратегии. ~ означает инверсию. установка фильтра tcp и неустановка фильтра udp запрещает udp. поддерживается список через запятую. ---filter-udp=[~]port1[-port2]|* ; фильтр портов udp для текущей стратегии. ~ означает инверсию. установка фильтра udp и неустановка фильтра tcp запрещает udp. поддерживается список через запятую. +--filter-udp=[~]port1[-port2]|* ; фильтр портов udp для текущей стратегии. ~ означает инверсию. установка фильтра udp и неустановка фильтра tcp запрещает tcp. поддерживается список через запятую. --filter-l7=[http|tls|quic|wireguard|dht|unknown] ; фильтр протокола L6-L7. поддерживается несколько значений через запятую. --ipset= ; включающий ip list. на каждой строчке ip или cidr ipv4 или ipv6. поддерживается множество листов и gzip. перечитка автоматическая. --ipset-exclude= ; исключающий ip list. на каждой строчке ip или cidr ipv4 или ipv6. поддерживается множество листов и gzip. перечитка автоматическая. @@ -1533,12 +1533,12 @@ NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) NFQWS_UDP_PKT_IN=0 ``` -Есть трафик, исходящий сеанс для которого необходимо перенаправлять весь без ограничителей -типичное применение - поддержка http keepalives на stateless DPI -это существенно нагружает процессор. использовать только если понимаете зачем. чаще всего это не нужно. -входящий трафик ограничивается по connbytes через параметры PKT_IN -задать порты для перенаправления на nfqws без connbytes ограничителя -если указываете здесь какие-то порты, желательно их убрать из версии с connbytes ограничителем +***Задать порты для перенаправления на nfqws без connbytes ограничителя***\ +Есть трафик, исходящий сеанс для которого необходимо перенаправлять весь без ограничителей. +Типичное применение - поддержка http keepalives на stateless DPI. +Это существенно нагружает процессор. Использовать только если понимаете зачем. Чаще всего это не нужно. +Входящий трафик ограничивается по connbytes через параметры PKT_IN. +Если указываете здесь какие-то порты, желательно их убрать из версии с connbytes ограничителем ``` NFQWS_PORTS_TCP_KEEPALIVE=80 NFQWS_PORTS_UDP_KEEPALIVE= @@ -2058,7 +2058,7 @@ curl: (7) Failed to connect to www.ru port 80: Host is unreachable ## Windows -Описано в [docs/windows.txt](./windows.txt) +Описано в [docs/windows.md](./windows.md) ## Другие прошивки @@ -2170,8 +2170,7 @@ VPS можно прибрести в множестве мест. Существ ## Поддержать разработчика -Реквизиты : +[Реквизиты](https://github.com/bol-van/zapret/issues/590): USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E - USDT BTC bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve