mirror of https://github.com/bol-van/zapret/
1 changed files with 90 additions and 90 deletions
@ -1,117 +1,117 @@ |
|||
tpws |
|||
tpws |
|||
---- |
|||
|
|||
Запуск tpws возможен только в Linux варианте под WSL. |
|||
Нативного варианта под Windows нет, поскольку он использует epoll, которого под windows не существует. |
|||
Запуск tpws возможен только в Linux варианте под WSL. |
|||
Нативного варианта под Windows нет, поскольку он использует epoll, которого под windows не существует. |
|||
|
|||
tpws в режиме socks можно запускать под более-менее современными билдами windows 10 и windows server |
|||
с установленным WSL. Совсем не обязательно устанавливать дистрибутив убунту, как вам напишут почти в каждой |
|||
статье про WSL, которую вы найдете в сети. tpws - статический бинарик, ему дистрибутив не нужен. |
|||
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). |
|||
Проверено на windows 10 build 19041 (20.04). |
|||
|
|||
Не работают функции --oob и --mss из-за ограничений реализации WSL. |
|||
--disorder не работает из-за особенностей tcp/ip стека windows. |
|||
Может не срабатывать детект RST в autohostlist. |
|||
WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться --nosplice. |
|||
Не работают функции --oob и --mss из-за ограничений реализации WSL. |
|||
--disorder не работает из-за особенностей tcp/ip стека windows. |
|||
Может не срабатывать детект RST в autohostlist. |
|||
WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться --nosplice. |
|||
|
|||
|
|||
winws |
|||
----- |
|||
|
|||
Это вариант пакетного фильтра nfqws для Windows, построенный на базе windivert. |
|||
Все функции работоспособны, однако функционал ipset отсутствует. Фильтры по большому количеству IP адресов невозможны. |
|||
Работа с проходящим трафиком, например в случае "расшаривания" соединения, не проверялась и не гарантируется. |
|||
Для работы с windivert требуются права администратора. |
|||
Специфические для unix параметры, такие как --uid, --user и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws. |
|||
|
|||
Работа с пакетным фильтром основана на двух действиях. |
|||
Первое - выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode. |
|||
Второе - собственно обработка перенаправленных пакетов в пакетном фильтре. |
|||
|
|||
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw. |
|||
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным |
|||
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning. |
|||
На windows 7 требуются обновления. На старых необновленных системах может быть ошибка проверки подписи драйвера. |
|||
Требования к патчам точно такие же, как и у GoodbyDPI. |
|||
|
|||
Задача iptables в winws решается внутренними средствами через фильтры windivert. |
|||
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark. |
|||
Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language |
|||
Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров. |
|||
|
|||
--wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6. |
|||
--wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание |
|||
--wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание |
|||
--wf-raw=<filter>|@<filename> ; задать напрямую фильтр windivert из параметра или из файла. имени файла предшествует символ @. |
|||
--wf-save=<filename> ; сохранить сконструированный фильтр windivert в файл для последующей правки вручную |
|||
|
|||
Параметры --wf-l3, --wf-tcp, --wf-udp могут брать несколько значений через запятую. |
|||
|
|||
Конструктор фильтров автоматически включает входящие tcp пакеты с tcp synack и tcp rst для корректной работы функций |
|||
autottl и autohostlist. При включении autohostlist так же перенаправляются пакеты данных с http redirect с кодами 302 и 307. |
|||
Всегда добавляется фильтр на исключение не-интернет адресов ipv4 и ipv6. |
|||
Для сложных нестандартных сценариев могут потребоваться свои фильтры. Логично будет начать со стандартного шаблона, |
|||
сохраненного через --wf-save. Нужно править файл и подсовывать его в параметре --wf-raw. Максимальный размер фильтра - 8 Kb. |
|||
|
|||
Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры. |
|||
|
|||
В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin. |
|||
Например, /cygdrive/c/Users/vasya/zapret. |
|||
Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM. |
|||
Для русского языка это 866. Пути с пробелами нужно брать в кавычки. |
|||
|
|||
Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится nfqws, находится |
|||
копия cygwin1.dll, winws не запустится. Поэтому в binaries/win64 существует директория zapret-winws, содержащая полный |
|||
комплект для запуска без cygwin. Его вы и берете для повседневного использования. |
|||
Если нужен запуск под cygwin, то следует запускать из binaries/win64. Это нужно для работы blockcheck. |
|||
Из cygwin шелла можно посылать winws сигналы через kill точно так же, как в *nix. |
|||
|
|||
Как получить совместимый с windows 7 и winws cygwin : |
|||
Это вариант пакетного фильтра nfqws для Windows, построенный на базе windivert. |
|||
Все функции работоспособны, однако функционал ipset отсутствует. Фильтры по большому количеству IP адресов невозможны. |
|||
Работа с проходящим трафиком, например в случае "расшаривания" соединения, не проверялась и не гарантируется. |
|||
Для работы с windivert требуются права администратора. |
|||
Специфические для unix параметры, такие как --uid, --user и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws. |
|||
|
|||
Работа с пакетным фильтром основана на двух действиях. |
|||
Первое - выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode. |
|||
Второе - собственно обработка перенаправленных пакетов в пакетном фильтре. |
|||
|
|||
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw. |
|||
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным |
|||
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning. |
|||
На windows 7 требуются обновления. На старых необновленных системах может быть ошибка проверки подписи драйвера. |
|||
Требования к патчам точно такие же, как и у GoodbyDPI. |
|||
|
|||
Задача iptables в winws решается внутренними средствами через фильтры windivert. |
|||
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark. |
|||
Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language |
|||
Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров. |
|||
|
|||
--wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6. |
|||
--wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание |
|||
--wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание |
|||
--wf-raw=<filter>|@<filename> ; задать напрямую фильтр windivert из параметра или из файла. имени файла предшествует символ @. |
|||
--wf-save=<filename> ; сохранить сконструированный фильтр windivert в файл для последующей правки вручную |
|||
|
|||
Параметры --wf-l3, --wf-tcp, --wf-udp могут брать несколько значений через запятую. |
|||
|
|||
Конструктор фильтров автоматически включает входящие tcp пакеты с tcp synack и tcp rst для корректной работы функций |
|||
autottl и autohostlist. При включении autohostlist так же перенаправляются пакеты данных с http redirect с кодами 302 и 307. |
|||
Всегда добавляется фильтр на исключение не-интернет адресов ipv4 и ipv6. |
|||
Для сложных нестандартных сценариев могут потребоваться свои фильтры. Логично будет начать со стандартного шаблона, |
|||
сохраненного через --wf-save. Нужно править файл и подсовывать его в параметре --wf-raw. Максимальный размер фильтра - 8 Kb. |
|||
|
|||
Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры. |
|||
|
|||
В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin. |
|||
Например, /cygdrive/c/Users/vasya/zapret. |
|||
Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM. |
|||
Для русского языка это 866. Пути с пробелами нужно брать в кавычки. |
|||
|
|||
Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится nfqws, находится |
|||
копия cygwin1.dll, winws не запустится. Поэтому в binaries/win64 существует директория zapret-winws, содержащая полный |
|||
комплект для запуска без cygwin. Его вы и берете для повседневного использования. |
|||
Если нужен запуск под cygwin, то следует запускать из 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. |
|||
|
|||
Для сборки из исходников требуется gcc-core,make,zlib-devel. |
|||
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws. |
|||
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами. |
|||
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2. |
|||
Для arm64 систем нет подписанного драйвера windivert. Можно самому собрать windivert, но работать он будет только |
|||
с отключенной подписью драйверов. |
|||
Для сборки из исходников требуется gcc-core,make,zlib-devel. |
|||
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws. |
|||
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами. |
|||
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2. |
|||
Для arm64 систем нет подписанного драйвера windivert. Можно самому собрать windivert, но работать он будет только |
|||
с отключенной подписью драйверов. |
|||
|
|||
|
|||
blockcheck |
|||
---------- |
|||
|
|||
blockcheck.sh написан на posix shell и требует некоторых стандартных утилит posix. В windows, естественно, этого нет. |
|||
Потому просто так запустить blockcheck.sh невозможно. |
|||
Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе. |
|||
Следует запустить от имени администратора cygwin shell через cygwin.bat. |
|||
В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x. |
|||
Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh. |
|||
WSL использовать нельзя, это не то же самое. |
|||
blockcheck.sh написан на posix shell и требует некоторых стандартных утилит posix. В windows, естественно, этого нет. |
|||
Потому просто так запустить blockcheck.sh невозможно. |
|||
Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе. |
|||
Следует запустить от имени администратора cygwin shell через cygwin.bat. |
|||
В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x. |
|||
Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh. |
|||
WSL использовать нельзя, это не то же самое. |
|||
|
|||
cygwin для обычной работы winws не нужен. Разве что вы хотите посылать winws SIGHUP для перечитки листов без перезапуска. |
|||
cygwin для обычной работы winws не нужен. Разве что вы хотите посылать winws SIGHUP для перечитки листов без перезапуска. |
|||
|
|||
|
|||
автозапуск winws |
|||
автозапуск winws |
|||
---------------- |
|||
|
|||
Для запуска winws вместе с windows воспользуйтесь планировщиком задач windows. |
|||
Удобнее всего создавать задачи и управлять ими через консольную программу schtasks. |
|||
В директории binaries/win64/winws подготовлены файлы task_*.cmd . |
|||
В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной %WINWS1%. |
|||
Исправьте параметры на нужную вам стратегию. Если для разных фильтров применяется разная стратегия, размножьте код |
|||
для задач winws1,winws2,winws3,... |
|||
Для запуска winws вместе с windows воспользуйтесь планировщиком задач windows. |
|||
Удобнее всего создавать задачи и управлять ими через консольную программу schtasks. |
|||
В директории binaries/win64/winws подготовлены файлы task_*.cmd . |
|||
В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной %WINWS1%. |
|||
Исправьте параметры на нужную вам стратегию. Если для разных фильтров применяется разная стратегия, размножьте код |
|||
для задач winws1,winws2,winws3,... |
|||
|
|||
Все батники требуется запускать от имени администратора. |
|||
Все батники требуется запускать от имени администратора. |
|||
|
|||
Управлять задачами можно так же из графической программы управления планировщиком taskschd.msc |
|||
Управлять задачами можно так же из графической программы управления планировщиком taskschd.msc |
|||
|
Loading…
Reference in new issue