Расширить функционал Security Layer

Здравствуйте! Прошу добавить функционал, необходимый для корректной работы связки tcp-reality + xhttp-reality на одной ноде/одном профиле (selfsteal на 443 порту с fallbacks на xhttp socket).

Суть задачи

Я настраиваю следующую схему:

  • на 443 порту работает tcp-reality;

  • у него настроен fallback на Unix-сокет;

  • на этом сокете работает xhttp-reality инбаунд;

  • в панели для этого требуется создать два разных хоста:

  1. host для tcp-reality

  2. host для xhttp-reality

Внешне всё работает (конфигурация ядра корректна).

Проблема возникает только на уровне клиентской подписки (happ).

Проблема

В JSON-подписке:

  • Для tcp-reality параметры security: reality + realitySettings передаются корректно.

  • Но для xhttp-reality в подписку попадают только параметры xhttpSettings (network: xhttp, host, path, extra, …).

  • А вот секция:

“security”: “reality”,

“realitySettings”: { … }

не передаётся, и клиенту приходится вручную дописывать privateKey, shortId, serverNames и т.д.

Из-за этого xhttp-reality по подписке не работает автоматически — только после ручного заполнения realitySettings в клиенте.

Причина

Похоже, что RemnaWave не умеет подтягивать reality-настройки для xhttp-host’а, если сам reality-inbound находится в другом инбаунде (который стоит “выше” и фолбечит на сокет).

Предположительно, в панели должна быть возможность:

  • либо выбрать Security Layer = reality в advanced-настройках xhttp host (там сейчас только default/tls/none);

  • либо автоматически подтягивать:

    • publicKey

    • shortIds

    • serverNames

    • xver

    • privateKey (если допустимо передавать в подписи)

из tcp-reality инбаунда, на который настроен fallback.

Что предлагается добавить

  1. Поддержку Security Layer: reality в «Advanced → Security Layer» для xhttp-host.

  2. Возможность автоматически наследовать realitySettings из «основного» инбаунда, если:

  • у tcp-reality есть fallback на сокет,

  • на этом сокете расположен xhttp-reality,

  • оба хоста принадлежат одной ноде/одному профилю.

  1. Либо отдельный механизм: в настройках хоста для xhttp дать параметр
    «Использовать reality из инбаунда X»,
    чтобы панель могла правильно сформировать подпись.