70 lines
3.7 KiB
Markdown
70 lines
3.7 KiB
Markdown
# 16. Справочник по ByeDPI (ciadpi): SOCKS5/TProxy десинхронизация
|
||
|
||
## 1. Архитектура и принцип работы ByeDPI (`ciadpi`)
|
||
|
||
`ciadpi` (ByeDPI) — это легковесный локальный прокси-сервер (SOCKS5 / Transparent TCP), который принимает исходящий трафик и выполняет фрагментацию и манипуляцию пакетами на сокетовом уровне (L7/L4).
|
||
|
||
### Ключевое отличие от Zapret:
|
||
- Zapret работает через перехват `NFQUEUE` (L3/L4 фильтрация ядра).
|
||
- ByeDPI работает как SOCKS5 прокси (по умолчанию порт `4539` в Tachyon) или прозрачный прокси, модифицируя TCP payload непосредственно перед системным вызовом `send()`/`write()`.
|
||
|
||
---
|
||
|
||
## 2. Основные параметры командной строки ByeDPI
|
||
|
||
### 2.1. Фрагментация (`--split` / `-s`)
|
||
- `--split <позиция>` или `-s <позиция>`
|
||
- **Значения позиции:**
|
||
- `1` — сплит на 1-м байте payload.
|
||
- `2` — сплит на 2-м байте.
|
||
- `1+sniext` — сплит в начале блока TLS SNI расширений.
|
||
- `midsld` — сплит посередине SLD домена.
|
||
|
||
### 2.2. Изменение порядка сегментов (`--disorder` / `-d`)
|
||
- `--disorder <позиция>` или `-d <позиция>`
|
||
- Отправляет первый сегмент с задержкой или после второго сегмента (out-of-order delivery).
|
||
|
||
### 2.3. Инжекция фейковых пакетов (`--fake` / `-f` и `--ttl` / `-t`)
|
||
- `--fake <смещение>` или `-f <смещение>` — смещение вставки фейкового пакета (`-1` = перед началом реального запроса).
|
||
- `--ttl <N>` или `-t <N>` — Time-To-Live для фейковых пакетов (обычно `4..8` в зависимости от провайдера).
|
||
|
||
### 2.4. Out-of-Band данные (`--oob` / `-o`)
|
||
- `--oob <смещение>` или `-o <смещение>` — отправка одного срочного байта TCP OOB (Urgent Pointer) на указанном смещении. Ломает разбор буфера в DPI, заставляя его пропустить пакет.
|
||
|
||
### 2.5. Автоматический режим (`--auto` / `-a`)
|
||
- `--auto=t,r,a,s`
|
||
- Адаптивный режим подбора: ByeDPI автоматически пробует комбинации флагов при обнаружении сброса соединения или таймаута:
|
||
- `t` — TLS Record splitting
|
||
- `r` — Reverse disorder
|
||
- `a` — Auto-ttl
|
||
- `s` — Simple split
|
||
|
||
### 2.6. Дополнительные опции
|
||
- `--tlsrec <N>` / `-r <N>` — деление одного ClientHello на несколько независимых TLS Records.
|
||
- `--ip-frag` — включение фрагментации на уровне IP.
|
||
- `--mod-http` / `-M` — модификация HTTP заголовков (манипуляция Host/символами переноса строки).
|
||
|
||
---
|
||
|
||
## 3. Рецепты ByeDPI
|
||
|
||
### 1. Универсальный адаптивный авто-режим
|
||
```text
|
||
-o 2 --auto=t,r,a,s -d 2
|
||
```
|
||
|
||
### 2. Disorder + Fake с контролем TTL
|
||
```text
|
||
--split 1 --disorder 1 --fake -1 --ttl 8
|
||
```
|
||
|
||
### 3. SNI Extension Split + Fake
|
||
```text
|
||
-s 1+sniext -f -1 -t 6
|
||
```
|
||
|
||
### 4. Агрессивный низко-TTL фейк
|
||
```text
|
||
--fake -1 --ttl 4 --disorder 1 --split 1
|
||
```
|