Контекст: ByeDPI — это локальный SOCKS5-прокси, который работает на уровне TCP-сессий и манипулирует пакетами так, чтобы обмануть DPI-систему провайдера.
Как это работает?
Провайдеры используют Deep Packet Inspection (DPI) — оборудование, которое анализирует содержимое пакетов в реальном времени. Когда вы открываете сайт из реестра запрещённых (или наоборот из белого списка), DPI перехватывает первый пакет (ClientHello в TLS) и блокирует соединение.
ByeDPI обходит это несколькими способами:
- Фрагментация — разбивает первый пакет на части, так что DPI не успевает собрать полный ClientHello
- Десинхронизация — вставляет «мусорные» или фейковые пакеты с некорректным TTL, которые до DPI не доходят, но путают его логику
- Изменение параметров TCP — манипуляции с Window Size, OOB-данными и другими флагами
Установка
Windows
- Скачайте последний релиз с GitHub:
ciadpi(Windows-билд ByeDPI) - Распакуйте в удобную папку, например
C:\byedpi\ - Запустите через командную строку (не двойным кликом — нужны аргументы)
ciadpi.exe --port 1080 --desync-frag --tlsrec 1+s
Linux
git clone https://github.com/hufrea/byedpi.git
cd byedpi
make
./ciadpi --port 1080
Android
Приложение ByeDPI for Android (есть на GitHub как APK) — работает как локальный VPN-интерфейс, не требует root.
Параметры: что реально работает и почему?
Это самая важная часть. Универсального рецепта нет — всё зависит от вашего провайдера и его DPI-оборудования. Но есть логика подбора.
Базовые флаги, с которых стоит начать
ciadpi --port 1080 --desync-frag --tlsrec 1+s --ip-opt -
| Флаг | Что делает | Когда помогает |
|---|---|---|
--desync-frag | Фрагментирует TCP на уровне приложения | Большинство провайдеров с базовым DPI |
--tlsrec 1+s | Разбивает TLS-запись по байтам | ТСПУ (Россия), сложные DPI |
--ip-opt - | Добавляет IP Options в пакет | Оборудование Эриксон/Cisco |
--fake-sni | Отправляет фейковый SNI в первом пакете | Блокировки по SNI |
--ttl 5 | Устанавливает TTL для фейковых пакетов | Десинхронизация через TTL-expiry |
Продвинутая стратегия подбора
Шаг 1. Сначала проверьте, работает ли простая фрагментация:
ciadpi --port 1080 --split 1+s
Если сайт открылся — у вашего провайдера слабый DPI, достаточно минимальных настроек.
Шаг 2. Если нет — добавляем десинхронизацию:
ciadpi --port 1080 --desync-frag --fake-data --ttl 8
Шаг 3. Для провайдеров с ТСПУ (типичная ситуация для России):
ciadpi --port 1080 --tlsrec 1+s --desync-frag --oob 1 --disorder 1
Шаг 4. Если блокируется именно по SNI (YouTube, Discord):
ciadpi --port 1080 --tlsrec 1+s --split 1 --disorder
Как направить трафик через ByeDPI?
ByeDPI сам по себе — только прокси на 127.0.0.1:1080. Его нужно использовать совместно с другим инструментом.
Вариант 1: Системный прокси (Windows)
Параметры → Сеть → Прокси → Ручная настройка:
- Хост:
127.0.0.1 - Порт:
1080 - Тип: SOCKS5
Вариант 2: Proxifier или Netch
Удобнее, так как можно настроить правила — только заблокированные домены идут через прокси, остальное — напрямую.
Вариант 3: v2ray/sing-box как frontend
{
"outbounds": [{
"type": "socks",
"server": "127.0.0.1",
"server_port": 1080
}]
}
Так можно использовать полноценные правила маршрутизации по доменным спискам.
Вариант 4: На роутере (OpenWrt)
Через redsocks перенаправляем трафик нужных хостов в SOCKS5 ByeDPI. Это элегантно — весь домашний трафик обходит блокировки без настройки на каждом устройстве.
Типичные проблемы и их решение
Сайт открывается, но очень медленно Причина: слишком агрессивная фрагментация. Уменьшите --split или уберите --disorder.
Работает в браузере, но не в приложении Приложение, вероятно, не поддерживает SOCKS5. Используйте Proxifier или Netch для перехвата трафика на уровне процессов.
Перестало работать после обновления провайдера DPI-системы обновляются. Нужно менять стратегию — попробуйте добавить --tlsrec или изменить точку разбивки.
YouTube работает, а Discord нет (или наоборот) Разные сервисы могут блокироваться разными методами. Создайте два профиля запуска с разными параметрами и используйте v2ray/sing-box для маршрутизации по домену.
Практический совет по отладке
Лучший способ понять, что происходит — использовать --log-level debug и смотреть вывод при попытке открыть заблокированный сайт. Также полезно параллельно запустить Wireshark и посмотреть, как выглядят пакеты — видно, дошёл ли ClientHello до сервера или был сброшен.
Сообщество в Telegram (поиск по «ByeDPI» или «обход блокировок DPI») — актуальный источник рабочих конфигов под конкретных провайдеров, так как там люди делятся опытом в реальном времени.
Важный момент про белые списки
Если провайдер использует белый список (пропускает только то, что явно разрешено, а остальное блокирует) — ByeDPI здесь не поможет напрямую, так как это не DPI-блокировка, а firewall-уровень. В таком случае нужен либо VPN через разрешённый порт (443, 80), либо туннелирование трафика через разрешённый хост (CDN-проксирование через Cloudflare Workers, например).
ByeDPI эффективен именно против DPI-блокировок по чёрным спискам — когда трафик технически проходит, но оборудование провайдера его режет по содержимому.