πŸ“‘ XHTTP: транспорт Xray, ΠΏΡ€ΠΈΡ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π²Π΅Π±-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ

О Ρ‡Ρ‘ΠΌ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ°

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ транспорта XHTTP (Ρ€Π°Π½ΡŒΡˆΠ΅ назывался SplitHTTP) Π² Xray-core β€” ΠΊΠ°ΠΊ ΠΎΠ½ Π·Π°Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ прокси-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ HTTP-запросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ сквозь CDN Π²Ρ€ΠΎΠ΄Π΅ Cloudflare, ΠΈ Π² Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ packet-up, stream-up ΠΈ stream-one. Π Π°Π·Π±ΠΎΡ€ основан Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠΈ исходного ΠΊΠΎΠ΄Π° transport/internet/splithttp/ (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ splithttp, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€” XHTTP). XHTTP β€” это транспорт (ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ), ΠΎΠ½ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ VLESS ΠΈ слою бСзопасности REALITY.

TL;DR

  • XHTTP β€” транспорт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ прокси Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ HTTP GET/POST-запросы. Для CDN ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ это выглядит ΠΊΠ°ΠΊ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
  • Β«SplitΒ» Π² старом Π½Π°Π·Π²Π°Π½ΠΈΠΈ = Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ: скачиваниС (download) ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° (upload) ΠΈΠ΄ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ HTTP-запросами, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ HTTP ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ полудуплСксный, ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ (CDN, nginx) ΠΏΠ»ΠΎΡ…ΠΎ пСрСносят Π΄ΠΎΠ»Π³ΠΈΠ΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.
  • Π’Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°: packet-up (Π°ΠΏΠ»ΠΈΠ½ΠΊ дробится Π½Π° ΠΊΡƒΡ‡Ρƒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… POST β€” самый CDN-Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ), stream-up (Π°ΠΏΠ»ΠΈΠ½ΠΊ ΠΎΠ΄Π½ΠΈΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ POST, Π΄Π°ΡƒΠ½Π»ΠΈΠ½ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ GET), stream-one (всё Π² ΠΎΠ΄Π½ΠΎΠΌ дуплСксном запросС β€” для REALITY Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· CDN).
  • XMUX ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ логичСских сСссий Π² ΠΎΠ΄Π½ΠΎ физичСскоС соСдинСниС ΠΈ Ρ€ΠΎΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ соСдинСния β€” ΠΊΠ°ΠΊ настоящий Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.
  • ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° усиливаСтся ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ΠΎΠΌ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Β«ΠΏΠΎΠ΄ fetch/gRPC/SSEΒ» ΠΈ Π°Π½Ρ‚ΠΈ-Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° CDN.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ XHTTP: ΠΏΡ€ΠΎΠΉΡ‚ΠΈ сквозь CDN

Основная Π·Π°Π΄Π°Ρ‡Π° XHTTP β€” ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ прокси-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· CDN (ΡΠ΅Ρ‚ΡŒ доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Cloudflare). Бмысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π½Π·ΠΎΡ€Ρƒ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CDN Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ: Π·Π° ΠΎΠ΄Π½ΠΈΠΌ IP Cloudflare стоят ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹Ρ… сайтов. Если прокси-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… запросов ΠΊ сайту Π·Π° CDN, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Но CDN β€” капризная срСда: ΠΎΠ½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ HTTP, Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ Π΄ΠΎΠ»Π³ΠΈΠ΅ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ соСдинСния, Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нСльзя просто ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ TCP-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ. XHTTP устроСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ настоящСС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ POST-запросами ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ GET-запросом.

ΠŸΡ€ΠΎΡ‰Π΅ говоря: XHTTP ΠΏΠ΅Ρ€Π΅ΠΎΠ΄Π΅Π²Π°Π΅Ρ‚ прокси-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ Π² ΠΊΠΎΡΡ‚ΡŽΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ сайта, Π΄Π° Ρ‚Π°ΠΊ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈΠ΄ΠΈΡ€Ρ‡ΠΈΠ²Ρ‹ΠΉ ΠΎΡ…Ρ€Π°Π½Π½ΠΈΠΊ-CDN пропускаСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ своСго.

