docs: windows.txt change encoding to UTF8

This commit is contained in:
bol-van 2024-04-26 22:03:53 +03:00
parent 92c6ccf38f
commit 45913cc2cd

View File

@ -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