Zapret: обсуждение

есть готовые бинарики. собирать их на нетрадиционном линухе было бы мучением

есть скрипты установки и запуска. это один путь.
но можно их не использовать, а сделать все сасому. запускать бинарики и своими правилами редиректить трафик. это другой путь

А правила для Iptables нужны когда используется tpws или для nfqws они нужны тоже?

нужны для всего, кроме tpws socks mode

Если я возьму бинарик nfqws из x86_64, помещу его в произвольную директорию, добавлю в нее текстовый файл .txt со списком нужных доменов для опции --hostlist и запущу nfqws из командной строки, то этого будет достаточно? (+ правила Iptables + опции для “дурения”).

Опция --hostlist только с nfqws работает?

Да, достаточно запустить nfqws или tpws и настроить ip/nftables, чтобы тот направлял траффик в запрет

Хостлист есть и для tpws, чекай readme

Ув. @bolvan, в утилите tpws есть возможность применять пользовательский список типа ‘исключения’ (‘hostlist-exclude=’).
Есть ли возможность добавить опцию к этим спискам - не просто не применять ‘дурение’, а делать перенаправление на конкретный интерфейс?
Поясню, насколько могу судить, алгоритмы противодействия dpi полезны пока домен не попадет в блокировку по ip, поэтому бесполезно будет просто отправлять запрос из списка ‘исключений’ на произвол судьбы, а лучше отправить его в тунель vpn.
Да можно фильтровать не посредственно то что должно попасть в обработку к tpws, но предложенный мной вариант был бы полезен в некоторых ситуациях (например, когда проще настраивать списки по ip range - iptables перенаправят заросы по нему или в vpn тунель или в прокси - tpws, чем по конкретным ip адресам и может возникнуть ситуация, что какой то домен из ip range должен пойти в тунель vpn, а какой то домен, из того же ip range - лучше через ваш прокси).
Да это не функционал вашей утилиты, не для этого она предназначена, но это сильно упростит сосуществование с различными способами блокировки.

если что-то блочится по ip, с ним и надо разбираться по ip. а не по домену
заводим ипсет, по нему делаем марк, по марку выбор таблицы маршрутизации
и не нужны тут никакие юзер программы
все умеет ядро

а на уровне юзер прог итерфейсы не выбираются
xray умеет снифать хост из запроса и перенаправлять запрос на другой прокси
если сделать на локалхосте прокси, настроить на его uid правило на другую таблицу маршрутизации, то можно достигнуть желаемого

Для quic у меня работает (winws):

--wf-udp=443 --dpi-desync=fake

@bolvan какая стратегия параллельно к этому будет самой оптимальной для https?

// для всех заблокированных (использую сейчас)

--dpi-desync=fake,disorder2 --dpi-desync-fooling=md5sig

// либо для всех

--wf-tcp=80,443 --dpi-desync=syndata,disorder2 --dpi-desync-fake-syndata=tls_clienthello_iana_org.bin

// либо syndata для всех без YT и disorder2 отдельно для YT

--wf-tcp=80,443 --dpi-desync=syndata --dpi-desync-fake-syndata=tls_clienthello_iana_org.bin
--wf-tcp=80,443 --dpi-desync=disorder2

blockcheck нашел много рабочих стратегий, внутренний перфекционист не дает покоя. :sweat_smile:

ТСПУ обходится обычным fake с ттл до последнего провайдерского хопа (в данном случае имеются в виду все российские провайдеры на пути до последнего бордера магистрала). Если ттл не угадать, или он слишком длинный (например, криво настроенный cgnat), ТСПУ 100% ломает badseq. Т.е. --dpi-desync=fake --dpi-desync-fooling=badseq в большинстве случаев должен ломать тспу, а также дпи от vasexperts. Но может сломать и некоторые сайты не из списка, не все любят badseq. Замедление обходит split2, желательно поменять --dpi-desync-split-pos=1, т.к. с 2 по дефолту ютуб перестает выдавать список GGC кэшей и вы привязаны к провайдерским (причина этого пока не установлена, но выявлена на 3 провайдерах) Либо использовать disorder2, но он ломает некоторые не заблокированные сайты. В плане замедления ничего в тспу не менялось со времен замедления твиттера, как split2 это все обходил так и обходит. Если по каким-то причинам это не работает, нужно проверить адекватность выдоваемых вам днс ответов и что вы не находитель за каким-нибудь злым натом (типа мобильный интернет), и нужные вам сайты не забанены по ип вашим провайдером. Если провайдер вам гадит в трафик до такой степени, что вам приходится использовать какие-то лестницы из обхода блокировок - проще сменить провайдера, это никогда не будет работать хорошо без жестких списков исключений\включений.
TLDR
Если у вас тспу или скат, нужно начать с --dpi-desync=fake,disorder2 --dpi-desync-fooling=badseq и проверить ютуб, твиттер, рутрекер. Открылось, скорость норм? Убираем disorder2, добавляем split2 --dpi-desync-split-pos=1. Открылось, скорость норм? Убираем --dpi-desync-fooling=badseq, добавляем --dpi-desync-ttl=n --dpi-desync-fooling=md5sig, вместо n подбираем ттл, 4-5 обычно достаточно.
Я имел дело с тспу, с тройным тспу, с тспу+скат, из провайдеров ТТК, РТК, их клиенты. Вы себе этими конструкциями только хуже делаете, тспу обходится крайне просто.

