Reality и маскировка

VLESS-мост между нодами: почему Reality отвергает транзит

Vision-flow конструируется из клиентского хоста, которого у внутреннего моста нет. Рабочий вариант — plain VLESS/TCP с security none.

5 мин чтения

Симптом

Строите транзит между двумя своими нодами: вход → внутренний bridge → выход. Инъекция служебного пользователя в bridge-инбаунд то не работает вовсе, то Reality на промежуточном узле молча отвергает соединение. Прямые пользовательские подключения при этом в порядке.

Причина: flow берётся из хоста, которого у моста нет

Три варианта моста, разобранные на практике:

  1. Shadowsocks-bridge — панель не инжектит пользователей в shadowsocks-инбаунд, механизма нет.
  2. VLESS+Reality-bridge — инъекция работает, но Reality отвергает пустой flow. А vision-flow (xtls-rprx-vision) панель конструирует из клиентского хоста. У внутреннего моста хоста нет → flow приходит пустым → Reality рвёт соединение.
  3. VLESS/TCP с security: none — пустой flow валиден, инъекция служебного пользователя проходит, мост работает.

То есть vision-flow, обязательный для Reality, собирается из клиентской записи-хоста. Безхостовый служебный инбаунд получить его не может в принципе.

Решение

Вывод. Некоторые параметры протокола конструируются на определённом уровне абстракции и недоступны на других. Reality vision-flow привязан к клиентскому хосту, поэтому его нельзя «просто задать» на служебном безхостовом инбаунде. Когда автоматизация не может сформировать обязательное поле — выбирайте транспорт, для которого это поле не требуется или валидно пустым, вместо борьбы со слоем, который поле не отдаёт.

Как подключиться за 2 минуты
Частые вопросы

Частые вопросы

Почему Reality отвергает соединение на внутреннем мосту между нодами?
Vision-flow (xtls-rprx-vision), обязательный для Reality, панель конструирует из клиентского хоста. У внутреннего служебного моста хоста нет, поэтому flow приходит пустым, и Reality рвёт соединение.
Работает ли Shadowsocks как мост между нодами?
Нет, панель не инжектит пользователей в shadowsocks-инбаунд — механизма для этого просто нет.
Какой транспорт рабочий для внутреннего служебного моста между нодами?
Рабочий вариант — plain VLESS/TCP с security: none: пустой flow в этом случае валиден, и инъекция служебного пользователя проходит нормально.
Как проверить, не перехватывается ли трафик моста на сетевом уровне?
Полезно сверить сертификат Reality входного узла снаружи и с localhost — расхождение означает перехват на сетевом уровне.
Есть ли минус у VLESS/TCP без TLS на внутреннем плече моста?
Да, голый VLESS/TCP без TLS раскрывает метаданные плеча, хотя пользовательские данные всё равно идут под HTTPS. При желании плечо позже можно захардить отдельным TLS или WireGuard.
Похожее

Ещё в базе знаний

Подключите рабочий VPN

Инструкции базы знаний написаны под ключи VPN PRO: ключ выдаёт Telegram-бот за минуту, работоспособность гарантируем. Промокод VPN10 — 10 дней бесплатно, без карты.

Промокод VPN10 — 10 дней бесплатно · до 31 августа · передавайте друзьям