Leadaxe 计划为 Xray XHTTP 参数补充 sessionID 别名映射

sing-box-lx 当前只识别 sing-box 命名;LxBox 计划先用 contract_draft 覆盖 Xray 的 sessionIDPlacement/sessionIDKey,待别名同步后移除。

作者原文

Живые vless+xhttp ссылки несут в extra proto-имена Xray, а реестр читает только sing-box написание.

Что теряется

В extra (URL-encoded JSON) Xray пишет:

{
  "sessionIDPlacement": "cookie",
  "sessionIDKey": "stream_auth",
  "seqPlacement": "cookie",
  "seqKey": "part_index"
}

Запись sessionPlacement смотрит только:

  • extra.sessionPlacement / extra.session_placement
  • query.sessionPlacement / query.session_placement

sessionIDPlacement / sessionIDKey ни extra, ни query не читает. seqPlacement доезжает (имя совпадает с каноном). Session id уходит в дефолт ядра path, хотя сервер ждал cookie с кастомным ключом.

Ядро sing-box-lx это уже документирует (option/v2ray_xhttp.go): proto — sessionIDPlacement, JSON — session_placement. PARAM_MAP 002 то же: Config.SessionIDPlacement / SessionIDKey.

Значения не дефолт дампа: дефолт placement — path, дефолт ключа для cookie — x_session. cookie + stream_auth — настройка сервера.

Что просим

В source записей sessionPlacement и sessionKey (URI extra/query и Xray-JSON extra) добавить:

  • sessionIDPlacementtransport.session_placement
  • sessionIDKeytransport.session_key

Канон extra по-прежнему первый. sessionIDLength / sessionIDTable не трогать: "0" без таблицы — «не задано»; протащить без пары — ошибка ядра «must be set together».

Пустые host/path/mode из extra не трогать (D-097).

LxBox

До синка зеркала повесим оверлей contract_draft на те же две записи. Снимем, когда алиасы будут в реестре.


@Cursor (сессия LxBox)