Waujito / youtubeUnblock

Bypasses Deep Packet Inspection (DPI) systems that rely on SNI
GNU General Public License v3.0
751 stars 56 forks source link

9 октября опять проапдейтили ТСПУ? #148

Closed hukarere closed 2 weeks ago

hukarere commented 2 weeks ago

Здравствуйте,

Счастливо пользовался youtubeUnblock с августа, и вот пару часов назад через моего провайдера youtube перестал работать, при этом в телеграм-чате провайдера пользователи виндоуз и мака сообщили, что у них тоже одновременно перестал работать youtube через GoodByeDPI и SpoofDPI.

Все остальные заблокированные сайты, кроме youtube, продолжают работать через --sni-domains=all. Еще пользователи в чате говорят, что через zapret-discord-youtube для винды youtube у них все еще работает.

curl --connect-to ::speedtest.selectel.ru https://manifest.googlevideo.com/100MB -k -o/dev/null показывает нормальную скорость, как и раньше.

Что-то проапдейтили на ТСПУ моего провайдера?

Updated by @Waujito:

Спасибо @ashenzeroone за подбор параметров для synfake.

UPD: В общем, что случилось. Предварительно, имеем простейший маппинг GGC, которые хостят только сервера googlevideo. И таким серверам просто обрубают весь TLS трафик, независимо от SNI. Видимо, синфэйк вызывает глюк у ТСПУ, и он начинает хуже анализировать трафик. Мои рабочие параметры сейчас: --synfake=1 --synfake-len=1 --fake-sni=0 --seg2delay=100 --frag-sni-faked=1 --frag-sni-reverse=0

UPD: Мне кажется, у меня получилось победить затупы ютуба с параметрами youtubeUnblock --sni-domains=all --synfake=1 --synfake-len=1 --seg2delay=200 --frag-sni-faked=1 --frag-sni-reverse=0 --frag-sni-pos=1 --frag-middle-sni=0 --fake-sni-seq-len=20

Эти параметры доступны в v1.0.0-rc1

С синфейком ситуация сложная. Мне кажется, он блокирует еще и твиттер. Решением может быть добавление параметра --synfake-allowed-ips, но на это нужно время.

UPD: Обновил стратегию флуда пакетами в #132, и, кажется, оно завелось без синфэйка. Проблема была в том, что флуд фэйк пакетами шёл с одним и тем же ipv4 id, что, видимо, учитывалось ТСПУ. У меня работает на этом билде https://github.com/Waujito/youtubeUnblock/actions/runs/11304551258 с флагами

youtubeUnblock --sni-domains=all --fake-sni-type=custom --fake-custom-payload=00 --fake-sni-seq-len=10 --frag-sni-faked=1 --frag-sni-reverse=0 --frag-sni-pos=1 --frag-middle-sni=0 --seg2delay=100

Учтите, что флагов --fake-sni-type и --fake-custom-payload еще нет в openwrt uci. Поэтому можете прописать их самостоятельно в файле /etc/init.d/youtubeUnblock. Также отмечу, что я обновил LuCI интерфейс, как было зарепрочено в #149. Теперь анблок и его гуи - отдельные пакеты. Во избежание проблем при удалении снимите галочку с удаления ненужных зависимостей.

Если будет нестабильно работать, попробуйте --faking-strategy=tll и подбирайте ttl.

UPD: Нашёл, что с sni-domains=all ютуб(гуглвидео) перестаёт работать. Интересно то, что технически это не баг анблока: видимо, тспу простой z функцией ищет строчку googlevideo.com в пакете, как это реализовано в анблоке в sni detection strategy brute. А из-за большой длины доменов гуглвидео, frag middle sni сплиттит его чуть левее самого имени googlevideo.com

Сейчас решением может быть просто отказ от sni-domains=all. Можно прописать в sni domains дефолтную строчку из readme и через запятую за ней, к примеру googlevideo.com,.com. Я попробую добавить фильтрацию: для разных доменов - разные стратегии.

