Обход блокировки YouTube и некоторых сайтов на MikroTik за 5 минут

Настроил на ax3 по последней инструкции, в браузере Ютуб заработал, но приложения на мобиле а так же воспроизведение с мобилы на коди работать отказалось. Всяко разно упражнялся с аргументами контейнера-так и не заработало. Может быть не все домены ютуба в списке указаны? Или куда ещё можно посмотреть? Трассировку с мобилы снимал, там домен youtube.com заворачивался в контейнер. Ещё не разобрался как tmdb завернуть в контейнер, вроде кучу всяких доменов tmdb завернул по типу остальных доменов но Коди ругается на невозможность соединения с ней.
В общем, айнидхелп.
И ещё вопрос- аргументы настроек контейнера можно брать из подборки в byebyedpi для андроида?

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

Отключите ipv6 везде где можно, зачастую он сам себе проблемы из ничего создает, тк SLAAC. Ну и практика показывает, что не все домены надо пропускать через byedpi и на теликах так вообще стоит погасить быстрый запуск, чтобы из кэша не тянуло не понятно что. Плюс на перехват dns еще добавить порты 1253, 5353, чтобы наверняка. И да, выше для dscp стереть -PolicyStore “ActiveStore”, чтобы работала маркировка трафика всегда, а не только до ребута, почему-то нельзя редачить посты.

Ставит в тупик то, что в браузере на мобиле Ютуб работает а из приложения на той же мобиле не работает. По логике получается что приложение идёт на какие-то другие домены.
Не совсем понимаю как настроить работу именно приложения Ютуба через сокс.
Переборка аргументов это отдельный кекс.
Как правильно их менять? Надо ли тормозить контейнер и ребутать роутер после изменения аргументов?

Да, контейнер перезапускать надо после изменений. И частные dns не включены ли еще на телефоне?

Ipv6 вроде отключал. У меня на Коди не совсем приложение. Есть функция в телефоне при просмотре Ютуба из браузера или приложения перенести воспроизведение выбранного ролика на Коди. Как это реализовано я хз. По факту раньше все это работало абсолютно стабильно и без глюков, выбрал ролик и отправил его в Коди. Сейчас получилось, что в браузере я ролик смотрю, но отправив его на Коди воспроизведения нет. Из логического объяснения только то, что какие-то домены пролетают мимо контейнера, тем самым не работает оно как должно. Вроде понятно расписал.

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

А приложение банально пробовали остановить и ему кэш сбросить? nslookup на телефоне правильно все выводит или у вас ифон?

Я ребутал телефон полностью и Коди неоднократно. Лукапом не смотрел, через приложуху Fing посмотрел трассировку нескольких доменов Ютуба из руководства по настройке, все заворачивались на ip контейнера. Опять таки если следовать логике и в браузере работает а приложение нет, то 99,9% что-то не заворачивается в контейнер а идёт через днс провайдера а не через контейнер и DoH

Попробуйте заново все настроить с соблюдением актуальной инструкции и без переделок после.

На выходных ещё раз попробую. Откатился пока на состояние до настройки. Как можно поймать трафик от приложения мобилы? Глянуть бы куда оно ломится и скорее всего это бы сняло вопрос

Либо ещё как дурацкое предположение может быть стоит попробовать не через 1.1.1.1 DoH а через 9.9.9.9? Хотя с точки зрения логики пофигу. Если бы была проблема с днс то нигде бы не работало, в браузере в том числе. И да, рутрекер работал тоже. Остальные домены я не добавлял в контейнер

В вашем случае может быть все что угодно, пробуйте - что будет работать, то и оставьте.

Подскажите, пожалуйста: В инструкции на Хабре в разделе про установку mangle - правил указано 2 правила:

/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-list=za_dpi_FWD in-interface-list=LAN new-connection-mark=to_dpi passthrough=yes
/ip firewall mangle add action=mark-routing chain=prerouting comment="To DPI" connection-mark=to_dpi in-interface-list=LAN new-routing-mark=dpi_mark passthrough=no routing-mark=!dpi_mark

При этом непосредственно у Wiktorbgu на hub.docker.com/r/wiktorbgu/byedpi-hev-socks5-tunnel, указано одно правило:

/ip firewall mangle add action=mark-routing chain=prerouting comment="List DNS FWD route to byedpi tunnel" dst-address-list=za_dpi_FWD in-interface-list=LAN new-routing-mark=dpi_mark passthrough=no

Как я понимаю, это два разных варианта одного и того же действия, при этом второй вариант проще первого. Правильно ли я понял, и если да, то какой вариант предпочтительнее?

На докер хабе просто образно набросок для понимания как это использовать.
На хабре более правильно и там обновляемая инфа.

Ясно, спасибо Вам огромное!
Очень Вам признателен за потрясающие разработки!

Решил немного подобновить инструкцию от себя с учетом некоторых моментов:

Summary
Если команда /system/device-mode print показывает container: yes , то все ок, если нет, то для включения режима контейнеров на устройстве нужно выполнить следующую команду и следовать инструкциям в консоли(перезагрузить или нажать кнопку на роутере):

/system/device-mode/update container=yes 

/tool fetch https://upgrade.mikrotik.com/routeros/7.17rc7/container-7.17rc7-arm64.npk
# или в зависимости от проца
/tool fetch https://upgrade.mikrotik.com/routeros/7.17rc7/container-7.17rc7-arm.npk
# и ребут для установки
/system/reboot


/ip smb set enabled=no
#необязательно, если не будет использоваться флешка, но таки рекомендуется, чтобы не изнашивать встроенную память
/disk settings set auto-smb-sharing=no auto-media-sharing=no
/disk format-drive usb1 file-system=wipe duration=10s
/disk add type=partition parent=usb1 partition-size=8G 
#основной раздел, поменяйте размеры по необходимости в зависимости от размера флешки
/disk add type=partition parent=usb1 partition-size=512M
#подкачка
/disk format-drive usb1-part1 file-system=ext4
/disk set swap=yes usb1-part2

