bol-van / zapret

DPI bypass multi platform
8.3k stars 633 forks source link

AndroidTV YourTube client #233

Open dmiceman opened 3 months ago

dmiceman commented 3 months ago

Здравствуйте. Нет ли у кого-нибудь идеи о путях решения такой проблемы: поставил zapret на роутер с openwrt, за ним телевизор и другие компы. На компах и на телевизоре в альтернативном клиенте Smart Youtube Beta все работает, не идеально, но приемлемо. Но вот официальный клиент ютуба как будто бы вообще никакого эффекта не видит. В zapret-hosts-user.txt googlevideo.com прописано. Плюс, zapret-hosts-auto.txt поддомены оттуда нахватал. Но вот никак. Нет ли у кого-нибудь идей, что еще ему может быть нужно? Заранее большое спасибо!

bol-van commented 3 months ago

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

dmiceman commented 3 months ago

Супер! Спасибо огромное! Действительно, там ходил UDP на 443 порт. При затыкании, переключится на TCP и все, кажется, стало хорошо.

Laimfo commented 3 months ago

Супер! Спасибо огромное! Действительно, там ходил UDP на 443 порту. При затыкании, переключится на TCP и все, кажется, стало хорошо.

Привет, можешь объяснить для чайников что делать? Я в этой теме 0. zapret ели поставил, на пк Youtube в 4к летает, а на теликах пишет отсутствует подключение, причем только у youtube. (Keenetic giga)

dmiceman commented 3 months ago

Может быть кто-то, кто знаком с Keenetic что-то сможет точнее подсказать, я вот никогда с ним не общался. Но вообще, возможно, задача в том что бы не пропускать пакеты UDP на 443 порт с телевизора наружу, как в моем случае. Я даже думаю, задачу можно упростить, не пропускать вообще UDP пакеты на порт 443 из внутренней сети, что бы не возиться с назначением статического адреса. Правда не знаю, что при этом может отвалиться из сервисов гугла. Но, предположим, это допустимое упрощение. Тогда на роутере надо найти где настраивается Firewall, найти как добавить новое правило, которое должно звучать как «Из внутренней зоны во внешнюю, UDP (это важно) пакеты на 443 порт (тоже важно) не пропускать». Причем там наверняка будет выбор, делать drop пакетов или reject. Надо именно reject, что бы ничего не тупило. На древнем openwrt это выглядит так: Screenshot_20240808_114033

Laimfo commented 3 months ago

Спасибо, сначала вроде более-менее сделал, но через 2 часа всё стало как и раньше. Выставил TCP/3389 для телевизора, по гайду на сайте Keenetic. Может кто подсказать, может другой протокол поставить? Пробовал сделать как указано выше, но телек не видит подключения к инету. Влияет ли на это какой у тебя ip белый или серый? image

dmiceman commented 3 months ago

Это вообще из другой оперы. Это правило разрешает входящие соединения из сети на телевизор на порт 3389, и это точно не то что нужно что бы ютуб на телевизоре работал. Если вы сделали блокировку UDP на 443 порт и оно через два часа перестало работать, не указали ли вы, случайно, в правиле текущий ip телевизора во внутренней сети? Они меняются периодически. Что бы этого не происходило, необходимо зафиксировать за телевизором конкретный ip где-то в настройках внутреннего DHCP-сервера. В Keenetic такое точно должно быть.

gavrilovegor519 commented 3 months ago

Что бы этого не происходило, необходимо зафиксировать за телевизором конкретный ip где-то в настройках внутреннего DHCP-сервера. В Keenetic такое точно должно быть.

В Keenetic это делается регистрацией MAC-адреса ("устройства" в терминологии Keenetic) в веб-интерфейсе роутера, там присваивается имя устройства, и дальше с ним можно делать что угодно (присваивать постоянный IP, ставить "интернет-фильтры" (прописанные в самой прошивке DNS-сервисы + SkyDNS) для разных устройств, отслеживать скорость и потраченный трафик конкретного устройства, и так далее).

