bol-van / zapret

DPI bypass multi platform
7.74k stars 598 forks source link

blockcheck учитывание SKIP при проверке наличия бинарников #647

Closed EnergoStalin closed 2 hours ago

EnergoStalin commented 2 hours ago

Проблема в том что из AUR пакета можно поставить только nfqws из за чего условие

[ "$UNAME" = Darwin -o -x "$PKTWS" ]

Будет false и блокчек упадёт. Я обычно запускаю его из враппера который заранее настраивает его где и пытаюсь устанавливать SKIP_TPWS.

Предлагаю скипать проверку бинарников если соответствующая SKIP переменная установлена в 1.

Патч ```diff diff --git a/blockcheck.sh b/blockcheck.sh index eb91336..b4bc122 100755 --- a/blockcheck.sh +++ b/blockcheck.sh @@ -387,7 +387,7 @@ check_prerequisites() { echo \* checking prerequisites - [ "$UNAME" = Darwin -o -x "$PKTWS" ] && [ "$UNAME" = CYGWIN -o -x "$TPWS" ] && [ -x "$MDIG" ] || { + [ $SKIP_PKTWS = 1 -o "$UNAME" = Darwin -o -x "$PKTWS" ] && [ $SKIP_TPWS = 1 -o "$UNAME" = CYGWIN -o -x "$TPWS" ] && [ $SKIP_DNSCHECK = 1 -o -x "$MDIG" ] || { local target case $UNAME in Darwin) ```
bol-van commented 2 hours ago

Там как-то хитро опакетили его в нестандартных директориях с прикруткой каких-то переменных ?

bol-van commented 2 hours ago

https://github.com/bol-van/zapret/commit/c0cb2c43bf067d4ee8ad4dbdac3ac6d4a949db04

EnergoStalin commented 2 hours ago

Нет он как и полагается пакетится в /opt/zapret. Враппер для запуска блокчека уже лично моя прикрутка. Хотелось бы конечно что бы и промпты можно было скипать таким способом но пока так.

Для рефернса выглядит он вот так ```sh #!/bin/sh export SKIP_TPWS=1 function host() { for fp in "$@"; do cat $fp | tr '\n' ' ' done } # FILES=$(find ipset -not -name 'ipset*' -and -name '*.txt') # export DOMAINS=$(host $FILES) export DOMAINS=" $(host ipset/youtube.txt) " exec sh ./blockcheck.sh ```

Лежит рядом с blockcheck как можно понять по exec

EnergoStalin commented 2 hours ago

Единтсвенная хитрость что его на субпакеты разбили.

zapret-common-git zapret-nfqws-git zapret-tpws-git zapret-docs-git

bol-van commented 2 hours ago

Сделать batch режим вместо диалогового как опцию - хорошая идея

EnergoStalin commented 1 hour ago

Определённо ещё и логи сохранять в файлик c контролилуемым уровнем подробности. Нерабочие стратеги в подборе для себя только глаза мозолят а через grep даже не отфильтруешь там на разных строчках стратегия и результат. Можно попробовать через escape sequence затирать строчку в таком случае переходя на новую только когда AVAILABLE для улучшения UX.

sudo sh ./bwrap.sh | tee z.log && poweroff

А то я запустил сегодня на ночь и забыл что там в конце промпт ☠️. Никакого poweroff не случилось. И финальный репорт почему то в лог не попал хотя он вроде в stdout пишется как и всё остальное. https://github.com/bol-van/zapret/blob/c0cb2c43bf067d4ee8ad4dbdac3ac6d4a949db04/blockcheck.sh#L956 https://github.com/bol-van/zapret/blob/c0cb2c43bf067d4ee8ad4dbdac3ac6d4a949db04/blockcheck.sh#L1860 Перенаправлений не наблюдаю.

Вообще я тут видел дискуссию про паралельный подход. Я бы в его сторону смотрел тем более что как по мне там все забыли что blockcheck стратегии то в большинстве своём все одинаковые тестит соотвественно надо не больше демонов поднимать а больше запросов делать что бы это хотя бы ко поличеству доменов скалировалось. Единственное что меня смущает это засорение траффика не увеличит ли это в теории количество ложных срабатываний для стратегии?

bol-van commented 1 hour ago

Не все они одинаковые. Одинаковые тестить смысла нет. Но перебирать разные ограничители нужно. blockcheck - это тестер DPI, а не делатель таблеток. там он в конце и пишет. Мне необходимо видеть всю картину. какие ответы, реакции, сколько попыток провалилось и тд, чтобы понять как с этим DPI лучше бороться, как сделать общий знаменатель для разных ресурсов. Юзер же хочет часто обратно - сделай мне буковки для вписывания тут и тут. Но так не всегда работает.

Есть quick режим для быстрого находа хоть чего-нибудь.

Параллельный подход в принципе возможно сделать под *nix, но, увы, невозможно на windows

EnergoStalin commented 1 hour ago

blockcheck - это тестер DPI

Про часть с тестером понятно. Значит в твоём понимании это отдельная утилита должна быть с чем я в принципе согласен да и не то что бы существующий blockcheck на компоненты растащить было сложно.

невозможно на windows

Рвзве в модели 1 демон много запросов он не будет работать везде? Я именно это подразумевал он всё так же проходится по стратегиям как и сейчас. Только за один вызов nfqws параллельно проходится по всем сайтам вызывая curl батчами. Я видел что то похожее на ntc уже выкладывали только вот досадно что для винды только.

Псевдобаш

nfqws run
for site in sites; do
    parallel {
        curl site1
        curl site2
        curl site3
        curl N
    }
done
nfqws stop
-------------------
next strategy

Идея в том что бы одну стратегию тестить сразу для всех сайтов подключая паралелный вызов curl. Реализовывать на баше наверное очень неудобно правда.

Не стратегии для сайта а стратегия для сайтов если так понятнее.

Таким образом как я и писал возможно хотя бы в теории скалирования по количеству сайтов в списке доменов достичь. Но не думаю что как блокчеку как твоему личному тестору это будет полезно вряд ли ты на списках из десятков сайтов гонишь его.

Поэтому реализовывать я не прошу. Просто хочу понять.

Единственное что меня смущает это засорение траффика не увеличит ли это в теории количество ложных срабатываний для стратегии?

bol-van commented 33 minutes ago

curl на одной стратегии можно распараллелить сложнее с nfqws. его придется по uid расбрасывать с отдельными правилами ipt/nft/ipfw/pf. по pid тоже не получится, потому что правила надо делать до запуска curl. на винде нет никаких uid. нельзя сделать несколько инстансов winws для каждого curl

EnergoStalin commented 18 minutes ago

nfqws распаралеливать я вижу смысл если только полностью автоматизировать побдор стратегий(чисто с перспективы линукс юзера говорю). Например под отдельным юзером которому основной процесс(запущенный от текущего пользователя) через механизм autohostlist будет подкидывать сайты на выявления стратегий а потом мёржить в себя. Спокойно в принципе делается надстройкой необязательно этому здесь быть. tpws и nfqws именно что модификатор пакетов отличный огромное спасибо за их разработку и поддержку.