Еще конфиг, который я давал выше у меня перестаёт разблокировать другие сайты (иконки каналов, play.google.com и т. д.)

Итак, рабочая стратегия сейчас - просто анблок на билде https://github.com/Waujito/youtubeUnblock/actions/runs/11308119925 с дефолтными параметрами (в этом билде есть кнопочка reset configs, чтобы не искать эти самые параметры самим)

TheKoT commented 2 weeks ago

Не только у вас, думал опять я роутер поломал

ashenzeroone commented 2 weeks ago

Та же история

ashenzeroone commented 2 weeks ago

Попробуйте эти флаги --frag-sni-reverse=0 --seg2delay=100 --frag-middle-sni=1 --synfake=1

TheKoT commented 2 weeks ago

Попробуйте эти флаги --frag-sni-reverse=0 --seg2delay=100 --frag-middle-sni=1 --synfake=1

Спасибо тебе большое!! Работает, теперь можно спать с облегчением. Время 2:40, а мне на работу в 7:00 хд

hukarere commented 2 weeks ago

Попробуйте эти флаги --frag-sni-reverse=0 --seg2delay=100 --frag-middle-sni=1 --synfake=1

Ура, работает! Спасибо!

hukarere commented 2 weeks ago

Попробуйте эти флаги --frag-sni-reverse=0 --seg2delay=100 --frag-middle-sni=1 --synfake=1

К сожалению, хотя это работает, при запуске видео появилась задержка в 20 секунд, как только что написали в новом issue: https://github.com/Waujito/youtubeUnblock/issues/147

Waujito commented 2 weeks ago

Без синфэйка будет работать?

Upd. У меня тоже кажется отвалился, завтра будем думать

hukarere commented 2 weeks ago

Попробуйте эти флаги --frag-sni-reverse=0 --seg2delay=100 --frag-middle-sni=1 --synfake=1

К сожалению, хотя это работает, при запуске видео появилась задержка в 20 секунд, как только что написали в новом issue: #147

А теперь вообще опять перестало работать, хотя ничего не менял...

Upd.: а нет, заработало, но больше минуты надо было ждать

hukarere commented 2 weeks ago

Без синфэйка будет работать?

Upd. У меня тоже кажется отвалился, завтра будем думать

Без --synfake=1, кажется вообще не работает, а с ним видео начинает проигрываться с большой задержкой.

slbdsk commented 2 weeks ago

Попробовал вышеуказанные флаги для youtubeUnblock, но не заработало, и, возможно, из-за synfake у меня перестают загружаться все остальные сайты

В GoodbyeDPI заработала такая настройка для Ютуба: -e 2 -q --native-frag При этом может быть небольшая задержка перед началом просмотра

(Ростелеком, Кировская обл.)

aram20134 commented 2 weeks ago

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

ashenzeroone commented 2 weeks ago

Выкатываю полный список моих флагов, с ними у меня все норм работает. Но с баном дискорда я уже поднял впн и скоро уже буду просто переходить на nekoray + XTLS XRay. Если в иране и китае с ним не справились, то и у нас на долго хватит.

--faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=50

shacothejester commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

TheKoT commented 2 weeks ago

Без синфэйка будет работать? Upd. У меня тоже кажется отвалился, завтра будем думать

Без --synfake=1, кажется вообще не работает, а с ним видео начинает проигрываться с большой задержкой.

У меня всё нормально, даже пропали затупы на телефоне когда приходилось полностью перезагружать приложение Upd: На телеке задержка через раз бывает, подтверждаю. Именно только на нём

Svin-kun commented 2 weeks ago

Разбавлю сие обсуждение анекдотом. Точно так же вечером 9 числа перестали работать youtubeUnblock и SpoofDPI. При этом БЕЗ каких-либо средств обхода стали доступны другие заблокированные сайты, в частности Рутрекер и Фикбук.

