## 📋 **Короткий ответ: Порядок между `--hostlist` и `--payload` не важен** Но **порядок `--payload` относительно `--lua-desync` — важен!** --- ## 🔍 **Как это работает** ### **`--hostlist`** — фильтр **профиля** - Применяется ко всему профилю в целом - Проверяется при входе соединения в профиль - Позиция внутри профиля не важна ### **`--payload`** — фильтр для **`--lua-desync`** - Применяется к **последующим** `--lua-desync` функциям - Действует до следующего `--payload` или до конца профиля - **Порядок относительно `--lua-desync` важен!** --- ## ✅ **Эквивалентные варианты (все работают одинаково):** ```bash # Вариант 1: hostlist первый --hostlist=list.txt --payload=tls_client_hello --lua-desync=fake:blob=fake_default_tls # Вариант 2: payload первый --payload=tls_client_hello --hostlist=list.txt --lua-desync=fake:blob=fake_default_tls # Вариант 3: hostlist в конце --payload=tls_client_hello --lua-desync=fake:blob=fake_default_tls --hostlist=list.txt ``` **Все три варианта работают одинаково!** --- ## ⚠️ **Что ВАЖНО: порядок `--payload` и `--lua-desync`** ```bash # ✅ ПРАВИЛЬНО: payload ПЕРЕД lua-desync --payload=tls_client_hello --lua-desync=fake:blob=fake_default_tls # ❌ НЕПРАВИЛЬНО: payload ПОСЛЕ lua-desync (не влияет на эту функцию!) --lua-desync=fake:blob=fake_default_tls --payload=tls_client_hello ``` --- ## 📊 **Область действия фильтров** ```bash --filter-tcp=80,443 # Фильтр профиля (весь профиль) --filter-l7=http,tls # Фильтр профиля (весь профиль) --hostlist=youtube.txt # Фильтр профиля (весь профиль) --payload=http_req # Фильтр lua-desync (до следующего --payload) --lua-desync=fake:blob=fake_default_http # Применяется фильтр http_req --lua-desync=multisplit:pos=method+2 # Применяется фильтр http_req --payload=tls_client_hello # Новый фильтр (отменяет предыдущий) --lua-desync=fake:blob=fake_default_tls # Применяется фильтр tls_client_hello --new # Конец профиля ``` --- ## 💡 **Рекомендуемый стиль (для читабельности)** ```bash # Сначала фильтры профиля --filter-tcp=443 --filter-l7=tls --hostlist=mylist.txt # Потом payload + lua-desync группами --payload=tls_client_hello --lua-desync=fake:blob=fake_default_tls:tcp_md5 --lua-desync=multisplit:pos=1,midsld --new ``` Это не обязательно, но **легче читать и поддерживать**. --- ## 📝 **Итог** | Параметр | Область действия | Порядок важен? | | ------------------ | --------------------------- | ------------------------------- | | `--filter-tcp/udp` | Весь профиль | Нет | | `--filter-l7` | Весь профиль | Нет | | `--hostlist` | Весь профиль | Нет | | `--ipset` | Весь профиль | Нет | | `--payload` | До следующего `--payload` | **Да, перед `--lua-desync`** | | `--out-range` | До следующего `--out-range` | **Да, перед `--lua-desync`** | | `--in-range` | До следующего `--in-range` | **Да, перед `--lua-desync`** | | `--lua-desync` | Конкретный вызов | Да (последовательность вызовов) |