VLESS XHTTP
VLESS XHTTP ترافیک VPN را بهصورت درخواستهای HTTP روی Reality حمل میکند، برای شبکههایی که اتصالهای طولانی TCP را قطع میکنند. چگونه کار میکند، محدودیتهایش چیست و نقشش در Colitu کدام است.
VLESS XHTTP سومین حالتی است که Adaptive Connect در Colitu روی Android و iOS امتحان میکند و در Windows و Linux یکی از حالتهای TCP است که بر اساس زمان اتصال رتبهبندی میشوند. همان پروتکل VLESS و همان استتار Reality در VLESS Reality را به کار میبرد، اما نحوهٔ حرکت دادهها را تغییر میدهد: بهجای یک جریان خام و طولانیمدت، ترافیک بهصورت درخواستها و پاسخهای HTTP حمل میشود.
چیست
XHTTP یک لایهٔ انتقال از Project X (Xray) است، همان جعبهابزار متنباز که VLESS و Reality را هم فراهم میکند. از لایهٔ انتقال قدیمیتر Xray به نام SplitHTTP رشد کرده است. ایده این است که یک نشست پروکسی با معناشناسی عادی HTTP حمل شود، بهطوری که جهتهای آپلود و دانلود بتوانند در درخواستهای HTTP جداگانه حرکت کنند. در پیکربندیهای دیگر این به XHTTP اجازه میدهد از هر چیزی که HTTP را میفهمد عبور کند؛ در Colitu مستقیماً روی Reality اجرا میشود، پس لایهٔ بیرونی همان اتصال استتارشدهٔ TLS 1.3 در VLESS Reality است.
چگونه کار میکند
- دستدهی Reality. برنامه یک اتصال TCP باز میکند و یک دستدهی Reality TLS 1.3 انجام میدهد: اثر انگشت شبیه مرورگر، احراز هویت پنهان X25519 و رله شدن پویشها به وبسایت هدف واقعی. حالت XHTTP جفتکلید Reality مخصوص خود را دارد که از VLESS Reality جداست.
- مسیر مخفی. درون نشست TLS، برنامه با یک مسیر تصادفی روی سرور که فقط برنامه آن را میداند HTTP صحبت میکند. تونل روی هیچ مسیر دیگری پاسخ نمیدهد.
- جهت دانلود. دادههای سرور بهصورت بدنهٔ یک پاسخ HTTP میرسند که بهصورت جریانی به برنامه ارسال میشود.
- جهت آپلود. بسته به حالت، دادههای برنامه بهصورت مجموعهای از درخواستهای POST جداگانه (packet-up)، بهصورت جریانی در بدنهٔ یک درخواست (stream-up) فرستاده میشود، یا یک درخواست واحد را با دانلود به اشتراک میگذارد (stream-one). Colitu حالت را روی «auto» میگذارد و به Xray اجازه میدهد انتخاب کند.
- VLESS درون آن. درخواست VLESS با شناسهٔ کاربر شما و مقصد درون همین تبادل HTTP حرکت میکند، همانطور که درون یک جریان خام میکرد.
چرا Colitu از آن استفاده میکند
برخی شبکهها اتصالهای TCP را که مدت طولانی باز میمانند، یا مقدار زیادی داده را بهصورت یک جریان مات حمل میکنند (که شکل معمول یک تونل VPN است)، قطع یا تضعیف میکنند. تقسیم نشست به درخواستهای HTTP این شکل را به چیزی تبدیل میکند که مانند ترافیک HTTP رفتار میکند. XHTTP برای همین حالت ساخته شده و وقتی VLESS Reality ساده وصل میشود اما سپس متوقف میشود یا قطع میشود، یک گزینهٔ مبتنی بر Reality به Adaptive Connect میدهد.
کجا قوی است
- شبکههایی که اتصالهای طولانی TCP را قطع میکنند: ترافیک بهجای یک جریان بیپایان بین درخواستهای HTTP پخش میشود.
- شبکههای فیلترشده با DPI: استتار Reality، اثر انگشت شبیه مرورگر و محافظت در برابر پویش فعال را به ارث میبرد.
- شبکههایی که UDP را مسدود میکنند: مانند حالتهای TCP دیگر، به UDP وابسته نیست.
محدودیتها و زمانی که بهترین انتخاب نیست
- سربار بیشتر. قاببندی HTTP و درخواستهای جداگانه سربار و کمی تأخیر اضافه میکنند. در شبکهٔ سالم، VLESS Reality با Vision کمحجمتر است.
- بدون Vision. XTLS Vision به جریان خام TCP نیاز دارد که XHTTP فراهم نمیکند، بنابراین برخورد Vision با الگوی «TLS درون TLS» در این حالت در دسترس نیست.
- TCP روی لینکهای دارای افت. روی دادههای تلفن همراه یا Wi-Fi ضعیف با افت زیاد مانند هر پروتکل TCP کند میشود؛ Hysteria2 معمولاً آنجا سریعتر است.
- محدودیتهای همان Reality. SNI نام یک سایت شخص ثالث را میگوید در حالی که آدرس IP به شبکهای دیگر تعلق دارد؛ فیلترهایی که این دو را مقایسه میکنند یا بر اساس آدرس IP مسدود میکنند همچنان میتوانند اقدام کنند.
- لایهٔ انتقال جوانتر. XHTTP از حالتهای دیگر جدیدتر است و در Xray هنوز در حال تکامل است.
Adaptive Connect چگونه از آن استفاده میکند
در Android و iOS، VLESS XHTTP سوم است: پس از Hysteria2 و VLESS Reality، پیش از Trojan و Shadowsocks 2022. وقتی UDP غیرقابلاستفاده است و Reality ساده یا وصل نمیشود یا بررسی ترافیک را نمیگذراند به آن میرسند. در Windows و Linux بر اساس زمان اتصال اندازهگیریشده با حالتهای TCP دیگر رتبهبندی میشود. اگر XHTTP هم چیزی حمل نکند، برنامه آن را عقب میاندازد و به حالت بعدی میرود.
امنیت و رمزگذاری
- رمزگذاری: لایهٔ بیرونی یک نشست Reality TLS 1.3 با تبادل کلید X25519 است که با رمزهای AEAD در TLS 1.3 محافظت میشود.
- احراز هویت سرور: دستدهی باید دانستن کلید خصوصیِ پشت کلید عمومی Reality حالت XHTTP را ثابت کند؛ در غیر این صورت برنامه سرور را نمیپذیرد.
- احراز هویت کلاینت: بلوک احراز هویت Reality، مسیر مخفی HTTP و شناسهٔ کاربر VLESS که بخشی از اطلاعات حساب شما برای آن سرور است.
- مدیریت کلید: کلیدها، شناسههای کوتاه، مسیر و هدف بهصورت رمزگذاریشده به برنامه تحویل داده میشوند و هرگز منتشر نمیشوند.
- بدون گزارش دسترسی: صفحهٔ امنیت را ببینید.
منابع
امتحانش کنید
VLESS XHTTP در هر برنامهٔ Colitu تعبیه شده و وقتی اتصالهای طولانی مدام قطع میشوند خودش وارد عمل میشود. Colitu را دانلود کنید یا مکانهای سرور را ببینید.