Тестируем XHTTP

Популярная панель 3X-UI обновилась до 2.4.9. Наконец-то туда прикрутили хайпуемый авторами Xray протокол XHTTP.

Это, кто не в курсе, переработанный SplitHTTP, который теперь официально переименован в XHTTP. Документацию старую пока выпилили. Там, насколько я помню, говорилось, что он шинкует соединение в салат так, что если вы смотрите потоковое видео, например, то у вас не статичный туннель, а он режет и пересобирает его в набор случайных запросов, так что это со стороны выглядит как интенсивный браузинг. Теперь вместо документации ссылаются на статью:

XHTTP: Beyond REALITY

Там, полистайте, в топике есть русский перевод. Теперь фокус сместили на раздельные восходящие/нисходяшие потоки и продвинутые сценарии работы через CDN.

Базово, теперь в 3X-UI все работает из коробки. Просто берете свой рабочий конфиг и транспорт меняете на XHTTP. Проверил, работает Reality c чужим доменом, со steal oneself и TLS с fallback.

Минус пока в том, что все популярные клиенты на Sing-Box, а его авторы запрос на поддержку XHTTP дропнули и не известно, будут ли вообще его прикручивать. Поэтому нам остается только V2RayN. Обязательно обновляйте до последнего, чтобы поддержка XHTTP появилась. Плюсом, там теперь есть встроенный русские базы geosite/geoip.

А на Android V2RayNG русские базы прикрутить это тот еще квест. И, честно говоря, работает YT через этот клиент довольно тормознуто, причем не только с XHTTP, но и с “классическими” уже протоколами.

.

Streisand уже сделали обнову

Подскажите, как для не особо разбирающегося, в чем преимущества перед решением, которое все используют сейчас (“обычный” Reality)? Пока не очень понятно. Кроме того, как я понял, для данного решения обязательно нужен домен, метода с самоподписанным сертификатом недостаточно?

Ребят, подскажите как через 3x-ui сделать что бы dns запросы отправлялись через мой сервер? В настройках xray пробовал настроить, но ничего не работает(

Плюсы, которые я вижу
Использование мультиплексирование и долгоживущих сессий.
Возможность проксирования через любые CDN, уход от gRPC
Разные потоки на аплоад и даунлоад

Домен не обязателен, можно использовать тот же Reality, но с транспортом xhttp. Что за метод с самоподписанными сертификатами - не ясно. Если только для прокcирования через CF

Это не решение, это хак. Cloudflare, как я понял, просто читает gRPC заголовок, а все что ты дальше передаешь, считает gRPC траффиком. Xray просто теперь эксплуатирует эту лазейку, маскируя свой трафик под gRPC. Но не факт, что, если её начнут массово абузить, CF эту дыру не прикроет.

А можно на пальцах? Абсолютно тот же конфиг с риалити беру и протокол просто меняю на xhttp?
И все? Там появляются дополнительные настройки мне их не трогать (host, path etc)? Нужно ли включать или отключать настройки какие-то в клиентах? Как вообще проверить работает ли этот xhttp?

Я так и не понял, можно ли использовать XHTTP через CDN с использованием realitySettings, чтобы маскироваться под чужой домен?
Меня reality всем устраивает кроме того, что приходится палить IP сервера.

Официальная инструкция не очень понятная. Вроде как на сервере нужно поменять transport на xhttp, и в xhttpSettings добавить path (видимо можно любой вписать? я хз). Ну я прописал xhttp, в nginx и в конфиг xray добавил path, в v2rayn указал xhttp и path (при этом в v2rayn еще есть дополнительные непонятные настройки связанные с xhttp). И короче нифига не работает. В общем если кто в теме, напишите пожалуйста нормальную инструкцию как с реалити с маскировкой под свой сайт, перейти на xhttp, и надо ли оно вообще, так как видимо это решение в основном сделано для работы через cdn.

Присоединяюсь, помогите, кто в теме, тем, кто не. Или если уже есть какой-то адекватный гайд - киньте ссылку.

Все проще некуда. Берете свой рабочий конфиг, на TCP-Vision, например, и в поле Transmission просто вместо TCP выбираете XHTTP. Экспортируете ключик заново и импортируете в клиент. Клиент должен поддерживать XHTTP, под Windows это только V2RayN на сегодня. Настройки TLS или Reality оставляете как есть. Настройки XHTTP тоже по умолчанию. Неважно, чужой сайт вы воруете или свой на Nginx, НИЧЕГО кроме Transmission менять не надо. В Nginx ничего менять не надо. “Покормите собак и не трогайте никакие кнопки” (C).

За CDN не расскажу, не знаю, не настраивал. Есть пока только китайские гайды.

Поставил как NowAndThen пишет, количество сессий уменьшилось, значит и мультиплексирование работает. Хотелось бы конечно понять как подружить с CDN ведь это главная фишка из анонса протокола.

Может кто-то отбъяснить как это вообще работает и что дает? Вот использую я к примеру reality с network:tcp dest:chtoto.net. Что мне нужно что бы прикрутить XHTTP? Нужен ли свой домен? И что вообще даст переход на XHTTP?

это для 3x ui видимо? Я просто в конфиг xray - streamSettings - network прописал “xhttp”, в v2rayn поменял transport на xhttp, и ничего не работает.

Ну ок, тогда следую инструкции с гитхаба

  1. Независимо от того, используется TLS или REALITY, обычно в конфигурации XHTTP достаточно указать только path, остальные параметры можно не заполнять.

Делаю xhttpSettings, прописываю туда path на “/”, и на клиенте тоже. Ну и тоже ничего не работает.

Я про панель, голый не настраивал.

Я у себя так же настроил xhttp+reality, все работает и пашет. Только выбрал дополнительно stream-one, это, как мне показалось, дало меньше всего открытых tcp-сессий при равных условиях (возможно, что просто показалось).
Но я так и не получил ответа нигде, выбор этого новомодного транспорта повышает/не меняет/уменьшает маскировку в случае использования совместно с Reality?

Буквально вчера поднял у себя VLESS - XHTTP h3 за nginx. Использовал конфиги отсюда Xray-examples/VLESS-XHTTP3-Nginx at main · XTLS/Xray-examples · GitHub
Разве что stream-one изменил на stream-up.
Работает очень шустро я сказал бы, но полноценные тесты пока не проводил

XHTTP возможен только со своим доменом?

Не обязательно.

Кто-нибудь пробовал настроить с fallbackом на network tcp? Чтобы можно было к reality серверу подключаться как с клиентов с поддержкой xhttp так и без поддержки (напр. sing-box)