diff --git a/docs/quick_start.md b/docs/quick_start.md index 6b5c08c..46c76dc 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -222,11 +222,6 @@ > В этом примере `wssize` будет применяться всегда к порту tcp `443` вне > зависимости от параметра `MODE_FILTER`. Хостлист будет игнорироваться, > если таковой имеется. К http применять `wssize` вредно и бессмысленно. - > - > Никто не мешает использовать `tpws` для http, `nfqws` для https, либо - > комбинировать действие `nfqws` и `tpws` для одного протокола. В текущем - > варианте скриптов запуска это делается максимально гибко и независимо друг - > от друга. 7. Запустите скрипт облегченной установки - `install_easy.sh` Выберите `nfqws` и/или `tpws`, затем согласитесь на редактирование параметров. Откроется diff --git a/docs/quick_start_windows.md b/docs/quick_start_windows.md index 5868b8a..842eddc 100644 --- a/docs/quick_start_windows.md +++ b/docs/quick_start_windows.md @@ -32,10 +32,10 @@ _"Совсем ничего не могу, все очень сложно, да 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.md](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. -Сначала не будет, но надо пытаться много раз, и тогда сработает, а дальше будет всегда срабатывать. -Остальное не будет ломаться. Использовать только, если первый вариант тоже работает. + > То же самое с ограничителем по автоматически создаваемому хост-листу `preset_russia_autohostlist.cmd`. + > Что такое `autohostlist` - читайте [readme.md](./readme.md). Проще говоря, мы обходим только то, что долго и упорно не хочет открываться. + > Сначала не будет, но надо пытаться много раз, и тогда сработает, а дальше будет всегда срабатывать. + > Остальное не будет ломаться. Использовать только, если первый вариант тоже работает. Не помогла _"таблетка"_ ? Это вовсе не значит, что ничего не получится. Но придется делать по нормальному. @@ -48,13 +48,13 @@ _"Совсем ничего не могу, все очень сложно, да > [!WARNING] > Для 32-битных систем Windows нет готового полного варианта. -На windows 11 arm64 выполните `arm64/install_arm64.cmd` от имени администратора и перезагрузите компьютер. -Читайте [docs/windows.md](./windows.md) - -Имейте в виду, что антивирусы могут плохо реагировать на windivert. -cygwin так же имеет внушительный список несовместимостей с антивирусами, хотя современные антивирусы -более-менее научились с ним дружить. -Если проблема имеет место , используйте исключения. Если не помогает - отключайте антивирус совсем. + > На windows 11 arm64 выполните `arm64/install_arm64.cmd` от имени администратора и перезагрузите компьютер. + > Читайте [docs/windows.md](./windows.md) + > + > Имейте в виду, что антивирусы могут плохо реагировать на windivert. + > cygwin так же имеет внушительный список несовместимостей с антивирусами, хотя современные антивирусы + > более-менее научились с ним дружить. + > Если проблема имеет место , используйте исключения. Если не помогает - отключайте антивирус совсем. 3) Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и сам zapret. @@ -66,13 +66,13 @@ blockcheck перейдет в этом случае на **DoH** _(DNS over HTT Но если вы не настроите решение этой проблемы, обход будет работать только для тех программ, которые сами реализуют механизмы SecureDNS. Для других программ обход работать не будет. -Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов -от провайдера на публичные (`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. -Для остальных систем нужно стороннее решение, работающие по принципу DNS proxy. + > Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов + > от провайдера на публичные (`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. + > Для остальных систем нужно стороннее решение, работающие по принципу DNS proxy. Тут все разжевано как и где это включается : https://hackware.ru/?p=13707 @@ -87,87 +87,87 @@ win11 поддерживает системные DoH из коробки. Он > [!TIP] > В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно. -Необходимо понимать [как работают стратегии](./readme.md/#nfqws). -zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел. - -Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов -с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI, -которые еще и включаются в работу хаотичным образом или образом, зависящим от направления (IP сервера). -blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки. -В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях. -Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель -`--dpi-desync-fooling`, чтобы не сломать сайты на более коротких дистанциях. -_md5sig_ наиболее совместим, но работатет только на linux серверах. -badseq может работать только на https и не работать на http. -Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL -с каждым из этих ограничителей. - -При использовании autottl следует протестировать как можно больше разных доменов. Эта техника -может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах -она стабильна, на третьих полный хаос, и проще отказаться. - -Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска winws -с использованием мультистратегии. Как работают мультистратегии описано в [readme.md](./readme.md). - -Прежде всего вам нужно собрать фильтр перехватываемого трафика. Это делается через параметры -`--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` - + > Необходимо понимать [как работают стратегии](./readme.md/#nfqws). + > zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел. + > + > Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов + > с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI, + > которые еще и включаются в работу хаотичным образом или образом, зависящим от направления (IP сервера). + > blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки. + > В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях. + > Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель + > `--dpi-desync-fooling`, чтобы не сломать сайты на более коротких дистанциях. + > _md5sig_ наиболее совместим, но работатет только на linux серверах. + > badseq может работать только на https и не работать на http. + > Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL + > с каждым из этих ограничителей. + > + > При использовании autottl следует протестировать как можно больше разных доменов. Эта техника + > может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах + > она стабильна, на третьих полный хаос, и проще отказаться. + > + > Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска winws + > с использованием мультистратегии. Как работают мультистратегии описано в [readme.md](./readme.md). + > + > Прежде всего вам нужно собрать фильтр перехватываемого трафика. Это делается через параметры + > `--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` + > > [!WARNING] > Фильтр должен быть минимально необходимым. Перехват лишнего трафика приведет только к бессмысленному расходованию ресурсов процессора и замедлению интернета. - -Если кратко по мультистратегии, то обычно параметры конструируются так : -``` ---filter-udp=443 'параметры для quic' --new ---filter-tcp=80,443 'обьединенные параметры для http и https' -``` - -Или так : -``` ---filter-udp=443 'параметры для quic' --new ---filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https' -``` - -Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так : -``` ---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" -``` - -Но здесь совсем _"копи-пастный"_ вариант. -Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше. - -Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через -параметры `--wf-*` и убрать соответствующие им профили мультистратегии. -tcp 80 - http, tcp 443 - https, udp 443 - quic. - -Если используются методы нулевой фазы десинхронизации (`--mss`, `--wssize`, `--dpi-desync=syndata`) и фильтрация hostlist, -то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мультистратегии, которые получат -управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий. - -``` ---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=443 'параметры для https' --wssize 1:6 --hostlist-auto=d:/users/user/temp/autolist.txt -``` - -В этих примерах wssize будет применяться всегда к порту tcp 443, а хостлист будет игнорироваться. -К http применять wssize вредно и бессмысленно. + > + > Если кратко по мультистратегии, то обычно параметры конструируются так : + > ``` + > --filter-udp=443 'параметры для quic' --new + > --filter-tcp=80,443 'обьединенные параметры для http и https' + > ``` + > + > Или так : + > ``` + > --filter-udp=443 'параметры для quic' --new + > --filter-tcp=80 'параметры для http' --new + > --filter-tcp=443 'параметры для https' + > ``` + > + > Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так : + > ``` + > --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" + > ``` + > + > Но здесь совсем _"копи-пастный"_ вариант. + > Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше. + > + > Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через + > параметры `--wf-*` и убрать соответствующие им профили мультистратегии. + > tcp 80 - http, tcp 443 - https, udp 443 - quic. + > + > Если используются методы нулевой фазы десинхронизации (`--mss`, `--wssize`, `--dpi-desync=syndata`) и фильтрация hostlist, + > то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мультистратегии, которые получат + > управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий. + > + > ``` + > --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=443 'параметры для https' --wssize 1:6 --hostlist-auto=d:/users/user/temp/autolist.txt + > ``` + > + > В этих примерах wssize будет применяться всегда к порту tcp 443, а хостлист будет игнорироваться. + > К http применять wssize вредно и бессмысленно. 7) Протестируйте найденные стратегии на winws. Winws следует брать из zapret-winws. Для этого откройте командную строку windows от имени администратора в директории zapret-winws. @@ -175,20 +175,18 @@ autohostlist профиль приоритетен, поэтому wssize нуж 8) Обеспечьте удобную загрузку обхода блокировок. -Есть 2 варианта. Ручной запуск через ярлык или автоматический при старте системы, вне контекста текущего пользователя. -Последний вариант разделяется на запуск через планировщик задач и через службы windows. - -Если хотите ручной запуск, скопируйте `preset_russia.cmd` в `preset_my.cmd` (`<ваше_название>.cmd`) и адаптируйте его под ваши параметра запуска. -Потом можно создать ярлык на рабочем столе на `preset_my.cmd`. Не забудьте, что требуется запускать от имени администратора. - -Но лучше будет сделать неинтерактивный автоматический запуск вместе с системой. -В zapret-winws есть командные файлы `task_*`, предназначенные для управления задачами планировщика. -Там следует поменять содержимое переменной `WINWS1` на свою стратегию. -Если вы не можете обьединить несколько стратегий для разных протоколов в одну, дублируйте код в каждом из cmd -для поддержки нескольких задач : _winws1_, _winws2_, _winws3_. -После создания задач запустите их. Проверьте, что обход встает после перезагрузки windows. - -Аналогично настраиваются и службы windows. Смотрите `service_*.cmd` + > Есть 2 варианта. Ручной запуск через ярлык или автоматический при старте системы, вне контекста текущего пользователя. + > Последний вариант разделяется на запуск через планировщик задач и через службы windows. + > + > Если хотите ручной запуск, скопируйте `preset_russia.cmd` в `preset_my.cmd` (`<ваше_название>.cmd`) и адаптируйте его под ваши параметра запуска. + > Потом можно создать ярлык на рабочем столе на `preset_my.cmd`. Не забудьте, что требуется запускать от имени администратора. + > + > Но лучше будет сделать неинтерактивный автоматический запуск вместе с системой. + > В zapret-winws есть командные файлы `task_*`, предназначенные для управления задачами планировщика. + > Там следует поменять содержимое переменной `WINWS1` на свои параметры запуска winws. Пути с пробелами нужно экранировать кавычками с обратным слэшем : `\"`. + > После создания задач запустите их. Проверьте, что обход встает после перезагрузки windows. + > + > Аналогично настраиваются и службы windows. Смотрите `service_*.cmd` 9) Если ломаются отдельные незаблокированные ресурсы, нужно пользоваться ограничивающим ipset или хост листом. Читайте основной талмуд [readme.md](./readme.md) ради подробностей.