VPO205 commented 3 months ago

Подскажите, почему может не работать ютуб ни на андроид тв, ни на смарт тв LG и Samsung. На ПК и смартфонах всё работает идеально. В теме не разбираюсь совсем, куда копать? Еле разобрался, как накататить сам zapret. По инструкции выше пытался настроить, чтобы не пропускало пакеты на 443 порт, к сожалению не помогло ни на одном из устройств. Возможно у меня проблема в чём то другом, но как проверить?

zatrit commented 3 months ago

Если не помогает даже с запретом QUIC, то можно попробовать SmartTube. В связке с zapret у меня он отлично справляется

maximwarner commented 3 months ago

Написал комментарий про костыль, который использую. Попробуйте у себя.

У меня точно та же ситуация на Android TV. 443 порт тоже не помог. Интересно то, что ютуб не может только стартовать под zapret, а после старта, отлично с ним работает. Я делаю так: подключаюсь к Wi-Fi без запрета. Ютуб, долго, но загружается, включается без ошибок сети. Затем снова переключаюсь на Wi-Fi с активным zapret и можно спокойно смотреть видео без каких-либо зависаний. До того, как закроете ютуб. Потом придется все это повторять. Пока что, пока не нашел как побороть проблему с запуском, приходится использовать такой костыль. Попробуйте, может хоть так сможете смотреть.

dmshel commented 3 months ago

Написал комментарий про костыль, который использую. Попробуйте у себя.

У меня точно та же ситуация на Android TV. 443 порт тоже не помог. Интересно то, что ютуб не может только стартовать под zapret, а после старта, отлично с ним работает. Я делаю так: подключаюсь к Wi-Fi без запрета. Ютуб, долго, но загружается, включается без ошибок сети. Затем снова переключаюсь на Wi-Fi с активным zapret и можно спокойно смотреть видео без каких-либо зависаний. До того, как закроете ютуб. Потом придется все это повторять. Пока что, пока не нашел как побороть проблему с запуском, приходится использовать такой костыль. Попробуйте, может хоть так сможете смотреть.

Аналогично, только тв самсунг, то открывает ютуб n-го раза и работает, то по 10 раз в ошибку падает при открытии, на всех др устройствах в сети все работает прекрасно

maximwarner commented 3 months ago

Мне помог этот конфиг! Ютуб на ATV теперь работает! Попробуйте тоже, у кого не работал https://github.com/bol-van/zapret/discussions/200#discussioncomment-10230793

almirus commented 2 months ago

чтобы не делал, какие бы конфиги не ставил, обход работает ВЕЗДЕ (на компе, на телефоне), кроме стандартного youtube плеера на Android TV просто пишет что нет сети (другие приложения работают отлично)

bol-van commented 2 months ago

сегодня разбирал по чьей-то просьбе дамп с телика самсунг средней степени старости оказалось, что основная причина проблем - использование tls 1.2 и недостаточность стратегии для пробива проверки TLS ServerHello. то есть ответа сервера и блокировка/замедление некоторых технических доменов облаков и самсунга после замены стратегии на стратегию с фейками и добавления этих доменов в лист проблема ушла

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

almirus commented 2 months ago

@bol-van это наверно на специфической ОС типа Tizen

У меня же Android TV 11 на Nvidia Shiled 2019 и Amazon Fire stick 4max - Android 9

на обоих стандартный клиент, если без zapret на openwrt запускать то интерфейс приложения Youtube появляется через несколько десятков секунд, но если интерфейс был загружен, а потом запустить nfqws --dpi-desync=split2 то видео не тормозит если выгрузить Youtube и запустить с активным zapret то сразу нет сети и приложение не запускается

Laimfo commented 2 months ago