/ip dns set servers=1.1.1.2,1.0.0.2
# задает опорные plaindns с фильтрацией от вредоносных доменов
/tool fetch https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem
# дождаться скачивания сертификата и затем можно копировать все команды целиком
/certificate import file-name=DigiCertGlobalRootG2.crt.pem passphrase=""

/ip dns set use-doh-server=https://security.cloudflare-dns.com/dns-query verify-doh-cert=yes
# задает dns over https с фильтрацией от вредоносных доменов

/interface/bridge add name=Bridge-Docker port-cost-mode=short
# создание интерфейсов для контейнера
/ip/address add address=192.168.254.1/24 interface=Bridge-Docker network=192.168.254.0
/interface/veth add address=192.168.254.2/24 gateway=192.168.254.1 name=BYEDPI-TUN
/interface/bridge/port add bridge=Bridge-Docker interface=BYEDPI-TUN

/container/config set registry-url=https://registry-1.docker.io tmpdir=/usb1-part1/docker/pull
#настройка адреса для получения контейнеров
/container/add remote-image=wiktorbgu/byedpi-hev-socks5-tunnel:mikro interface=BYEDPI-TUN cmd="-K u -a 5 --auto=none -Kt,h -d1 -s0+s -d3+s -s6+s -d9+s -s12+s -d15+s -s20+s -d25+s -s30+s -d35+s -An -Ku -a1 -An --debug 1" root-dir=/usb1-part1/docker/byedpi-hev-socks5-tunnel logging=yes start-on-boot=yes
#скачивает контейнер и задает аргументы для byedpi, впишите свои в cmd="если не работают эти"

# set to default
/ip/dns set address-list-extra-time=0s
#внесение в список сайтов и доменов, которые нужно гонять через контейнер 
/ip dns static
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=cloudflare-ech.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=googlevideo.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=googleapis.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=youtube.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=ytimg.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=youtu.be ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=ggpht.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=rutracker.org ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=rutracker.cc ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=medium.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=facebook.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=fbcdn.net ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=fbcdn.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=x.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=twitter.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=linkedin.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=prntscr.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=prnt.sc ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=t.co ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=protonvpn.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=nnmclub.to ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=ntc.party ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.gg ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.co ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=dis.gd ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discordstatus.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.gift ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.new ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.dev ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discordcdn.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.media ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discord.app ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discordapp.net ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=discordapp.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=instagram.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=cdninstagram.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=deviantart.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=parastorage.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=wixstatic.com ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=e621.net ttl=1d type=FWD
add address-list=za_dpi_FWD disabled=no forward-to=localhost match-subdomain=\
    yes name=dragonfru.it ttl=1d type=FWD	
	
/routing/table add disabled=no fib name=dpi_mark
#настройка таблицы для обработки контейнером byedpi

/ip/route add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.254.2%Bridge-Docker pref-src="" routing-table=dpi_mark scope=30 suppress-hw-offload=no target-scope=10

/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-address-list=za_dpi_FWD in-interface-list=LAN new-connection-mark=to_dpi passthrough=yes
#прописывание правил маркировки трафика в контейнер
/ip firewall mangle add action=mark-routing chain=prerouting comment="To DPI" connection-mark=to_dpi in-interface-list=LAN new-routing-mark=dpi_mark passthrough=no routing-mark=!dpi_mark

/ip firewall filter set [find action=fasttrack-connection] packet-mark=no-mark connection-mark=no-mark

/ip/firewall/address-list/ add address=10.0.0.0/8 list=local
#указываем адреса локальных подсетей
/ip/firewall/address-list/ add address=172.16.0.0/12 list=local
/ip/firewall/address-list/ add address=192.168.0.0/16 list=local

/ip firewall nat add action=redirect chain=dstnat dst-address-list=!local dst-port=53,1253,5353 in-interface-list=LAN protocol=udp
/ip firewall nat add action=redirect chain=dstnat dst-address-list=!local dst-port=53,1253,5353 in-interface-list=LAN protocol=tcp

:delay 20s
#задержка на 20 секунд перед стартом, чтобы успел контейнер скачаться и развернуться

/container start [find interface=BYEDPI-TUN]
#запускаем byedpi и можно проверять как открываются сайты из списка выше

для настройки обхода с discord:
1. на компе в powershell от админа (работать будет только на Windows, глючнекс и макака с ведроидом требуют аналогичной маркировки трафика, а без нее только статичный контент)
New-NetQosPolicy -name "discord" -NetworkProfile All -DSCPAction 34 -AppPathName discord.exe -IPProtocol Both
2. добавить маркировку на роутере и правило поднять выше ранее созданных в Mangle
/ip firewall mangle add action=mark-connection chain=prerouting comment="34 - to_dpi" connection-mark=no-mark dscp=34 in-interface-list=LAN new-connection-mark=to_dpi

Привет, парни.
Перенастроил железку через DoH 9.9.9.9 и все заработало как раньше.
Ютуб заработал на телефоне через приложуху, получилась трансляция
с телефона в коди и т.п. Спасибо вам за советы и ответы.
Остался один маленький нюанс- как правильно перебирать аргументы DPI в контейнере.
Алгоритм, если я правильно все понимаю, такой- стоп контейнер, выставляем параметры, старт контейнер. А перезагрузка роутера нужна? А перезагрузка клиентов?

Все правильно понимаете. Больше никого перезагружать не надо.

Спасибо Вам и Лису большое за ваш труд и ответы