winws: interface notation x.y. readme : winpaths in cygwin

This commit is contained in:
bol-van 2024-04-27 12:51:49 +03:00
parent 12bd09c140
commit 38311865f9
6 changed files with 13 additions and 8 deletions

Binary file not shown.

View File

@ -0,0 +1 @@
sdf

View File

@ -59,8 +59,6 @@ If you can't find index this way use `winws --debug` to see index there. Subinte
Multiple `winws` processes are allowed. However, it's discouraged to intersect their filters.
Paths are passed in `cygwin` format. Windows drives are mapped to `/cygdrive/x`. For example : `/cygdrive/c/Users/vasya/zapret`.
`Cygwin` shell does not run binaries if their directory has it's own copy of `cygwin1.dll`.
That's why exists separate standalone version in `binaries/win64/zapret-tpws`.
`Cygwin` is required for `blockcheck.sh` support but `winws` itself can be run standalone without cygwin.
@ -86,6 +84,11 @@ Windows does not have them. To execute `blockcheck.sh` use `cygwin` command prom
It's not possible to use `WSL`. It's not the same as `cygwin`.
First run once `install_bin.sh` then `blockcheck.sh`.
Backslashes in windows paths shoud be doubled. Or use cygwin path notation.
```
cd "C:\\Users\\vasya"
cd "/cygdrive/c/Users/vasya"
```
`Cygwin` is required only for `blockcheck.sh`. Standalone `winws` can be run without it.

View File

@ -48,7 +48,7 @@ secure boot могут быть проблемы из-за подписи дра
Документация по фильтрам windivert : https://reqrypt.org/windivert-doc.html#filter_language
Чтобы не писать сложные фильтры вручную, предусмотрены различные упрощенные варианты автоматического построения фильтров.
--wf-iface=<int>[:<int>] ; числовые индексы интерфейса и суб-интерфейса
--wf-iface=<int>[.<int>] ; числовые индексы интерфейса и суб-интерфейса
--wf-l3=ipv4|ipv6 ; фильтр L3 протоколов. по умолчанию включены ipv4 и ipv6.
--wf-tcp=[~]port1[-port2] ; фильтр портов для tcp. ~ означает отрицание
--wf-udp=[~]port1[-port2] ; фильтр портов для udp. ~ означает отрицание
@ -69,8 +69,6 @@ autottl и autohostlist. При включении autohostlist так же пе
Можно запускать несколько процессов winws с разными стратегиями. Однако, не следует делать пересекающиеся фильтры.
В параметрах, берущих пути к файлам, они прописываются не в формате windows, а формате cygwin.
Например, /cygdrive/c/Users/vasya/zapret.
Если в путях присутствуют национальные символы, то при вызове winws из cmd или bat кодировку нужно использовать OEM.
Для русского языка это 866. Пути с пробелами нужно брать в кавычки.
@ -101,7 +99,10 @@ blockcheck.sh написан на posix shell и требует некоторы
Потому просто так запустить blockcheck.sh невозможно.
Для этого требуется скачать и установить cygwin так , как описано в предыдущем разделе.
Следует запустить от имени администратора cygwin shell через cygwin.bat.
В нем нужно пройти в директорию с zapret. Буква диска windows X: отображается как /cygdrive/x.
В нем нужно пройти в директорию с zapret.
Обратные слэши путей windows нужно удваивать, либо использовать отображение на unix path.
Корректный вариант 1 : cd "C:\\Users\\vasya"
Корректный вариант 2 : cd "/cygdrive/c/Users/vasya"
Далее все как в *nix : 1 раз ./install_bin.sh , затем ./blockcheck.sh.
WSL использовать нельзя, это не то же самое.

View File

@ -732,7 +732,7 @@ static void exithelp(void)
" --ctrack-timeouts=S:E:F[:U]\t\t\t; internal conntrack timeouts for TCP SYN, ESTABLISHED, FIN stages, UDP timeout. default %u:%u:%u:%u\n"
#ifdef __CYGWIN__
"\nWINDIVERT FILTER:\n"
" --wf-iface=<int>[:<int>]\t\t\t; numeric network interface and subinterface indexes\n"
" --wf-iface=<int>[.<int>]\t\t\t; numeric network interface and subinterface indexes\n"
" --wf-l3=ipv4|ipv6\t\t\t\t; L3 protocol filter. multiple comma separated values allowed.\n"
" --wf-tcp=[~]port1[-port2]\t\t\t; TCP port filter. ~ means negation. multiple comma separated values allowed.\n"
" --wf-udp=[~]port1[-port2]\t\t\t; UDP port filter. ~ means negation. multiple comma separated values allowed.\n"
@ -1385,7 +1385,7 @@ int main(int argc, char **argv)
break;
#elif defined(__CYGWIN__)
case 48: /* wf-iface */
if (!sscanf(optarg,"%u:%u",&IfIdx,&SubIfIdx))
if (!sscanf(optarg,"%u.%u",&IfIdx,&SubIfIdx))
{
fprintf(stderr, "bad value for --wf-iface\n");
exit_clean(1);