TheKoT commented 2 weeks ago

Разбавлю сие обсуждение анекдотом. Точно так же вечером 9 числа перестали работать youtubeUnblock и SpoofDPI. При этом БЕЗ каких-либо средств обхода стали доступны другие заблокированные сайты, в частности Рутрекер и Фикбук.

Они сами себя рухнули, если читал новости)

TheKoT commented 2 weeks ago

Выкатываю полный список моих флагов, с ними у меня все норм работает. Но с баном дискорда я уже поднял впн и скоро уже буду просто переходить на nekoray + XTLS XRay. Если в иране и китае с ним не справились, то и у нас на долго хватит.

--faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=50

Отвалился совсем

nitro3188 commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

вот так всё летает! upd: на компе летает, на телефоне до 1ой перемотки - дальше всё виснет :(

TheKoT commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

вот так всё летает!

Подтверждаю, думал почему на ПК не работает, а надо было всего лишь флаги kyber/quic поставить на дефолт(когда с гудбаем сидел)

wizrespect commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

synfake 1 работает на все домены

В моем случае, достаточно включить synfake 1 (остальное по дефолту), но при этом перестает работать мобильное приложение Альфа банк, возможно еще какие то приложения перестанут работать

synfake 1 так же помогает для дискорда, но без голоса

nitro3188 commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

вот так всё летает!

Подтверждаю, думал почему на ПК не работает, а надо было всего лишь флаги kyber/quic поставить на дефолт(когда с гудбаем сидел)

проверь на телефоне, у меня так на пк всё летает, а вот на телефоне всё работает если не трогать перемотку - сразу затык

TheKoT commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

вот так всё летает!

Подтверждаю, думал почему на ПК не работает, а надо было всего лишь флаги kyber/quic поставить на дефолт(когда с гудбаем сидел)

проверь на телефоне, у меня так на пк всё летает, а вот на телефоне всё работает если не трогать перемотку - сразу затык

Работает перемотка. На айфоне что-то отвалился обход совсем, на андроиде работает

evengar2008 commented 2 weeks ago

МГТС, десктопная версия.

С флагами --faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=50

заработало, спасибо @ashenzeroone

hukarere commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

Скажите, пожалуйста, что это за список? Это для youtubeUnblock? Куда это его скормить или как перевести во флаги командной строки?

P.S. Прочитал, что luci -- это что-то для роутера. У меня youtubeUnblock на десктопе под ubuntu...

hukarere commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

Кажется, удалось это расшифровать и перевести в такие флаги:

/usr/local/bin/youtubeUnblock 537 --sni-domains=all --faking-strategy=tcp_check --fake-sni-seq-len=4 --frag=tcp --frag-sni-reverse=0 --frag-sni-faked=1 --frag-middle-sni=1 --frag-sni-pos=2 --fk-winsize=50 --synfake=1 --synfake-len=0 --seg2delay=100 --no-ipv6

Но лучше не стало, при запуске видео задержка до минуты :-(

egan-ru commented 2 weeks ago

На fryazino.net после 9 октября заработало Как делал: в файле /etc/systemd/system/multi-user.target.wants/youtubeUnblock.service написал в ExecStart: ExecStart=/usr/local/bin/youtubeUnblock --faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=5

egan-ru commented 2 weeks ago

Я уже старый и мне тяжело всё это дается... Очень надеюсь что найдется народный герой, который сделает скрипт, который по косвенным признакам сможет определять провайдера и дергать правильные флаги провайдера из гита, дописывая их в флаги запуска.

kompuster commented 2 weeks ago

Что-то у дом.ру ничего не работает... или я флаги неправильно прописываю. Покажите пж-та пример рабочего файла /etc/init.d/youtubeUnblock с флагами на OpenWRT

upd: да, не правильно писал, заработало

e2sembler commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

на рт норм завелось

manchelsi commented 2 weeks ago

При добавлении флага --synfake=1 перестают открываться никак несвязанные ресурсы, например https://www.ingos.ru/

itsphobia commented 2 weeks ago

У меня работает без включенного synfake

bezumkin commented 2 weeks ago

@manchelsi

При добавлении флага --synfake=1 перестают открываться никак несвязанные ресурсы, например https://www.ingos.ru/

Это нормально, у меня в интерфейсе OpenWRT так и написано:

If 1, syn payload will be sent before each request. The idea is taken from syndata from zapret project. Syn payload will normally be discarded by endpoint but may be handled by TSPU. This option sends normal fake in that payload. Please note, that the option works for all the sites, so --sni-domains won't change anything.

TheKoT commented 2 weeks ago

При добавлении флага --synfake=1 перестают открываться никак несвязанные ресурсы, например https://www.ingos.ru/

Я не почувствовал разницы пока вы не сказали, сайт действительно не отктрывается

r2d2-hash commented 2 weeks ago

При добавлении флага --synfake=1 перестают открываться никак несвязанные ресурсы, например https://www.ingos.ru/

Потому что synfake=1 влияет на весь трафик. Т.е. sni-domains никак не распространяется на synfake. Исключайте этот трафик средствами ОС.

2Waujito:

  1. опции seg2delay нет в kmod
  2. synfake в режиме kmod ломает и входящий ssh на устройство. (:
RoVRy commented 2 weeks ago

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

Да, так всё заработало! Со старым конфигом все googlevideo.com отваливаются либо по ERR_CONNECTION_RESET, либо 403 FORBIDDEN. Провайдер - местный городской, на даунлинке от транстелекома мск.

1nt commented 2 weeks ago

Билайн тула работает так(без synfake): в последней версии флаги можно через luci, а можно тут прописать - vi /etc/config/youtubeUnblock config youtubeUnblock 'youtubeUnblock' option frag 'tcp' option frag_middle_sni '1' option frag_sni_pos '2' option fk_winsize '50' option seg2delay '100' option packet_mark '32768' option fake_sni '1' option faking_strategy 'pastseq' option fake_sni_seq_len '4' option frag_sni_faked '1' option no_ipv6 '1' list sni_domains 'googlevideo.com' list sni_domains 'ggpht.com' list sni_domains 'youtube.com' list sni_domains 'ytimg.com' list sni_domains 'play.google.com' list sni_domains 'youtu.be' list sni_domains 'googleapis.com' list sni_domains 'gstatic.com' list sni_domains 'l.google.com' list sni_domains 'googleusercontent.com'

TheKoT commented 2 weeks ago

При добавлении флага --synfake=1 перестают открываться никак несвязанные ресурсы, например https://www.ingos.ru/

Я не почувствовал разницы пока вы не сказали, сайт действительно не отктрывается

Upd: Не работает RAGE Multiplayer

hukarere commented 2 weeks ago

Я попробовал все варианты флагов, которые тут предлагали выше, пока задержки до минуты при запуске видео избежать не удалось :-(

Варианты без --synfake=1 вообще не работают.

TheKoT commented 2 weeks ago

Я попробовал все варианты флагов, которые тут предлагали выше, пока задержки до минуты при запуске видео избежать не удалось :-(

Варианты без --synfake=1 вообще не работают.

Абсолютно тоже самое. Уже думаю использовать метод двух роутеров и оставить костыльный ютуб только в телевизоре для родителей, до лучших времён. На телефоне наверное придётся использовать WARP через AmneziaWG с раздельным трафиком только на дс и ютуб, на ПК zapret виндовский

jim2310 commented 2 weeks ago

На fryazino.net после 9 октября заработало Как делал: в файле /etc/systemd/system/multi-user.target.wants/youtubeUnblock.service написал в ExecStart: ExecStart=/usr/local/bin/youtubeUnblock --faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=5

--synfake=1 - перестают работать все банки, но телефоны и часть телеков начинает работать, есть у кого-то идеи как обойти?

sedukindv commented 2 weeks ago
  1. Редактируем файл /etc/init.d/youtubeUnblock с помощью vi или nano
  2. Находим строку /usr/bin/youtubeUnblock ставим пробел и дописываем --faking-ttl=15 --frag-sni-reverse=0 --seg2delay=50 --frag-middle-sni=1 --synfake=1 --frag-sni-faked=1 --fk-winsize=5
  3. Перезапускаем роутер ждем пару минут и проверяем
Izvekov commented 2 weeks ago

В какой версии пакета работает --synfake=1 ? У меня v0.3.2 - на этот ключ ругается, как недопустимый.

sedukindv commented 2 weeks ago

В какой версии пакета работает --synfake=1 ? У меня v0.3.2 - на этот ключ ругается, как недопустимый.

Версия v0.3.2, оборудование MikroTik hAP ac3, OpenWrt 23.05.5

itsphobia commented 2 weeks ago

Попробуйте tcp_check (юзаю luci для настройки, поэтому конф не флагами)

tcp_check fake sni seq 4 tcp sni reverse 0 sni faked 1 middle sni 1 sni pos 2 winsize 50 synfake 1 synfake len 0 seg2delay 100 disable ipv6 1

прогружает мобилки/smarttube ~5sec

У меня Ростелеком, город Сургут. Я использую ytunblock на роутере с openwrt и поставил эти же настройки, кроме synfake - его я вырубил. Что я имею: полурабочий ютуб, почти без задержек на ПК и телевизорах, но на телефоне ни в какую не запускается видео и спустя минуту тоже. В целом, жить могу. Благодарю за настройки.

upd: оказывается с отключенным synfake на телевизорах отваливается. печально

Waujito commented 2 weeks ago

Попробуйте --seg2delay=500 --fake-sni=0

Из минусов заметил просадки качества автонастройки и загрузка чуть дольше

itsphobia commented 2 weeks ago

Попробуйте --seg2delay=500 --fake-sni=0

Из минусов заметил просадки качества автонастройки и загрузка чуть дольше

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

hukarere commented 2 weeks ago

Попробуйте --seg2delay=500 --fake-sni=0 Из минусов заметил просадки качества автонастройки и загрузка чуть дольше

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

То же самое...

TheKoT commented 2 weeks ago

Попробуйте --seg2delay=500 --fake-sni=0

Из минусов заметил просадки качества автонастройки и загрузка чуть дольше

Не работает совсем

Waujito commented 2 weeks ago

В общем, что случилось. Предварительно, имеем простейший маппинг GGC, которые хостят только сервера googlevideo. И таким серверам просто обрубают весь TLS трафик, независимо от SNI. Видимо, синфэйк вызывает глюк у ТСПУ, и он начинает хуже анализировать трафик. Мои рабочие параметры сейчас: --synfake=1 --synfake-len=1 --fake-sni=0 --seg2delay=100 --frag-sni-faked=1 --frag-sni-reverse=0

RoVRy commented 2 weeks ago

Поигрался немного с настройками, и могу сказать следующее: "fake sni seq = 4" кладёт насмерть треть интернета. При "= 3" всё приходит в норму. При "= 2" пауза перед началом воспроизведения видео сильно уменьшается, но возрастает шанс, что видео вообще не загрузится и будет вечно крутить кольцо. При "= 1" видео начинают воспроизводиться практически сразу (0,5 - 1 с задержки), но воспроизводится дай бог 1 из 5...8 "fake-sni = 0" - весь интернет доступен вообще без нареканий, кроме youtube seg2delay не оказывает никакого заметного влияния Также любопытное замечание: если видео уже воспроизводится, то изменения настроек на нём никак не сказываются, можно даже fake-sni на лету отключить.