📋 Короткий ответ: Порядок между --hostlist и --payload не важен
Но порядок --payload относительно --lua-desync — важен!
🔍 Как это работает
--hostlist — фильтр профиля
- Применяется ко всему профилю в целом
- Проверяется при входе соединения в профиль
- Позиция внутри профиля не важна
--payload — фильтр для --lua-desync
- Применяется к последующим
--lua-desyncфункциям - Действует до следующего
--payloadили до конца профиля - Порядок относительно
--lua-desyncважен!
✅ Эквивалентные варианты (все работают одинаково):
# Вариант 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
# ✅ ПРАВИЛЬНО: 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📊 Область действия фильтров
--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 # Конец профиля💡 Рекомендуемый стиль (для читабельности)
# Сначала фильтры профиля
--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 | Конкретный вызов | Да (последовательность вызовов) |