Β«SplitΒ»: ΠΏΠΎΡ‡Π΅ΠΌΡƒ upload ΠΈ download β€” Ρ€Π°Π·Π½Ρ‹Π΅ запросы

Один логичСский дуплСксный Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ (VLESS ΠΏΠΎΠ²Π΅Ρ€Ρ… транспорта) Π² ΠΊΠΎΠ΄Π΅ прСдставлСн структурой splitConn β€” это соСдинСниС с Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ reader (входящий ΠΏΠΎΡ‚ΠΎΠΊ) ΠΈ writer (исходящий). НазваниС Β«SplitΒ» ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³Π»Π°Π²Π½ΡƒΡŽ идСю: Π΄Π²Π° направлСния физичСски разнСсСны Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ HTTP-запросы.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ HTTP: Ρ‚Π΅Π»ΠΎ запроса СстСствСнно Ρ‚Π΅Ρ‡Ρ‘Ρ‚ Π²Π²Π΅Ρ€Ρ… (ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ сСрвСр), Ρ‚Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° β€” Π²Π½ΠΈΠ·. ΠŸΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ дуплСкс Π² ΠΎΠ΄Π½ΠΎΠΌ HTTP-ΠΎΠ±ΠΌΠ΅Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ HTTP/2 ΠΈΠ»ΠΈ HTTP/3 ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ прокси. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ:

  • Download (сСрвСр β†’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚) β€” ΠΎΠ΄ΠΈΠ½ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ GET, Ρ‚Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стримится бСсконСчно.
  • Upload (ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ сСрвСр) β€” Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ‚Π΅Π»ΠΎ POST, Π»ΠΈΠ±ΠΎ мноТСство ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… POST (зависит ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ°).

БСссию Π½Π° сСрвСрС склСиваСт ΠΎΠ±Ρ‰ΠΈΠΉ sessionId: GET-запрос Π΄Π°ΡƒΠ½Π»ΠΈΠ½ΠΊΠ° ΠΈ всС POST-запросы Π°ΠΏΠ»ΠΈΠ½ΠΊΠ° с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ sessionId относятся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΡƒΠ½Π½Π΅Π»ΡŽ.

Π’Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π Π΅ΠΆΠΈΠΌ задаётся ΠΏΠΎΠ»Π΅ΠΌ mode. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ auto (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) раскрываСтся Ρ‚Π°ΠΊ: ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ β†’ packet-up; ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΌ REALITY β†’ stream-one; Π° Ссли ΠΏΡ€ΠΈ REALITY Π·Π°Π΄Π°Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» скачивания (downloadSettings) β†’ stream-up.

packet-up β€” самый CDN-Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ

Аплинк нарСзаСтся Π½Π° мноТСство ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… нСзависимых POST-запросов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСсёт кусок Π΄Π°Π½Π½Ρ‹Ρ… с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ seq. Π”Π°ΡƒΠ½Π»ΠΈΠ½ΠΊ β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ GET.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· CDN: ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ POST + ΠΎΠ΄ΠΈΠ½ GET Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ дуплСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ CDN Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚. Но Π΅ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” нСзависимыС POST приходят Π½Π° сСрвСр Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС (Ρ‡Π΅Ρ€Π΅Π· CDN ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ бэкСнд-соСдинСниям). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ POST ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½Ρ‹ΠΌ seq, Π° сСрвСр восстанавливаСт исходный порядок.

Π—Π° пСрСсборку ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ upload_queue.go β€” ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ (min-heap ΠΏΠΎ seq): ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ Π½Π°Π²Π΅Ρ€Ρ… строго ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Π½ΠΎΠΌΠ΅Ρ€Π°, «опоздавшиС» копятся Π² ΠΊΡƒΡ‡Π΅ ΠΈ ΠΆΠ΄ΡƒΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΉ. Если ΠΊΡƒΡ‡Π° разрастаСтся свСрх Π»ΠΈΠΌΠΈΡ‚Π° (scMaxBufferedPosts, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30) β€” соСдинСниС рвётся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ потСрянный ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ съСл всю ΠΏΠ°ΠΌΡΡ‚ΡŒ.

На сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ ваТная оптимизация β€” Π±Π°Ρ‚Ρ‡ΠΈΠ½Π³: мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… Write ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Π² ΠΎΠ΄ΠΈΠ½ POST ΠΏΠΎΠΊΡ€ΡƒΠΏΠ½Π΅Π΅ (ΠΈΠ½Π°Ρ‡Π΅ пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΠΊΠΎ ΠΏΠ°Π΄Π°Π΅Ρ‚). ΠœΠ΅ΠΆΠ΄Ρƒ POST выдСрТиваСтся ΠΏΠ°ΡƒΠ·Π° scMinPostsIntervalMs (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30 мс) β€” Π·Π°ΠΎΠ΄Π½ΠΎ сбиваСт Ρ„ΠΈΠ½Π³Π΅Ρ€ΠΏΡ€ΠΈΠ½Ρ‚ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠΈΠ½Π³Ρƒ.

stream-up β€” Π°ΠΏΠ»ΠΈΠ½ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ

Аплинк ΠΈΠ΄Ρ‘Ρ‚ ΠΎΠ΄Π½ΠΈΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΌ POST (Ρ‚Π΅Π»ΠΎ Π½Π΅ закрываСтся, Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΊΡƒΡ‚), Π΄Π°ΡƒΠ½Π»ΠΈΠ½ΠΊ β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ GET. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ адрСса ΠΈ транспорты для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ скачивания (Ρ‡Π΅Ρ€Π΅Π· downloadSettings). Π­Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Β«Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π», ΠΊΠ°Ρ‡Π°ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€ΡƒΠ³ΠΎΠΉΒ».

stream-one β€” всё Π² ΠΎΠ΄Π½ΠΎΠΌ запросС

И Π°ΠΏΠ»ΠΈΠ½ΠΊ, ΠΈ Π΄Π°ΡƒΠ½Π»ΠΈΠ½ΠΊ ΠΈΠ΄ΡƒΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ HTTP-ΠΎΠ±ΠΌΠ΅Π½Π°: Ρ‚Π΅Π»ΠΎ запроса β€” Π²Π²Π΅Ρ€Ρ…, Ρ‚Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° β€” Π²Π½ΠΈΠ·, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π­Ρ‚ΠΎ истинный дуплСкс, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ HTTP/2 ΠΈΠ»ΠΈ HTTP/3. ИдСалСн для REALITY Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π±Π΅Π· CDN), Π³Π΄Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ дуплСкс Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. sessionId здСсь Π½Π΅ Π½ΡƒΠΆΠ΅Π½ β€” сСссия ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ запрос.

Π Π΅ΠΆΠΈΠΌUplinkDownlinkΠ“Π΄Π΅ Ρ…ΠΎΡ€ΠΎΡˆ
packet-upΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… POST с seqΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ GETΡ‡Π΅Ρ€Π΅Π· CDN, HTTP/1.1
stream-upΠΎΠ΄Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ‚Π΅Π»ΠΎ POSTΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ GETΡ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ up/down
stream-oneΡ‚Π΅Π»ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запросатСло Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π°REALITY Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, h2/h3

XMUX: ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

XMUX управляСт Ρ‚Π΅ΠΌ, сколько HTTP-запросов туннСля ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ (TCP/QUIC) соСдинСниС ΠΈ ΠΊΠΎΠ³Π΄Π° соСдинСния ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Бмысл β€” вСсти сСбя ΠΊΠ°ΠΊ настоящий Π±Ρ€Π°ΡƒΠ·Π΅Ρ€: Ρ‚ΠΎΡ‚ Π΄Π΅Ρ€ΠΆΠΈΡ‚ нСсколько Π΄ΠΎΠ»Π³ΠΈΡ… HTTP/2-соСдинСний ΠΈ гоняСт ΠΏΠΎ Π½ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов, пСриодичСски ΠΈΡ… обновляя.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹ (всС Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ ΠΈ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ):

  • maxConcurrency β€” сколько запросов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ соСдинСнии.
  • maxConnections β€” сколько соСдинСний Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΡƒΠ»Π΅.
  • cMaxReuseTimes β€” сколько Ρ€Π°Π· ΠΎΠ΄Π½ΠΎ соСдинСниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
  • hMaxRequestTimes β€” сколько всСго запросов провСсти Ρ‡Π΅Ρ€Π΅Π· соСдинСниС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.
  • hMaxReusableSecs β€” Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΠΈΠΌΠΈΡ‚ ΠΆΠΈΠ·Π½ΠΈ соСдинСния.

