mirror of
https://github.com/bol-van/zapret.git
synced 2026-03-10 23:31:50 +00:00
major config re-think and re-write
This commit is contained in:
@@ -22,9 +22,9 @@
|
||||
1) Чтобы процедура установки сработала в штатном режиме на openwrt, нужно раcсчитывать на свободное место около 1-2 Mb
|
||||
для установки самого zapret и необходимых дополнительных пакетов.
|
||||
Если места мало и нет возможности его увеличить за счет extroot, возможно придется отказаться от варианта
|
||||
простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска, либо попробовать засунуть требуемые
|
||||
zapret дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер.
|
||||
См docs/manual_setup.txt , docs/readme.txt .
|
||||
простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска.
|
||||
Можно использовать облегченный tpws вариант из init.d/openwrt-minimal, либо попробовать засунуть требуемые zapret
|
||||
дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер.
|
||||
|
||||
2) Скачайте zip архив проекта с github в /tmp, распакуйте его там,
|
||||
либо клонируйте проект через : git clone --depth 1 https://github.com/bol-van/zapret
|
||||
@@ -83,10 +83,9 @@ iptables/nftables. В /etc/resolv.conf нельзя прописать DNS на
|
||||
|
||||
Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале.
|
||||
Вероятно, все остальные домены блокированы подобным образом, но не факт.
|
||||
В большинстве случаев можно обьединить несколько стратегий в одну универсальную, но для этого необходимо понимать
|
||||
"что там за буковки". Если вы в сетях слабо разбираетесь, это не для вас. В противном случае читайте readme.txt.
|
||||
zapret не может пробить блокировку по IP адресу
|
||||
Для проверки нескольких доменов вводите их через пробел.
|
||||
В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно.
|
||||
Необходимо понимать как работают стратегии.
|
||||
zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел.
|
||||
|
||||
Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов
|
||||
с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI,
|
||||
@@ -104,37 +103,68 @@ badseq может работать только на https и не работа
|
||||
может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах
|
||||
она стабильна, на третьих полный хаос, и проще отказаться.
|
||||
|
||||
Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска tpws и/или nfqws
|
||||
с использованием мультистратегии. Как работают мультистратегии описано в readme.txt.
|
||||
|
||||
Если кратко, то обычно параметры конструируются так :
|
||||
"--filter-udp=443 'параметры для quic' <HOSTLIST> --new
|
||||
--filter-tcp=80-443 'обьединенные параметры для http и https' <HOSTLIST>"
|
||||
|
||||
Или так :
|
||||
"--filter-udp=443 "параметры для quic" <HOSTLIST> --new
|
||||
--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
||||
--filter-tcp=443 'параметры для https' <HOSTLIST>"
|
||||
|
||||
"<HOSTLIST>" так и пишется. Его не надо на что-то заменять. Это сделают скрипты запуска, если вы выбрали режим
|
||||
фильтрации по хостлистам, и уберут в противном случае.
|
||||
Если для какого-то протокола надо дурить все без стандартного хостлиста - просто уберите оттуда "<HOSTLIST>".
|
||||
Можно писать свои параметры --hostlist и --hostlist-exclude для дополнительных хостлистов
|
||||
или в профилях специализаций под конкретный ресурс. В последнем случае стандартный хостлист там не нужен.
|
||||
Следует избегать указания собственных параметров --hostlist на листы из директории ipset.
|
||||
Эта логика включена в "<HOSTLIST>".
|
||||
|
||||
Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так :
|
||||
"--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" <HOSTLIST> --new
|
||||
--filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' <HOSTLIST> --new
|
||||
--filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' <HOSTLIST> --new
|
||||
--filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" <HOSTLIST> --new
|
||||
--filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' <HOSTLIST> --new
|
||||
--filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6' <HOSTLIST>"
|
||||
|
||||
Но здесь совсем "копи-пастный" вариант.
|
||||
Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше.
|
||||
|
||||
Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через
|
||||
параметры TPWS_PORTS, NFQWS_PORTS_TCP, NFQWS_PORTS_UDP и убрать соответствующие им профили мультистратегии.
|
||||
tcp 80 - http, tcp 443 - https, udp 443 - quic.
|
||||
|
||||
Если используются методы нулевой фазы десинхронизации (--mss, --wssize, --dpi-desync=syndata) и режим фильтрации hostlist,
|
||||
то все параметры, относящиеся к этим методам, следует помещать не в основные параметры (например, NFQWS_OPT_DESYNC),
|
||||
а в suffix (NFQWS_OPT_DESYNC_SUFFIX). Чтобы не ошибиться, можно их продублировать и там, и там.
|
||||
Иначе они могут не работать.
|
||||
то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мульистратегии, которые получат
|
||||
управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий.
|
||||
Самым надежным вариантом будет дублирование этих параметров на 2 профиля. Какой-нибудь сработает в зависимости
|
||||
от параметра MODE_FILTER.
|
||||
|
||||
"--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
||||
--filter-tcp=443 'параметры для https' --wssize 1:6 <HOSTLIST> --new
|
||||
--filter-tcp=443 --wssize 1:6"
|
||||
|
||||
В этом примере wssize будет применяться всегда к порту tcp 443 вне зависимости от параметра MODE_FILTER.
|
||||
Хостлист будет игнорироваться, если таковой имеется. К http применять wssize вредно и бессмысленно.
|
||||
|
||||
Никто не мешает использовать tpws для http, nfqws для https, либо комбинировать действие nfqws и tpws для одного протокола.
|
||||
В текущем варианте скриптов запуска это делается максимально гибко и независимо друг от друга.
|
||||
|
||||
8) Запустите install_easy.sh.
|
||||
Выберите nfqws или tpws, затем согласитесь на редактирование параметров.
|
||||
Откроется редактор, куда впишите найденные стратегии.
|
||||
Для nfqws отдельно настраиваются стратегии на http и https для ipv4 и ipv6.
|
||||
То есть по максимуму 4 разных варианта.
|
||||
NFQWS_OPT_DESYNC - это общая установка, которая применяется, если какой-либо уточняющий параметр не задан
|
||||
NFQWS_OPT_DESYNC_HTTP и NFQWS_OPT_DESYNC_HTTPS заменяют стратегию для http и https.
|
||||
Если у вас включен ipv6, то они так же будут применены и к ipv6. Если для ipv6 нужна другая стратегия,
|
||||
то можно задать уточняющие параметры NFQWS_OPT_DESYNC_HTTP6 и NFQWS_OPT_DESYNC_HTTPS6.
|
||||
Если стратегии для ipv4 и ipv6 отличаются лишь ttl, то в целях экономии ресурсов роутера (меньше процессов nfqws)
|
||||
следует отказаться от использования специфических для ipv6 установок. Вместо них использовать параметры
|
||||
--dpi-desync-ttl и --dpi-desync-ttl6 в общих установках. Таким способом можно заставить один процесс nfqws
|
||||
обрабатывать трафик на ipv4 и на ipv6 с разным ttl.
|
||||
|
||||
Важным вопросом является вопрос о поддержке http keep alive.
|
||||
Отвечайте N. Если вдруг на http сайтах будут хаотические сбои типа то загружается, то заглушка или сброс,
|
||||
попробуйте включить поддержку keep alive. Но просто "на всякий случай" не включайте - это увеличит нагрузку на роутер.
|
||||
|
||||
Если это не помогает, или хаотичное поведение наблюдается и на https, то еще раз прогоните blockcheck
|
||||
с установленным числом попыток проверки не менее 5. Возможно, ваш провайдер использует балансировку нагрузки,
|
||||
где на разных путях установлен разный DPI.
|
||||
Выберите nfqws и/или tpws, затем согласитесь на редактирование параметров.
|
||||
Откроется редактор, куда впишите созданную на предыдущем этапе стратегию.
|
||||
|
||||
9) На все остальные вопросы install_easy.sh отвечайте согласно выводимой аннонтации.
|
||||
|
||||
10) Если ломаются отдельные незаблокированные ресурсы, следует вносить их в исключения, либо пользоваться ограничивающим
|
||||
ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей.
|
||||
Но еще лучше будет подбирать такие стратегии, которые ломают минимум.
|
||||
Есть стратегии довольно безобидные, а есть сильно ломающие, которые подходят только для точечного пробития отдельных ресурсов,
|
||||
когда ничего лучше нет. Хорошая стратегия может сильно ломать из-за плохо подобранных ограничителей для фейков - ttl, fooling.
|
||||
|
||||
Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея.
|
||||
В некоторых случаях вы не обойдетесь без знаний и основного "талмуда".
|
||||
|
||||
Reference in New Issue
Block a user