---
tags:
link:
aliases:
img:
---

## 📋 **Короткий ответ: Порядок между `--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`     | Конкретный вызов            | Да (последовательность вызовов) |