Когда соСдинСниС исчСрпало Π»ΠΈΠΌΠΈΡ‚ запросов ΠΈΠ»ΠΈ врСмя ΠΆΠΈΠ·Π½ΠΈ β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° свСТСС. Ротация соСдинСний экономит TLS-рукопоТатия ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Ρ„ΠΈΠ½Π³Π΅Ρ€ΠΏΡ€ΠΈΠ½Ρ‚ΠΈΡ‚ΡŒ прокси ΠΏΠΎ аномально Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΌ соСдинСниям.

ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°: ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ ΠΈ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅Β» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ

XHTTP ΡΡ‚Π°Ρ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΉ HTTP-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ нСсколькими способами:

  • XPadding β€” случайный Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ (xPaddingBytes, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 100–1000 Π±Π°ΠΉΡ‚) Ρ€Π°Π·ΠΌΡ‹Π²Π°Π΅Ρ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ запросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ€Π΅ΠΆΠΈΠΌ tokenish, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ подгоняСт ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ ΠΏΠΎΠ΄ Π½ΡƒΠΆΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ послС сТатия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² HPACK/QPACK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π΅ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π» Ρ€ΠΎΠ²Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число Π±Π°ΠΉΡ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ прячСтся Π² query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ x_padding Π²Π½ΡƒΡ‚Ρ€ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Referer.
  • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ β€” запросы ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ fetch.
  • ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ gRPC β€” ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ запросы ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ Content-Type: application/grpc.
  • ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ SSE β€” Π΄Π°ΡƒΠ½Π»ΠΈΠ½ΠΊ-ΠΎΡ‚Π²Π΅Ρ‚ помСчаСтся Content-Type: text/event-stream (Server-Sent Events).
  • Анти-Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ β€” X-Accel-Buffering: no ΠΈ Cache-Control: no-store ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° nginx/CDN. Π­Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ: ΠΈΠ½Π°Ρ‡Π΅ CDN Π½Π°ΠΊΠΎΠΏΠΈΠ» Π±Ρ‹ стрим Π² кэшС ΠΈ сломал ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ (sessionId, seq) ΠΈ Π΄Π°ΠΆΠ΅ саму ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ XHTTP ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ частям запроса β€” Π² ΠΏΡƒΡ‚ΡŒ URL, query, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ cookie (настраиваСтся Ρ‡Π΅Ρ€Π΅Π· sessionIDPlacement, seqPlacement, uplinkDataPlacement). ΠŸΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ…/cookie ΠΎΠ½ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ base64url ΠΈ рСТутся Π½Π° Ρ‡Π°Π½ΠΊΠΈ. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ трСбования ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ CDN.

Как XHTTP сочСтаСтся с TLS ΠΈ REALITY

XHTTP β€” это транспорт уровня прилоТСния (HTTP), Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ задаётся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π² ΠΎΠ±Ρ‰ΠΈΡ… настройках ΠΏΠΎΡ‚ΠΎΠΊΠ° (streamSettings), Π° Π½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого XHTTP. Π‘Π»ΠΎΠΉ бСзопасности β€” ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ TLS (Ρ‡Π΅Ρ€Π΅Π· uTLS с Ρ„ΠΈΠ½Π³Π΅Ρ€ΠΏΡ€ΠΈΠ½Ρ‚ΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°) ΠΈΠ»ΠΈ REALITY.

Π’Ρ‹Π±ΠΎΡ€ вСрсии HTTP зависит ΠΎΡ‚ слоя бСзопасности: ΠΏΡ€ΠΈ REALITY β€” всСгда HTTP/2; Π±Π΅Π· TLS β€” HTTP/1.1; ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎ согласованному ALPN (h3 β†’ HTTP/3, ΠΈΠ½Π°Ρ‡Π΅ HTTP/2). ИмСнно поэтому ΠΏΡ€ΠΈ REALITY автоматичСский Ρ€Π΅ΠΆΠΈΠΌ β€” stream-one (ΠΏΠΎΠ»Π½Ρ‹ΠΉ дуплСкс Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½), Π° Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ CDN ΠΏΠΎ HTTP/1.1 бСзопаснСС packet-up.

