YT-DPI — диагностический инструмент для анализа вмешательства DPI и ТСПУ в доступ к YouTube и связанным доменам. На Windows основной код в YT-DPI.ps1 (PowerShell и низкоуровневое ядро на C# для сборки TLS на уровне байтов); рядом лежит тонкий YT-DPI.bat, который только запускает pwsh / powershell и при отсутствии .ps1 может однократно подтянуть его с GitHub. Редакция YT-DPI.sh (Bash: Linux, macOS, Git Bash на Windows, Entware на роутерах) выполняет проверки через curl и ту же логику вердиктов, что и Windows-версия.
- Кастомный список целей —
targets.txt. Рядом сYT-DPI.ps1: домены по строке, UTF‑8, комментарии#, пустые строки пропускаются. Включение [S] → 6 (UseCustomTargetsвconfig.json); [S] → 7 — экспорт текущего списка вtargets.txt(после экспорта кастомный режим включается автоматически). Еслиtargets.txtуже есть при первом запуске без поля в конфиге — использование файла включается само. - Отладочный лог. При записи
YT-DPI_Debug.logв заголовке сессии видно, загружены цели из файла или используется встроенный список; CDN к списку подмешивается только во встроенном режиме (не при кастомном файле). - Меню [S]. Пункт 6 в 2.3.3 отвечает за
targets.txt, а не за параллельный первый проход TLS; флагScanParallelTlsFirstPassпо-прежнему действует, если задан вconfig.jsonвручную. - Подробнее — в начале CHANGELOG.md (раздел v2.3.3, Windows).
Версия скрипта по-прежнему 2.3.2; в патче 2.3.3 для .sh ничего нового нет — ориентир для следующего синхронного релиза.
| Файл | Системы | Запуск |
|---|---|---|
YT-DPI.bat + YT-DPI.ps1 |
Windows 10/11 (рекомендуется), совместимость с более старыми ОС зависит от PowerShell и .NET | Оба файла в одну папку; запускайте YT-DPI.bat (двойной щелчок или из cmd/PowerShell). Используется pwsh.exe, если установлен PowerShell 7, иначе Windows PowerShell 5.1. |
YT-DPI.sh |
Linux, macOS, Git Bash (MSYS2), роутеры с Entware (OpenWrt и др.) | Терминал: chmod +x YT-DPI.sh && ./YT-DPI.sh (или bash YT-DPI.sh). На Entware скрипт сам перезапустится через bash, если оболочка по умолчанию не Bash. |
- Скачайте
YT-DPI.batиYT-DPI.ps1со страницы релиза v2.3.3 и положите в одну папку. - Если у вас остался только старый монолитный
YT-DPI.bat, замените его новым лаунчером из релиза и добавьтеYT-DPI.ps1(или удалите старый.batи распакуйте оба файла заново). - По желанию используйте отдельную папку — рядом могут появиться служебные файлы (кэш в
%LOCALAPPDATA%, отчётYT-DPI_Report.txtпри сохранении). - Права администратора не обязательны для сканирования; для Deep Trace и части сетевых операций они могут понадобиться (скрипт подскажет в справке [H]).
- Если в консоли искажается кириллица, включите UTF-8 для системы (Параметры → Время и язык → Язык и регион → Административные параметры языка → Бета: UTF-8) или запускайте через Windows Terminal; в актуальных релизах для скрипта учтена типовая кодировка Windows PowerShell 5.1.
- Скачайте
YT-DPI.shсо страницы релиза v2.3.2 - Зависимости:
bash(желательно 4+; на Bash 3 скрипт запустится, но таймауты чтения клавиш будут грубее).curlиawk— обязательны (проверка при старте). На busybox‑curl (Entware/OpenWrt и часть роутерных прошивок) скрипт тоже работает: если--tls-maxилиsocks5h://не поддерживаются, соответствующие колонки отметятся какN/A, а не упадут вDRP/FAIL.jq— необязателен; без него скрипт работает, но не читает и не пишет~/.config/yt-dpi/config.jsonи не использует кросс‑скриптовый кэш гео~/.config/yt-dpi/geo_cache.json. С установленнымjqформат конфига и формат кэша гео совместимы с Windows‑версией по основным полям.
- Сделайте файл исполняемым и запустите из терминала не меньше ≈120×30 символов (иначе таблица может «ехать»):
chmod +x YT-DPI.sh ./YT-DPI.sh
- Git Bash (Windows): установите Git for Windows, откройте Git Bash, перейдите в каталог со скриптом и выполните
./YT-DPI.sh. Скрипт определяетMSYSTEMи снижает частоту анимации, чтобы интерфейс не лагал. - macOS: нужен
curlиз системы или Homebrew; для стабильного TLS 1.3 убедитесь, чтоcurlсобран с подходящим SSL (обычно так и есть на актуальных macOS). - Entware / OpenWrt: установите пакеты
bash,curl,coreutils(дляmktempи пр.), при необходимостиjq. Запуск:/path/to/YT-DPI.shили изscreen/tmux, если SSH-сессия обрывается. Скрипт ищетbashвPATH,/opt/bin/bashи через/opt/bin/env. - Роутеры без Entware (в т.ч. ASUSWRT/Merlin со штатным busybox): нужны полноценный Bash и нормальный
curl; на «урезанном» busybox возможны долгие паузы на старте и на шагах вроде[ WAIT ] REFRESHING NETWORK STATE...до установки bash из пакетов. После старта сетевой проход по целям у многих пользователей остаётся быстрым; тяжесть сильно зависит от CPU и DNS. - Запуск одной строкой (нужен Bash): скачать скрипт с конкретного тега и сразу выполнить (например 2.3.2):
bash <(curl -Ls "https://raw.githubusercontent.com/Shiperoid/YT-DPI/2.3.2/YT-DPI.sh") - Отличия от
.bat: в этой редакции нет встроенного Deep Trace и автообновления с GitHub по клавише [U]; в нижней строке меню есть [T] TEST для проверки прокси. Выход — [Q].
- ⚙️ Низкоуровневое ядро "Barebuh Pro" (C#): Скрипт самостоятельно собирает пакеты
ClientHelloна уровне байтов. Это позволяет обходить ограничения Windows и детектировать блокировки, которые не видят обычные браузерные тесты. - 📊 Динамический адаптивный интерфейс: Таблица автоматически подстраивается под длину IPv6-адресов. Реализован режим "водопада" — результаты отображаются мгновенно по мере готовности потока.
- 🛠 Меню настроек (клавиша S): Приоритет IPv6 / только IPv4, сброс DNS‑ и сетевого кэша, режим TLS (Auto / только 1.2 / только 1.3), опциональная запись
YT-DPI_Debug.logи полные идентификаторы в заголовке лога. - ⚡ Оптимизация под PowerShell 7: Скрипт автоматически находит и использует
pwsh.exe(PowerShell Core), что значительно ускоряет работу сокетов и параллельных проверок. - 🕵️ Глубокая трассировка (Deep Trace): Кастомный TCP-Traceroute находит конкретный узел провайдера, внедряющий пакеты разрыва соединения (RST).
- 🌐 Продвинутый прокси-движок: Исправлена работа HTTPS через SOCKS5. Теперь данные о провайдере и обновления корректно загружаются даже при использовании Zapret/GoodbyeDPI.
- 🚀 Параллелизм: Адаптивный пул до ~24 параллельных воркеров скана (не больше числа целей), минимум 8; при включённом прокси потолок 12 — баланс скорости и нагрузки на сокеты/прокси.
Те же цели и смысл вердиктов (OK, RST, DRP, THROTTLED, IP BLOCK и т.д.), что и в Windows-версии, но проверки выполняет curl (HTTP-заголовок, TLS 1.2 / 1.3 по флагам curl). Терминальный интерфейс с «водопадом» строк, настройки S / прокси P, отчёт R. Конфиг при наличии jq: ~/.config/yt-dpi/config.json. Подходит для серверов Linux, ноутбуков macOS, Git Bash на той же машине, где не хотите запускать .bat, и для диагностики с роутера (Entware).
| Проблема | Техническое описание | Статус в YT-DPI |
|---|---|---|
| Фильтрация SNI | Провайдер "читает" имя сайта в пакете. | DPI RESET / DPI BLOCK |
| Блокировка QUIC | ТСПУ блокирует UDP-порт 443. | TIMEOUT на L4 |
| Шифрование Kyber | Пакеты TLS 1.3 слишком велики для старых DPI. | THROTTLED (желтый) |
| Блок по IP/CDN | Прямая блокировка серверов Google/CDN. | IP BLOCK (красный) |
- Запустите
YT-DPI.batиз папки, где лежитYT-DPI.ps1(желательно PowerShell 7 — лаунчер подхватитpwsh.exeсам). - [ENTER] — полное многопоточное сканирование.
- [S] — настройки: IPv4/IPv6, DNS-кэш и др.
- [P] — прокси SOCKS5/HTTP с историей.
- [D] — Deep Trace (TCP-трассировка до домена).
- [R] — отчёт в
YT-DPI_Report.txt. - [H] — справка по статусам и вердиктам.
- [Q] / ESC — выход (сканирование можно прервать по подсказкам в интерфейсе).
- [U] — проверка и загрузка обновления с GitHub: обновляется запущенный файл (
.batили.ps1), второй файл в папке докачивается при необходимости.
Внизу экрана отображается строка навигации; типовой набор:
- [ENTER] — сканирование целей.
- [S] — настройки (IP preference, TLS mode и др.).
- [P] — прокси (ввод в формате, аналогичном Windows-версии).
- [T] — тест текущего прокси.
- [R] — сохранение отчёта.
- [H] — краткая справка.
- [Q] — выход.
Поддерживаются те же физические клавиши при русской раскладке (например й для выхода как Q, р для справки как H).
Deep Trace и клавиша [U] (апдейтер GitHub) в .sh-редакции не реализованы — для трассировки и встроенного обновления используйте YT-DPI.bat на Windows.
Проект построен на исследованиях сообщества обхода DPI:
- GoodbyeDPI — от ValdikSS.
- Zapret — от bol-van.
- B4 — от Даниила Лаврушина.
- dpi-detector — методики детекции ТСПУ.
Распространяется по лицензии MIT. Инструмент создан исключительно для диагностических целей. Он не является средством обхода блокировок, но помогает правильно их настроить.
Создано с ❤️ для интернета без границ.