Skip to content

XHTTP через relay использует SNI relay-сервера вместо IP exit-сервера (при использовании --sni) #75

Description

@zhuykovkb

What happened?

При деплое relay с флагом --sni клиентские конфиги для XHTTP-через-relay генерируются с переданным SNI вместо IP exit-сервера. Из-за этого XHTTP-трафик роутится на Reality inbound (который его отклоняет)
вместо nginx_https → XHTTP path.

Как воспроизвести:
meridian relay deploy <IP_RELAY> <IP_SERVER> --sni yandex.com

Сгенерированный конфиг (сломано):
vless://...@<IP_RELAY>:443?security=tls&sni=yandex.com&type=xhttp&path=/vb4tvmpfkd984t51

Ожидается:
vless://...@<IP_RELAY>:443?security=tls&sni=<IP_SERVER>&type=xhttp&path=/vb4tvmpfkd984t51

Примечание: Оба relay в тестовой конфигурации деплоились с явным --sni, поэтому неизвестно, воспроизводится ли баг без этого флага (когда Meridian сканирует SNI самостоятельно). Стоит проверить.

Причина: XHTTP не имеет relay-specific inbound — весь XHTTP-трафик обрабатывается через nginx_https (SNI = IP exit-сервера). Relay — чистый TCP-форвардер, поэтому SNI в XHTTP-конфиге всегда должен указывать на exit-сервер независимо от camouflage target relay-а.

Воркэраунд: Вручную заменить sni= → sni=<IP_SERVER> в файлах sub.txt для XHTTP relay записей. Перезаписывается при следующем meridian relay deploy или meridian client add.

Setup mode

Standalone (no domain)

When does it fail?

After setup — connection doesn't work

Doctor output


Error output


Server OS

Ubuntu 24.04

Local OS

macos tahoe

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions