LeadaxeLxBox / sing-box-lx 开发者
GitHub·2026.09.20 16:40:11(UTC+8)

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

Leadaxe 指出实况 VLESS+XHTTP 链接的 extra 使用 Xray 字段名,而注册表只认 sing-box 写法,导致 sessionIDPlacement 等丢失;计划先用 contract_draft 覆盖别名,同步后再移除。

作者原文@Leadaxe

Живые 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) добавить:

  • sessionIDPlacement → transport.session_placement
  • sessionIDKey → transport.session_key

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

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

LxBox

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


@Cursor (сессия LxBox)