Предполагаю, что вы отвечаете мне. У меня и обходится все просто, fake и md5sig для нужных сайтов, disorder2 для YT, и ttl подбирать не требуется.

Но почитал readme, там есть syndata, которая работает на этапе установки соединения и обходит у меня блокировку всех нужных сайтов кроме YT. Т.е. не нужно трогать/фейкать пакеты данных, все работает до их отправки. Разве это не лучший вариант? Плюс disorder2 или split2 пустить отдельно для YT.

syndata ломает сайты на DDOS guard точно, мб какие-то еще (у меня еще банковске приложение одно не прогружается с syndata). Как пример, попробуйте с syndata зайти на ixbt.com, он будет очень долго прогружать из-за анти-ддос защиты. А ограничить syndata по определенным доменам нельзя, т.к. она срабатывает раньше (в readme обозначено как 0 стадия).
На YT подкрутили фильтр ТСПУ пару дней назад буквально, там теперь просто fake лично у меня не срабатывает. Нужно еще например split2 докинуть.

Вот это смущает, конечно.

Только вот открывает все равно не все сайты, даже те что по айпи не забанены как,например, rutor.info(работает только по http) или torrentgalaxy.to. С остальными проблем нет, но все же будто чего-то не хватает. Хотя рутор в инкогнито открывает, а вот torrentgalaxy нет

может быть только порт 443 забанен на этом ip, поэтому по http все работает, а по https нет.
Проверьте curl с резрешенный доменом на адрес заблокированного сайта который по https не открывается, но работает по http

curl -v https://ya.ru --connect-to ::0.0.0.0 (ip заблоченного сайта)

Хотел попробовать обойтись без fake, не нашлось одинаковой стратегии для YT и остальных блокированных :face_exhaling:

Для блокированных работает:

--dpi-desync=disorder2 --dpi-desync-split-seqovl=1 --dpi-desync-split-tls=sni

Для YT:

--dpi-desync=disorder2 --dpi-desync-split-seqovl=1 --dpi-desync-split-pos=2

А запустить два winws с --wf-tcp=443 и разными стратегиями для разных блэклистов, естественно, нельзя.

Не удалось настроить работу youtube на тв самсунг (старый, 2015г).
Все устройства в сети работают (Windows, iOS, Android, Android TV и тп), но на тв самсунг - приложение открывается, доступный контент отображается корректно, но если начать воспроизводить - темный экран и бесконечная надпись ‘загрузка’.
При этом, если сделать перенаправление домена googlevideo.com в vpn тунель (остальные домены ютуба через zapret) - на тв начинает проигрывать ролики.
Т.е. проблема только с одним доменом и только со старыми тв самсунг.

Кому то удалось заставить работать на тв?
Проверял через прокси twps.

Запустите блокчек на заблокированный ресурс с параметром force и перебирайте все стратегии которые он выдаст, пока не найдете ту, которая и YT и сайты разблокирует

Так и делал. Без fake, т.е. только disorder2/split2, общей стратегии не нашлось.

Похоже, так оно и есть. Есть способ это обойти? У этого сайта нет http

curl -v https://torrentgalaxy.to --connect-to ::176.97.124.208

  • Connecting to hostname: 176.97.124.208
  • Trying 176.97.124.208:443…
  • connect to 176.97.124.208 port 443 from 0.0.0.0 port 49600 failed: Timed out
  • Failed to connect to 176.97.124.208 port 443 after 21055 ms: Couldn’t connect to server
  • Closing connection
    curl: (28) Failed to connect to 176.97.124.208 port 443 after 21055 ms: Couldn’t connect to server

А вот сайт у которого только http, но он почему-то в основном профиле не открывается только через инкогнито

curl -v http://rutor.info --connect-to ::193.46.255.29

  • Connecting to hostname: 193.46.255.29
  • Trying 193.46.255.29:80…
  • Connected to 193.46.255.29 (193.46.255.29) port 80
    GET / HTTP/1.1
    Host: rutor.info
    User-Agent: curl/8.8.0
    Accept: /
  • Request completely sent off

Вам надо вызывать curl с НЕЗАБЛОКИРОВАННЫМ доменом на ip адресс заблокированного домена:

~ # curl -v https://ya.ru --connect-to ::176.97.124.208 --max-time 5

  • Connection timed out after 5001 milliseconds
    curl: (28) Connection timed out after 5001 milliseconds

~ # curl -v https://ya.ru --connect-to ::193.46.255.29

  • TLSv1.3 (OUT), TLS handshake, Client hello (1):
  • TLSv1.3 (IN), TLS handshake, Server hello (2):
  • TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
  • TLSv1.3 (IN), TLS handshake, Certificate (11):
  • TLSv1.3 (IN), TLS handshake, CERT verify (15):
  • TLSv1.3 (IN), TLS handshake, Finished (20):
  • TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
  • TLSv1.3 (OUT), TLS handshake, Finished (20):
  • SSL: no alternative certificate subject name matches target host name ‘ya.ru
  • TLSv1.3 (OUT), TLS alert, close notify (256):
    curl: (60) SSL: no alternative certificate subject name matches target host name ‘ya.ru
    More details here: curl - SSL CA Certificates

Лично у меня torrentgalaxy заблокирован по ip, даже не пингуется. А rutor работает по http через zapret.