|
silentwatcher
Стаж: 16 лет 1 месяц Сообщений: 434
|
silentwatcher ·
23-Окт-24 17:02
(1 месяц 5 дней назад)
kx77
если будет ломаться обратная совместимость то надо делать подробную документацию по ломающим изменениям с примерами как теперь надо делать.
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1090
|
Dicrock ·
24-Окт-24 09:54
(спустя 16 часов, ред. 24-Окт-24 09:54)
А ещё неплохо бы было полноценно использовать систему релизов на гитхабе. Для запрета почему-то используются тэги (причём, там всего 3 релиза), а вин-бандл вообще без ничего :/ Софт серьёзный, а отношение к релизам такое ... легкомысленное. При таком подходе, когда нет ченджлога и объявлений к релизам есть риск получить в случае "перестройки" толпу народа, который налепит issue и тредов, будучи в непонятках ...
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
24-Окт-24 12:15
(спустя 2 часа 21 мин., ред. 24-Окт-24 12:15)
Не берусь назвать этот софт серьезным. changelog есть в docs/changes.txt
Описание, конечно, будет. Этот рефакторинг просто необходим, чтобы перестали натягивать сову на несвойственное ей место.
Я понимаю в какую сторону они мыслят, и даже поддерживаю такое мышление. Потому и делаю так, чтобы конфиг ему соответствовал. Логика унифицируется. Пишем отдельно конфиг системы перехвата и системы модификации.
Это , собственно, и есть 2 основные конька zapret, которые описаны в самом начале readme.
Надо будет думать где что какие порты куда идет . Как на винде. Там --wf-*, здесь конфиг для фаервола
Линуховый вариант включает управление kernel-mode системой ограничения connbytes. Софтверный аналог - cutoff для систем, где нет connbytes
Система стандартной модификации состоит из единственного инстанса nfqws,tpws,tpws-socks с мультистратегией.
Для более сложных и частных случаев остаются кастомы. Перенос конфигов linux-windows станет довольно простым. Конечно, я не позволю использовать --ipset, придется писать кастомы, задействующие kernel-mode вариант. Инсталятор будет детектить старые варианты и не разрешать сохранять конфиг
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1090
|
Dicrock ·
24-Окт-24 13:18
(спустя 1 час 2 мин.)
kx77 писал(а):
Не берусь назвать этот софт серьезным. changelog есть в docs/changes.txt
Описание, конечно, будет.
Серьёзный как в плане освоения юзеру средней руки, так и в плане значимости для коммьюнити в нынешних реалиях
kx77 писал(а):
Этот рефакторинг просто необходим, чтобы перестали натягивать сову на несвойственное ей место.
Я понимаю в какую сторону они мыслят, и даже поддерживаю такое мышление. Потому и делаю так, чтобы конфиг ему соответствовал.
Дык никто не против. Просто если бы релизы публиковались в подобном ключе - было бы намного лучше. Опять же. Тем кто будет на гит подписан, о новых релизах уведомления на почту будут прилетать. Вместе со списком изменений и всеми ссылками ...
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
24-Окт-24 20:07
(спустя 6 часов, ред. 24-Окт-24 20:11)
Почему, опции найденные при помощи скрипта blockcheck для ютуба, не работают? Для ipv4 находит что вообще работает без обхода, но по факту всё таки нет. Что они там научились во множественные стратегии?
|
|
silentwatcher
Стаж: 16 лет 1 месяц Сообщений: 434
|
silentwatcher ·
24-Окт-24 20:09
(спустя 1 мин.)
vlad_ns
какой сервер ты вставлял в блокчек? кеширующий или вообще? как ты вставлял параметры обхода в скрипт установки?
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
24-Окт-24 20:13
(спустя 4 мин., ред. 24-Окт-24 20:13)
silentwatcher писал(а):
86886011какой сервер ты вставлял в блокчек?
Пока что главная страница не грузится.
silentwatcher писал(а):
86886011как ты вставлял параметры обхода в скрипт установки?
Нормально, другого ответа у меня на так поставленный вопрос, нет.
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1090
|
Dicrock ·
25-Окт-24 10:19
(спустя 14 часов, ред. 25-Окт-24 10:19)
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
25-Окт-24 17:05
(спустя 6 часов, ред. 25-Окт-24 17:05)
Масштабное переосмысление системы запуска под linux,openwrt,macos.
Конфиг потерял совместимость.
Инсталлятор при замещении /opt/zapret будет предупреждать о несовместимости параметров и отказываться их сохранять. Придется настраивать заново. Основная причина рефакторинга - приведение конфига к функции мульти-стратегий.
Больше не надо разделять на инстансы http, quic и прочее.
Не надо натягивать сову на неестественные места. В сети распространились конфиги, где дискорд пытаются засунуть в QUIC. Больше нет никаких http, https, quic.
Есть отдельно настраиваемые параметры запуска tpws, tpws-socks, nfqws и параметры перехвата трафика через ядро (iptables, nftables).
Очень похоже на вариант winws на windows.
Параметра MODE тоже больше нет. Стандартные режимы имеют свои выключатели и включаются независимо, а custom scripts применяются просто по факту их наличия в custom.d
Можно легко комбинировать tpws и nfqws вместе, и потом на эту систему подвесить еще tpws socks для получения обходного прокси. custom скрипты inherit больше не нужны. Если их не убрать, будет рекурсивное зацикливание. Применение стандартных хостлистов идет через маркер <HOSTLIST> в конфиге. Скрипты подставляют на его место фактические параметры листов из ipset в зависимости от MODE_FILTER и убирают, если не задана фильтрация по хостлистам. Особо читайте раздел “Выбор параметров” в readme.txt, а так же docs/quick_start.txt. По просьбам читаталей , так сказать, добавлен релиз на гитхабе.
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
26-Окт-24 08:51
(спустя 15 часов, ред. 26-Окт-24 08:51)
Как сейчас будут выглядеть правила типа
Код:
iptables -t mangle -I POSTROUTING -o <внешний_интерфейс> -p tcp --dport 80 -j NFQUEUE --queue-num 200 --queue-bypass
Имею ввиду порт? Где-то читал, что теперь процесс теперь будет один, значит и правила iptables для ipv4 и ipv6 тоже будут выглядеть иначе?
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
26-Окт-24 10:46
(спустя 1 час 54 мин., ред. 26-Окт-24 10:46)
Если не используется собственная система запуска, то и ничего не поменялось.
А система запуска сама напишет правила tables
Кстати, указанный iptables может привести к deadlock зависанию nfqws, если выставить побольше repeats . Нужен ограничитель по desync mark.
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
26-Окт-24 13:29
(спустя 2 часа 43 мин., ред. 26-Окт-24 13:29)
kx77 писал(а):
86893012Если не используется собственная система запуска
Используется.
kx77 писал(а):
86893012Кстати, указанный iptables может привести к deadlock зависанию nfqws, если выставить побольше repeats . Нужен ограничитель по desync mark.
Да он есть, просто первое что встретилось в доке, чтоб объяснить что нужно. Сейчас у меня четыре процесса, 200 - http ipv4, 201 - https ipv4, 202 - http ipv6, 203 - https ipv6.
скрытый текст
Код:
● nfqws.service - Service that allows you to bypass DPI
Loaded: loaded (/usr/lib/systemd/system/nfqws.service; enabled; preset: disabled)
Active: active (exited) since Sat 2024-10-26 13:24:25 MSK; 1s ago
Invocation: f54ffc47b53f4893826966944a34006b
Process: 606791 ExecStart=/usr/bin/nfq start (code=exited, status=0/SUCCESS)
Main PID: 606791 (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 18970)
Memory: 307.6M (peak: 309.1M)
CPU: 973ms
CGroup: /system.slice/nfqws.service
├─606797 nfqws --user=nfqws --daemon --dpi-desync-fwmark=0x40000000 --qnum=200 --hostlist=/etc/nfqws/list-youtube.txt --hostlist-exclude=/etc/nfqws/zapret-hosts-user-exclude.txt --dpi-desync=fake --dpi-desync-ttl=2 --dpi-desync-fooli>
├─606813 nfqws --user=nfqws --daemon --dpi-desync-fwmark=0x40000000 --qnum=201 --hostlist=/etc/nfqws/list-youtube.txt --hostlist-exclude=/etc/nfqws/zapret-hosts-user-exclude.txt --dpi-desync=fake split --dpi-desync-fooling=badseq --d>
├─606816 nfqws --user=nfqws --daemon --dpi-desync-fwmark=0x40000000 --qnum=202 --hostlist=/etc/nfqws/list-youtube.txt --hostlist-exclude=/etc/nfqws/zapret-hosts-user-exclude.txt --dpi-desync=fake --dpi-desync-ttl6=2 --dpi-desync-fool>
└─606818 nfqws --user=nfqws --daemon --dpi-desync-fwmark=0x40000000 --qnum=203 --hostlist=/etc/nfqws/list-youtube.txt --hostlist-exclude=/etc/nfqws/zapret-hosts-user-exclude.txt --dpi-desync=split2 --dpi-desync-ttl6=2 --dpi-desync-fo>
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
26-Окт-24 18:03
(спустя 4 часа, ред. 26-Окт-24 18:03)
Теперь они будут перенаправлять в одну очередь все, что раньше было по разным очередям.
А что именно перенаправлять теперь придется написать самому в конфиге.
Если сделать NFQWS_ENABLE=1, то по умолчанию будет как раньше HTTP=1, HTTP_KEEPALIVE=0, HTTPS=1, QUIC=1
Код:
NFQWS_PORTS_TCP=80,443
NFQWS_PORTS_UDP=443
NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD))
NFQWS_TCP_PKT_IN=3
NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD))
NFQWS_UDP_PKT_IN=0
#NFQWS_PORTS_TCP_KEEPALIVE=80
----------------------------
В blockcheck сделана поддержка DoH.
Она включается автоматически, если обнаружена подмена DNS.
Чтобы включить или выключить принудительно, можно использовать переменную
SECURE_DNS=0|1
В код зашит список из 5 открытых ресолверов DoH. Проверяются все по очереди до первого работающего. Этот и используется.
Переопределить список для поиска можно в переменной DOH_SERVERS. Задать конкретный сервер можно через DOH_SERVER.
Технически ресолвинг опирается на обновленный mdig и выполняется так :
mdig --family=6 --dns-make-query=rutr.life | curl --data-binary @- -H "Content-Type: application/dns-message" https://cloudflare-dns.com/dns-query | mdig --dns-parse-query
Поэтому он не требует никакого специального софта и может работать на openwrt без плясок.
Встроенная поддержка doh в curl может во-первых не быть, во-вторых он будет каждый раз призадумываться. В blockcheck сделано кэширование DNS записей, и этот вариант не очень сочетается.
|
|
silentwatcher
Стаж: 16 лет 1 месяц Сообщений: 434
|
silentwatcher ·
26-Окт-24 19:39
(спустя 1 час 35 мин.)
kx77 писал(а):
86894661
Код:
mdig --family=6 --dns-make-query=rutr.life | curl --data-binary @- -H "Content-Type: application/dns-message" https://cloudflare-dns.com/dns-query | mdig --dns-parse-query
эта команда конфликтует с dnscrypt-proxy поставленному по этому гайду?
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
26-Окт-24 20:11
(спустя 32 мин., ред. 26-Окт-24 20:11)
Цитата:
эта команда конфликтует с dnscrypt-proxy поставленному по этому гайду?
Может конфликтовать только с mdig от bind-tools.
mdig нужен именно от zapret
А так ему пофигу какой днс в системе. Важно лишь, чтобы сумел правильно заресолвить домены самих DoH серверов от блокчека.
Поиск рабочего doh ведется по критерию успешного получения и расшифровки запроса к iana.org
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
27-Окт-24 00:18
(спустя 4 часа, ред. 27-Окт-24 00:18)
В опции "--filter-tcp=" для nfqws, если несколько портов, то перечислять нужно через тире, например 80-2710-6969? Запятую нельзя использовать? В правилах iptables порты перечисляются через запятую "-m multiport --dports 80,2710,6969", можно было бы использовать одну переменную для этого.
Код:
[root@home-router /]# nfqws --filter-tcp=80-2710-6969
Invalid port filter : 80-2710-6969
Код:
[root@home-router nfqws]# nfqws --filter-tcp=80-2710
Need queue number (--qnum)
"--filter-tcp=" это диапазон портов, а не их перечисление?
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
27-Окт-24 19:33
(спустя 19 часов, ред. 27-Окт-24 19:33)
да, пока в --filter только диапазон или его инверсия. запятой не предусмотрено. но можно сделать. ---------------- В blockcheck сделана фильтрация только по IP:port тестируемого в настоящий момент домена.
Все остальное больше не трогается. Не рушит на час работу броузера.
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
27-Окт-24 20:24
(спустя 50 мин., ред. 27-Окт-24 20:24)
А как обрабатывается такое, в одной стратегии "--filter-tcp=80-2710" в другой "--filter-tcp=443"? Как различаются в таком случае http и https? Или 443 автоматом считается https? Как быть если нужны другие, условно 8443 и т.д? Хотя сейчас у меня четыре процесса как-то определяют http (4 и 6 версии) и https (тоже 4 и 6 версии).
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
29-Окт-24 22:02
(спустя 2 дня 1 час, ред. 30-Окт-24 09:34)
upcoming release 67 notes
Самое главное изменение - переделана система внутреннего управления листами в nfqws и tpws.
Если раньше листы одного профиля кидались в общую неделимую кучу и загружались заново для каждого следующего профиля, то теперь листы все загружаются отдельно, исключая повторы.
Если раньше вы писали `<HOSTLIST>` в 3 профилях и использовали большой РКН лист, то требуемая память умножалась на 3 и могла доходить до внушительных для слабых систем значений. Теперь это больше не так.
скрытый текст
--filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-fooling=md5sig <HOSTLIST> --new \
--filter-tcp=443 --dpi-desync=fake,disorder2 --dpi-desync-fooling=md5sig <HOSTLIST> --new \
--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 <HOSTLIST> --debug lists summary:
hostlist file /opt/zapret/ipset/zapret-hosts-user-exclude.txt
hostlist file /opt/zapret/ipset/zapret-hosts.txt.gz
hostlist file /opt/zapret/ipset/zapret-hosts-user.txt
profile 1 include hostlist /opt/zapret/ipset/zapret-hosts.txt.gz
profile 1 include hostlist /opt/zapret/ipset/zapret-hosts-user.txt
profile 1 exclude hostlist /opt/zapret/ipset/zapret-hosts-user-exclude.txt
profile 2 include hostlist /opt/zapret/ipset/zapret-hosts.txt.gz
profile 2 include hostlist /opt/zapret/ipset/zapret-hosts-user.txt
profile 2 exclude hostlist /opt/zapret/ipset/zapret-hosts-user-exclude.txt
profile 3 include hostlist /opt/zapret/ipset/zapret-hosts.txt.gz
profile 3 include hostlist /opt/zapret/ipset/zapret-hosts-user.txt
profile 3 exclude hostlist /opt/zapret/ipset/zapret-hosts-user-exclude.txt
Кроме того сделана автоматическая перечитка всех листов при изменении времени модификации файлов. HUP больше не нужен.
Исчезновение какого-либо файла листа или потеря доступа к нему больше не является фатальной проблемой. Раньше демоны в этом случае аварийно завершались. Сейчас в этой ситуации ничего страшного не случится. Будет использоваться копия в памяти. При появлении файла или возобновлении доступа он опять будет проверен на время изменения и при необходимости перегружен.
Перегрузка выполняется не сразу, а только по факту использования данного листа.
Все сказанное полностью распространяется и на user mode ipsets.
Параметры `--filter-tcp`, `--filter-udp` теперь берут список портов или диапазонов портов через запятую.
Особый знак `*` есть синоним 1-65535.
В конфиге в опциях tpws и nfqws введен еще 1 маркер `<HOSTLIST_NOAUTO>`.
Он аналогичен `<HOSTLIST>`, только `ipset/zapret-hosts-auto.txt` для текущего профиля вставляется как обычный лист, что позволяет выключить логику распознавания блокировок.
Если другой профиль обновил автолист, остальные профили принимают изменения автоматически, поскольку теперь это хранится в одной области памяти без дублирования.
blockcheck теперь дурит только IP:port тестируемого домена. Все остальное не затрагивается.
Введена поддержка DoH серверов, которая включается автоматически при обнаружении подмены DNS.
Репозиторий zapret-win32 удален. Его содержимое перемещено в основной репозиторий в binaries/win32.
win64/zapret-winws так же удален. Его содержимое осталось только в zapret-win-bundle.
|
|
dad1979
Стаж: 18 лет 5 месяцев Сообщений: 384
|
dad1979 ·
29-Окт-24 23:29
(спустя 1 час 27 мин.)
kx77 писал(а):
86901137upcoming release 67 notes
Кстати, а как узнать версию(релиз) уже имеющегося бинарного файла tpws или nfqws? Чо-то такой опции вроде бы нету (не было)?
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
30-Окт-24 09:36
(спустя 10 часов)
dad1979 писал(а):
86910727
kx77 писал(а):
86901137upcoming release 67 notes
Кстати, а как узнать версию(релиз) уже имеющегося бинарного файла tpws или nfqws? Чо-то такой опции вроде бы нету (не было)?
Пока никак. Но, вероятно, будет.
|
|
vlad_ns
Стаж: 14 лет 9 месяцев Сообщений: 1716
|
vlad_ns ·
31-Окт-24 20:33
(спустя 1 день 10 часов)
kx77 писал(а):
86901137Параметры `--filter-tcp`, `--filter-udp` теперь берут список портов или диапазонов портов через запятую.
Поясните пожалуйста синтаксис, у меня в релизе 66 по прежнему "Invalid port filter : 80,2710,6969".
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
31-Окт-24 21:08
(спустя 35 мин.)
В релизе 66 этого еще нет. Есть в текущей версии.
Релиз 67 пока устаканивается. В режиме проверки и поиска проблем
|
|
ulterrior
Стаж: 13 лет 11 месяцев Сообщений: 3
|
ulterrior ·
02-Ноя-24 01:06
(спустя 1 день 3 часа)
Во-первых, огромное спасибо разработчикам zapret, очень выручает. Во-вторых, вопрос про zapret к тем, кто шарит: на ntc.party, ValdikSS предложил вариант "разблокировки" ютуба на смарт ТВ через GoodbyeDPI + V2ray + MaraDNS (поднимаешь DNS-сервер, на ТВ адресом DNS-сервера устанавливаешь адрес своего ПК, и ютуб оживает). Проверил, работает, но нужна винда. У меня линукс. Я не хочу накатывать openWRT на роутер, поэтому предпочёл бы что-то подобное.
Возможна ли подобная комбинация, но в линуксе с использованием zapret? (я попробовал, не заработало, но я в таком опыта не имею)
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
02-Ноя-24 09:39
(спустя 8 часов)
Возможна.
Goodbye => zapret
v2ray есть и так, но лучше заменить на xray. или любой прокси. там ничего от него не нужно, кроме проксирования
MaraDNS => dnsmasq. в нем легко прописать предопределенные хосты, а остальное пустить на аплинк
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1090
|
Dicrock ·
02-Ноя-24 23:50
(спустя 14 часов)
kx77 писал(а):
Пока никак. Но, вероятно, будет.
А ведь эту плюшку давно просили )))
|
|
hovard2008
Стаж: 15 лет 7 месяцев Сообщений: 171
|
hovard2008 ·
04-Ноя-24 17:51
(спустя 1 день 18 часов, ред. 04-Ноя-24 17:51)
Подскажите пример параметров для обхода блокировки протокола openvpn, возможно мне подойдет.
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
04-Ноя-24 21:50
(спустя 3 часа, ред. 04-Ноя-24 21:50)
hovard2008 писал(а):
86939327Подскажите пример параметров для обхода блокировки протокола openvpn, возможно мне подойдет.
Если протокол udp, то на linux и openwrt примерно так это делается
Код:
NFQWS_ENABLE=1
NFQWS_PORTS_TCP=
NFQWS_PORTS_UDP=1194
NFQWS_TCP_PKT_OUT=0
NFQWS_TCP_PKT_IN=0
NFQWS_UDP_PKT_OUT=1
NFQWS_UDP_PKT_IN=0
NFQWS_OPT="--dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-repeats=10"
На windows что-то вроде
Код:
winws --wf-udp=1194 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=n2 --dpi-desync-repeats=10
|
|
dad1979
Стаж: 18 лет 5 месяцев Сообщений: 384
|
dad1979 ·
06-Ноя-24 18:23
(спустя 1 день 20 часов, ред. 06-Ноя-24 18:23)
kx77
Произошла какая-то фигня вчера вечером: время от времени перестает открываться в браузере rutracker даже с работающим tpws (на роутере). До того все работало несколько месяцев. Не связано ли это как-то блокировкой TLS ECH(который вроде как используется CF)? Другие сайты (из списка хостов tpws) тоже перестали открываться, или открываются время от времени, нерегулярно... PS: кажется решение найдено (в другой теме форума) - хост cloudflare-ech.com надо добавить в список.
|
|
kx77
Стаж: 12 лет Сообщений: 718
|
kx77 ·
06-Ноя-24 18:44
(спустя 20 мин.)
Да, именно. Они не смогли пройти мимо открывающегося рутракера, с которым ничего не сделать
|
|
|