XHTTP ΠΈ Vision: Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Π»ΠΈΡΡŒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· VLESS Encryption

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π²ΡƒΡ‡Π°Π»ΠΎ просто: XTLS-Vision Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… прямого TLS/REALITY ΠΏΠΎ TCP, поэтому Π² связкС с XHTTP flow xtls-rprx-vision Π½Π΅ использовался, ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ маскировкС ΠΈΠ· Π΄Π²ΡƒΡ…. Π‘ сСнтября 2025 это измСнилось: Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ VLESS Encryption, Vision становится доступСн ΠΏΠΎΠ²Π΅Ρ€Ρ… XHTTP ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… транспортов β€” докумСнтация Xray описываСт XTLS ΠΊΠ°ΠΊ доступный Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ TCP + TLS/REALITY, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ VLESS Encryption Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° транспорт. ΠžΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°: ядСрный splice Ρ‡Π΅Ρ€Π΅Π· XHTTP всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ β€” ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π³ΠΎΠ»ΠΎΠ³ΠΎ TCP. ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Vision Π΄Π΅Π»Π°Π΅Ρ‚ исправно: ΠΈ Π½Π°Π±ΠΈΠ²ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ рукопоТатия, ΠΈ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΡƒΠΆΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ TLS 1.3, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΠΎ процСссору сохраняСтся ΠΈ здСсь. РСкомСндация Π°Π²Ρ‚ΠΎΡ€Π° Xray для связок Ρ‡Π΅Ρ€Π΅Π· CDN Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ Β«VLESS Encryption + XTLS Vision + XHTTP XMUXΒ». Π Π°Π·Π±ΠΎΡ€ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ β€” Π² ΠΊΠ°Ρ€Ρ‚Π΅ слоёв VLESS-стСка.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π§Ρ‚ΠΎ это
modeΠ Π΅ΠΆΠΈΠΌ: auto / packet-up / stream-up / stream-one
pathΠ‘Π°Π·ΠΎΠ²Ρ‹ΠΉ URL-ΠΏΡƒΡ‚ΡŒ запросов
hostΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Host / SNI
headersΠ”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
scMaxEachPostBytesМакс. Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ upload-POST (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1 000 000)
scMinPostsIntervalMsМин. ΠΏΠ°ΡƒΠ·Π° ΠΌΠ΅ΠΆΠ΄Ρƒ POST (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30 мс)
scMaxBufferedPostsΠ“Π»ΡƒΠ±ΠΈΠ½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ пСрСсборки (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 30)
xPaddingBytesΠ”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠ°Π΄Π΄ΠΈΠ½Π³Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 100–1000)
noGRPCHeader / noSSEHeaderΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ маскировку ΠΏΠΎΠ΄ gRPC / SSE
xmuxНастройки ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (см. Π²Ρ‹ΡˆΠ΅)
downloadSettingsΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ транспорт/адрСс для ΠΊΠ°Π½Π°Π»Π° скачивания

πŸ“š Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

  • ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» VLESS β€” ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСносится ΠΏΠΎΠ²Π΅Ρ€Ρ… XHTTP
  • VLESS Encryption β€” ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ самого VLESS: прячСт UUID ΠΈ адрСса назначСния ΠΎΡ‚ CDN ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Vision ΠΏΠΎΠ²Π΅Ρ€Ρ… XHTTP
  • Π‘Π»ΠΎΠΈ VLESS-стСка β€” ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°: ΠΊΠ°ΠΊΠΈΠ΅ сочСтания транспорта, security, flow ΠΈ encryption Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚
  • REALITY β€” слой бСзопасности, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ XHTTP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· CDN
  • XTLS ΠΈ Vision β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (прямой TLS вмСсто HTTP-маскировки)
  • Project X (Xray-core) β€” ΠΎΠ±Π·ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ всСх Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
  • πŸ”— transport/internet/splithttp β€” исходный ΠΊΠΎΠ΄ транспорта

πŸ€– Π­Ρ‚ΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ β€” ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… ИИ

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ИИ Π½Π° Π½Π°ΡˆΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ скачиваниС всСго рСпозитория ΠΎΠ΄Π½ΠΈΠΌ zip-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ доступны Π² Forgejo: исходник этой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Β· вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.