Долго не мог вернуться к этой теме и попробовать варианты описаные выше. Но один знакомый посоветовал обратиться к провайдеру и подключить статический ip. После подключения заработал YouTube на Xbox series X. Возможно роль сыграл и dns который я ставил для Xbox, чтоб приставка работала в России. По итогу zapret + dns + ip = 4K на телике без тормозов (не могу утверждать что только это повлияло на работу YouTube на консоли).

bol-van commented 2 months ago

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

almirus commented 2 months ago

@bol-van делал впервые, надеюсь правильно собрал tcpdump -i wl1-ap0 host 192.168.1.219 -U -s0 -w /tmp/dump.txt

МТС Москва итак, openwrt который раздает wifi 1) подключен Shield, Android Tv, стандартный youtube клиент, zapret не запущен; медленно грузится интерфейс приложения, списки видео появляются через десятки секунд, ролики жутко тормозят dump_without_zapret.zip

2) подключен Shield, Android Tv, стандартный youtube клиент, zapret запущен (NFQWS_OPT_DESYNC="--dpi-desync=fake,split2 --dpi-desync-ttl=7" пробовал разные варианты), приложение Youtube сразу сообщает что нет сети, но если список роликов предварительно загружен, то ролики летают dump_with_zapret.zip

где то нашел такую проверку в лоб curl https://www.youtube.com/ --tls-max 1.2 - тормозит

almirus commented 2 months ago

@bol-van я собрал пакеты, выше

bol-van commented 2 months ago

В дампе без zapret hdrezka блокируется в варианте "зависание" (блок tcp tuple на dpi) youtube теряет пакеты В дампе с zapret (?) youtube теряет пакеты Вывод : либо zapret не работает (неправильно настроен, не срабатывает по какой-то причине), либо стратегия не работает. Точнее сказать не могу, потому что дамп с внутреннего интерфейса, дурение не видно

voidprox commented 2 months ago

@bol-van

сегодня разбирал по чьей-то просьбе дамп с телика самсунг средней степени старости оказалось, что основная причина проблем - использование tls 1.2 и недостаточность стратегии для пробива проверки TLS ServerHello. то есть ответа сервера и блокировка/замедление некоторых технических доменов облаков и самсунга после замены стратегии на стратегию с фейками и добавления этих доменов в лист проблема ушла

А можно узнать весь список заблокированных доменов самсунга? И что за стратегия использовалась.

bol-van commented 2 months ago

там было только lcprd1.samsungcloudsolution.net стратегия нужна с fake, если телик пользуется tls 1.2

almirus commented 2 months ago

лично у меня на мгтс (мтс) android tv заработал с таким конфигом

MODE=nfqws
# apply fooling to http
MODE_HTTP=0
# for nfqws only. support http keep alives. enable only if DPI checks for http request in any outgoing packet
MODE_HTTP_KEEPALIVE=0
# apply fooling to https
MODE_HTTPS=1
# apply fooling to quic
MODE_QUIC=1
# none,ipset,hostlist,autohostlist
MODE_FILTER=none

NFQWS_OPT_DESYNC="--dpi-desync=fake,split2 --dpi-desync-split-pos=1 --dpi-desync-ttl=3 --dpi-desync-fooling=md5sig"

очень смущает MODE_FILTER=none но подозреваю что раньше у меня не работало, так как в этом списке не было всех блокируемых доменов гугла для Android TV а сейчас получается все домены проходят через мясорубку...

Panaman123 commented 1 month ago

Взываю к помощи! Провайдер Сибирский Медведь, Краснодар. Zapret на keenetic работал относительно долгое время, пару недель назад перестало. Сегодня решил разобраться. Пробовал кучу разных комбинаций, но так не не победил. При этом, на компьютере работает в части браузеров (opera, edge), не работает в другой (яндекс, firefox). На android не работает ни в родном приложении, ни в браузере ни в smarttube. Удалось победить на android через приложение byedpi с параметрами -s1 -o1 -Ar -o1 -At - f-1 -r1+s -As Не могу понять, как перевести эти параметры "на язык" zapretа