mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-11 17:29:16 +05:00
docs: windows.txt change encoding to UTF8
This commit is contained in:
parent
92c6ccf38f
commit
45913cc2cd
160
docs/windows.txt
160
docs/windows.txt
@ -1,117 +1,117 @@
|
|||||||
tpws
|
tpws
|
||||||
----
|
----
|
||||||
|
|
||||||
Запуск tpws возможен только в Linux варианте под WSL.
|
Запуск tpws возможен только в Linux варианте под WSL.
|
||||||
Нативного варианта под Windows нет, поскольку он использует epoll, которого под windows не существует.
|
Нативного варианта под Windows нет, поскольку он использует epoll, которого под windows не существует.
|
||||||
|
|
||||||
tpws в режиме socks можно запускать под более-менее современными билдами windows 10 и windows server
|
tpws в режиме socks можно запускать под более-менее современными билдами windows 10 и windows server
|
||||||
с установленным WSL. Совсем не обязательно устанавливать дистрибутив убунту, как вам напишут почти в каждой
|
с установленным WSL. Совсем не обязательно устанавливать дистрибутив убунту, как вам напишут почти в каждой
|
||||||
статье про WSL, которую вы найдете в сети. tpws - статический бинарик, ему дистрибутив не нужен.
|
статье про WSL, которую вы найдете в сети. tpws - статический бинарик, ему дистрибутив не нужен.
|
||||||
|
|
||||||
Установить WSL : dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
|
Установить WSL : dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
|
||||||
Скопировать на целевую систему binaries/x86_64/tpws_wsl.tgz.
|
Скопировать на целевую систему binaries/x86_64/tpws_wsl.tgz.
|
||||||
Выполнить : wsl --import tpws "%USERPROFILE%\tpws" 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 <параметры_дурения>
|
Запустить : wsl -d tpws --exec /tpws --uid=1 --no-resolve --socks --bind-addr=127.0.0.1 --port=1080 <параметры_дурения>
|
||||||
Прописать socks 127.0.0.1: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.
|
Не работают функции --oob и --mss из-за ограничений реализации WSL.
|
||||||
--disorder не работает из-за особенностей tcp/ip стека windows.
|
--disorder не работает из-за особенностей tcp/ip стека windows.
|
||||||
Может не срабатывать детект RST в autohostlist.
|
Может не срабатывать детект RST в autohostlist.
|
||||||
WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться --nosplice.
|
WSL может глючить со splice, приводя к зацикливанию процесса. Может потребоваться --nosplice.
|
||||||
|
|
||||||
|
|
||||||
winws
|
winws
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Это вариант пакетного фильтра nfqws для Windows, построенный на базе windivert.
|
Это вариант пакетного фильтра nfqws для Windows, построенный на базе windivert.
|
||||||
Все функции работоспособны, однако функционал ipset отсутствует. Фильтры по большому количеству IP адресов невозможны.
|
Все функции работоспособны, однако функционал ipset отсутствует. Фильтры по большому количеству IP адресов невозможны.
|
||||||
Работа с проходящим трафиком, например в случае "расшаривания" соединения, не проверялась и не гарантируется.
|
Работа с проходящим трафиком, например в случае "расшаривания" соединения, не проверялась и не гарантируется.
|
||||||
Для работы с windivert требуются права администратора.
|
Для работы с windivert требуются права администратора.
|
||||||
Специфические для unix параметры, такие как --uid, --user и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws.
|
Специфические для unix параметры, такие как --uid, --user и тд, исключены. Все остальные параметры аналогичны nfqws и dvtws.
|
||||||
|
|
||||||
Работа с пакетным фильтром основана на двух действиях.
|
Работа с пакетным фильтром основана на двух действиях.
|
||||||
Первое - выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode.
|
Первое - выделение перенаправляемого трафика в режиме ядра и передача его пакетному фильтру в user mode.
|
||||||
Второе - собственно обработка перенаправленных пакетов в пакетном фильтре.
|
Второе - собственно обработка перенаправленных пакетов в пакетном фильтре.
|
||||||
|
|
||||||
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw.
|
В windows отсутствуют встроенные средства для перенаправления трафика, такие как iptables, nftables, pf или ipfw.
|
||||||
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным
|
Поэтому используется сторонний драйвер ядра windivert. Он работает, начиная с windows 7. На системах с включенным
|
||||||
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning.
|
secure boot могут быть проблемы из-за подписи драйвера. В этом случае отключите secureboot или включите режим testsigning.
|
||||||
На windows 7 требуются обновления. На старых необновленных системах может быть ошибка проверки подписи драйвера.
|
На windows 7 требуются обновления. На старых необновленных системах может быть ошибка проверки подписи драйвера.
|
||||||
Требования к патчам точно такие же, как и у GoodbyDPI.
|
Требования к патчам точно такие же, как и у GoodbyDPI.
|
||||||
|
|
||||||
Задача iptables в winws решается внутренними средствами через фильтры windivert.
|
Задача iptables в winws решается внутренними средствами через фильтры windivert.
|
||||||
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark.
|
У windivert существует собственный язык фильтров, похожий на язык фильтров wireshark.
|
||||||
Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language
|
Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language
|
||||||
Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров.
|
Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров.
|
||||||
|
|
||||||
--wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6.
|
--wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6.
|
||||||
--wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание
|
--wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание
|
||||||
--wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание
|
--wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание
|
||||||
--wf-raw=<filter>|@<filename> ; задать напрямую фильтр windivert из параметра или из файла. имени файла предшествует символ @.
|
--wf-raw=<filter>|@<filename> ; задать напрямую фильтр windivert из параметра или из файла. имени файла предшествует символ @.
|
||||||
--wf-save=<filename> ; сохранить сконструированный фильтр windivert в файл для последующей правки вручную
|
--wf-save=<filename> ; сохранить сконструированный фильтр windivert в файл для последующей правки вручную
|
||||||
|
|
||||||
Параметры --wf-l3, --wf-tcp, --wf-udp могут брать несколько значений через запятую.
|
Параметры --wf-l3, --wf-tcp, --wf-udp могут брать несколько значений через запятую.
|
||||||
|
|
||||||
Конструктор фильтров автоматически включает входящие tcp пакеты с tcp synack и tcp rst для корректной работы функций
|
Конструктор фильтров автоматически включает входящие tcp пакеты с tcp synack и tcp rst для корректной работы функций
|
||||||
autottl и autohostlist. При включении autohostlist так же перенаправляются пакеты данных с http redirect с кодами 302 и 307.
|
autottl и autohostlist. При включении autohostlist так же перенаправляются пакеты данных с http redirect с кодами 302 и 307.
|
||||||
Всегда добавляется фильтр на исключение не-интернет адресов ipv4 и ipv6.
|
Всегда добавляется фильтр на исключение не-интернет адресов ipv4 и ipv6.
|
||||||
Для сложных нестандартных сценариев могут потребоваться свои фильтры. Логично будет начать со стандартного шаблона,
|
Для сложных нестандартных сценариев могут потребоваться свои фильтры. Логично будет начать со стандартного шаблона,
|
||||||
сохраненного через --wf-save. Нужно править файл и подсовывать его в параметре --wf-raw. Максимальный размер фильтра - 8 Kb.
|
сохраненного через --wf-save. Нужно править файл и подсовывать его в параметре --wf-raw. Максимальный размер фильтра - 8 Kb.
|
||||||
|
|
||||||
Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры.
|
Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры.
|
||||||
|
|
||||||
В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin.
|
В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin.
|
||||||
Например, /cygdrive/c/Users/vasya/zapret.
|
Например, /cygdrive/c/Users/vasya/zapret.
|
||||||
Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM.
|
Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM.
|
||||||
Для русского языка это 866. Пути с пробелами нужно брать в кавычки.
|
Для русского языка это 866. Пути с пробелами нужно брать в кавычки.
|
||||||
|
|
||||||
Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится nfqws, находится
|
Существует неочевидный момент, каcаемый запуска winws из cygwin шелла. Если в директории, где находится nfqws, находится
|
||||||
копия cygwin1.dll, winws не запустится. Поэтому в binaries/win64 существует директория zapret-winws, содержащая полный
|
копия cygwin1.dll, winws не запустится. Поэтому в binaries/win64 существует директория zapret-winws, содержащая полный
|
||||||
комплект для запуска без cygwin. Его вы и берете для повседневного использования.
|
комплект для запуска без cygwin. Его вы и берете для повседневного использования.
|
||||||
Если нужен запуск под cygwin, то следует запускать из binaries/win64. Это нужно для работы blockcheck.
|
Если нужен запуск под cygwin, то следует запускать из binaries/win64. Это нужно для работы blockcheck.
|
||||||
Из cygwin шелла можно посылать winws сигналы через kill точно так же, как в *nix.
|
Из cygwin шелла можно посылать winws сигналы через kill точно так же, как в *nix.
|
||||||
|
|
||||||
Как получить совместимый с windows 7 и winws cygwin :
|
Как получить совместимый с 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
|
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.
|
Для сборки из исходников требуется gcc-core,make,zlib-devel.
|
||||||
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws.
|
winws требует cygwin1.dll, windivert.dll, windivert64.sys. Их можно взять из binaries/win64/zapret-winws.
|
||||||
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами.
|
Версию для 32-битных x86 windows собрать можно, но такие системы уже уходят в прошлое, поэтому если надо - собирайте сами.
|
||||||
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2.
|
32-битный windivert можно взять с сайта разработчика. Требуется версия 2.2.2.
|
||||||
Для arm64 систем нет подписанного драйвера windivert. Можно самому собрать windivert, но работать он будет только
|
Для arm64 систем нет подписанного драйвера windivert. Можно самому собрать windivert, но работать он будет только
|
||||||
с отключенной подписью драйверов.
|
с отключенной подписью драйверов.
|
||||||
|
|
||||||
|
|
||||||
blockcheck
|
blockcheck
|
||||||
----------
|
----------
|
||||||
|
|
||||||
blockcheck.sh написан на posix shell и требует некоторых стандартных утилит posix. В windows, естественно, этого нет.
|
blockcheck.sh написан на posix shell и требует некоторых стандартных утилит posix. В windows, естественно, этого нет.
|
||||||
Потому просто так запустить blockcheck.sh невозможно.
|
Потому просто так запустить blockcheck.sh невозможно.
|
||||||
Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе.
|
Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе.
|
||||||
Следует запустить от имени администратора cygwin shell через cygwin.bat.
|
Следует запустить от имени администратора cygwin shell через cygwin.bat.
|
||||||
В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x.
|
В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x.
|
||||||
Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh.
|
Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh.
|
||||||
WSL использовать нельзя, это не то же самое.
|
WSL использовать нельзя, это не то же самое.
|
||||||
|
|
||||||
cygwin для обычной работы winws не нужен. Разве что вы хотите посылать winws SIGHUP для перечитки листов без перезапуска.
|
cygwin для обычной работы winws не нужен. Разве что вы хотите посылать winws SIGHUP для перечитки листов без перезапуска.
|
||||||
|
|
||||||
|
|
||||||
автозапуск winws
|
автозапуск winws
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
Для запуска winws вместе с windows воспользуйтесь планировщиком задач windows.
|
Для запуска winws вместе с windows воспользуйтесь планировщиком задач windows.
|
||||||
Удобнее всего создавать задачи и управлять ими через консольную программу schtasks.
|
Удобнее всего создавать задачи и управлять ими через консольную программу schtasks.
|
||||||
В директории binaries/win64/winws подготовлены файлы task_*.cmd .
|
В директории binaries/win64/winws подготовлены файлы task_*.cmd .
|
||||||
В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной %WINWS1%.
|
В них реализовано создание, удаление, старт и стоп одной копии процесса winws с параметрами из переменной %WINWS1%.
|
||||||
Исправьте параметры на нужную вам стратегию. Если для разных фильтров применяется разная стратегия, размножьте код
|
Исправьте параметры на нужную вам стратегию. Если для разных фильтров применяется разная стратегия, размножьте код
|
||||||
для задач winws1,winws2,winws3,...
|
для задач winws1,winws2,winws3,...
|
||||||
|
|
||||||
Все батники требуется запускать от имени администратора.
|
Все батники требуется запускать от имени администратора.
|
||||||
|
|
||||||
Управлять задачами можно так же из графической программы управления планировщиком taskschd.msc
|
Управлять задачами можно так же из графической программы управления планировщиком taskschd.msc
|
||||||
|
Loading…
Reference in New Issue
Block a user