پروتکل VLESS چیست: پروتکلی که رمزنگاری را به TLS یا REALITY می‌سپارد

آنتون بلوف

زمان مطالعه: 10 دقیقهفناوری

درون پروتکل VLESS

هر اتصال VLESS با هدری کوتاه آغاز می‌شود که شناسه شما و آدرس مقصد را در بر دارد. خود پروتکل چیزی را رمزنگاری یا استتار نمی‌کند. این کار بر عهده لایه زیرین آن است، یعنی TLS یا REALITY. به همین دلیل، VLESS معمولاً همراه با یکی از این دو مطرح می‌شود. این مقاله درباره هدر، تفاوت‌ها با VMess، روش‌های انتقال و REALITY است. همچنین محتوای کلید VLESS را فهرست می‌کند و توضیح می‌دهد که Ben's VPN چگونه از این پروتکل استفاده می‌کند.

هدر VLESS شامل UUID، فرمان و آدرس است

پروتکل VLESS برای ارتباط میان کلاینت و سرور پروکسی به کار می‌رود. هر اتصال با هدر درخواست شروع می‌شود و داده‌های شما بلافاصله پس از آن می‌آیند. هدر درخواست از فیلدهای زیر تشکیل شده است.

  • نسخه پروتکل.
  • UUID، شناسه شما روی سرور، مثلاً 8b71f62c-7736-4334-ab2f-032d2115d2fd. نقش رمز عبور را هم دارد، چون سرور فقط شناسه‌های UUID موجود در فهرست خودش را می‌پذیرد.
  • افزونه‌ها، تنظیمات اضافه‌ای مثل حالت flow که در ادامه آن را توضیح می‌دهیم.
  • فرمان برای درخواست جریان TCP، بسته‌های UDP یا چند جریان در یک اتصال (Mux).
  • پورت و آدرس مقصد؛ آدرس می‌تواند IPv4،‏ IPv6 یا نام دامنه باشد.

پس از هدر، VLESS چیزی به داده‌ها اضافه نمی‌کند. سرور با هدری از این هم کوتاه‌تر پاسخ می‌دهد که فقط نسخه و افزونه‌ها را دارد. هدر درخواست نه برچسب زمانی دارد و نه فیلدی برای الگوریتم رمزنگاری. VLESS خود هدر را هم رمزنگاری نمی‌کند. تفاوت اصلی VLESS با VMess همین است.

نخستین نسخه VLESS در تابستان 2020 همراه با V2Ray منتشر شد. از اواخر همان سال، بیشتر توسعه آن در Xray-core، انشعابی از V2Ray، انجام شده است. هسته‌های دیگری مثل sing-box هم از آن پشتیبانی می‌کنند. به بیان دقیق، خود VLESS پروتکل پروکسی است. اگر برنامه‌ای همه ترافیک گوشی یا کامپیوتر را از طریق VLESS بفرستد، روی آن دستگاه VPN دارید. مقاله ما درباره تفاوت VPN و پروکسی این دو را با جزئیات مقایسه می‌کند.

در VLESS، رمزنگاری و بررسی ساعت VMess حذف شده است

پروتکل قدیمی‌تر V2Ray، یعنی VMess، برای رمزنگاری داده‌ها الگوریتم خودش را دارد: ChaCha20-Poly1305 یا AES-128-GCM. برای احراز هویت اتصال، هم UUID را بررسی می‌کند و هم زمان فعلی را. طبق مستندات Xray، ساعت کلاینت و سرور نباید بیش از 2 دقیقه با زمان درست اختلاف داشته باشد. از این 2 بررسی، VLESS فقط بررسی UUID را نگه داشته است. در پیکربندی استاندارد، VLESS هیچ چیزی را رمزنگاری نمی‌کند. فیلد decryption در سرور و فیلد encryption در کلاینت هر دو روی none تنظیم شده‌اند. تنظیم ساعت هیچ اثری بر اتصال VLESS ندارد.

جدول زیر تفاوت را در 3 وضعیت نشان می‌دهد. در 2 وضعیت اول، هر دو پروتکل درون TLS کار می‌کنند.

وضعیتVMessVLESS
ساعت گوشی شما 5 دقیقه جلو استسرور اتصال را رد می‌کندسرور اتصال را می‌پذیرد
سایتی با HTTPS را از طریق تونل باز می‌کنید3 لایه رمزنگاری (سایت، VMess و TLS بیرونی)2 لایه رمزنگاری (سایت و TLS بیرونی)
اتصال TLS بیرونی نداردداده‌ها همچنان با الگوریتم خود VMess رمزنگاری می‌شوندهر ناظری در مسیر، UUID و آدرس‌های مقصد را می‌بیند

درون TLS، رمزنگاری VMess فقط بار پردازنده و مصرف باتری را بالا می‌برد. VLESS چنین هزینه‌ای ندارد. وقتی حالت flow فعال است، TLS بیرونی پس از دست‌دهی با سایت، دیگر داده‌ها را دوباره رمزنگاری نمی‌کند. Xray در سال 2025 رمزنگاری داخلی و اختیاری VLESS Encryption را به VLESS اضافه کرد. این رمزنگاری برای پیکربندی‌های بدون TLS بیرونی در نظر گرفته شده است. برای پیکربندی‌هایی هم مناسب است که در آن‌ها TLS پیش از سرور پایان می‌یابد، مثلاً در CDN. پیکربندی REALITY به VLESS Encryption نیاز ندارد.

روش انتقال، ظاهر ترافیک VLESS را تعیین می‌کند

داده‌های VLESS از طریق یک روش انتقال جابه‌جا می‌شوند. ناظری در شبکه همین روش انتقال را می‌بیند. Xray برای VLESS چند روش انتقال دارد. فهرست زیر 4 روش اصلی را نشان می‌دهد.

  • RAW، که در پیکربندی‌های قدیمی‌تر tcp نام دارد. همان اتصال ساده TCP است. با TLS یا REALITY روی آن، شبیه ترافیک عادی HTTPS است.
  • XHTTP، که پیش‌تر SplitHTTP نام داشت. جریان داده را روی HTTP/1.1،‏ HTTP/2 یا HTTP/3 میان درخواست‌ها و پاسخ‌های عادی HTTP پخش می‌کند. XHTTP از طریق CDN هم کار می‌کند. از نگاه ناظر، شبیه برنامه وبی است که پیوسته به سرورش درخواست می‌فرستد.
  • gRPC. ترافیک در قالب فراخوانی‌های رویه از راه دور روی HTTP/2 جابه‌جا می‌شود. بسیاری از برنامه‌ها هم به همین شکل با API داده تبادل می‌کنند.
  • WebSocket. اتصالی طولانی‌مدت، از نوعی که چت‌های تحت وب و بازی‌های مرورگری از آن استفاده می‌کنند. از طریق CDN هم کار می‌کند.

لایه REALITY با RAW،‏ XHTTP و gRPC کار می‌کند، اما با WebSocket نه.

سرور REALITY به دامنه یا گواهی نیازی ندارد

در TLS معمولی، سرور باید نام دامنه و گواهی متناسب با آن را داشته باشد. REALITY، که در بهار 2023 همراه با Xray-core 1.8.0 معرفی شد، به هیچ‌کدام از این دو نیاز ندارد. هنگام دست‌دهی، سرور از هویت یک سایت واقعی متعلق به شخص ثالث استفاده می‌کند که آن را سایت هدف می‌نامیم. مراحل زیر نشان می‌دهد سرور با 2 نوع اتصال چگونه برخورد می‌کند.

  1. کلاینت شما دست‌دهی TLS را مثل یک مرورگر پرکاربرد آغاز می‌کند. نخستین پیام آن، یعنی ClientHello، نام سایت هدف را در خود دارد. در ClientHello نشانه‌ای هم هست که فقط دارنده کلید خصوصی سرور می‌تواند آن را بررسی کند. بخشی از این نشانه، شناسه کوتاهی به نام shortId است.
  2. سرور نشانه را بررسی می‌کند. اگر نشانه معتبر باشد، سرور خودش دست‌دهی را کامل می‌کند و پس از آن داده‌های VLESS می‌آیند.
  3. اسکنر یا هر بازدیدکننده دیگری ClientHello معمولی و بدون نشانه می‌فرستد. سرور مستقیم به آن پاسخ نمی‌دهد. در عوض، اتصال را به سایت هدف هدایت می‌کند و آن سایت با گواهی و صفحه واقعی خودش پاسخ می‌دهد.

سایت هدف باید از TLS 1.3 و HTTP/2 پشتیبانی کند. کار REALITY بر پایه یک جفت کلید X25519 است. کلید خصوصی روی سرور می‌ماند و کلید عمومی را کلاینت دریافت می‌کند.

کلید VLESS همه تنظیمات اتصال را در خود دارد

کلید VLESS که از سرویس یا مدیر سرور می‌گیرید، رشته‌ای طولانی است. هر چیزی که کلاینت برای اتصال لازم دارد، در همین رشته است.

  • آدرس و پورت سرور.
  • شناسه UUID شما که نقش رمز عبور را دارد.
  • روش انتقال و لایه امنیتی، یعنی TLS یا REALITY.
  • نام سایتی که کلاینت در دست‌دهی می‌فرستد (SNI).
  • برای REALITY، کلید عمومی سرور و shortId.
  • اثر انگشت مرورگری که کلاینت در ClientHello خودش تقلید می‌کند.
  • حالت flow، معمولاً xtls-rprx-vision. اگر درون تونل اتصال TLS دیگری باشد، این حالت اندازه‌های معمول بسته‌ها را در دست‌دهی آن اتصال پنهان می‌کند. پس از دست‌دهی، چیزی را که سایت قبلاً رمزنگاری کرده است، دوباره رمزنگاری نمی‌کند.
  • یک نام، تا کلید را در فهرست تشخیص دهید.

چنین سروری را خودتان هم می‌توانید روی VPS اجاره‌ای راه بیندازید. در این صورت، راه‌اندازی و به‌روزرسانی هسته بر عهده خودتان است. اگر آدرس قبلی مسدود شود، انتقال سرور به آدرس جدید هم با شماست. برای مقایسه اجاره سرور با پرداخت برای سرویس VPN، مقاله ما درباره فرق VPS و VPN را بخوانید.

آدرس سرور از دید ارائه‌دهنده اینترنت شما پنهان نمی‌ماند

ترکیب VLESS و REALITY محتوای اتصال را پنهان می‌کند، نه سروری را که در طرف دیگر اتصال است. ارائه‌دهنده اینترنت شما همچنان اتصال به آن سرور را می‌بیند. آدرس سرور، زمان فعال بودن اتصال و تعداد بایت‌های ارسالی و دریافتی برایش مشخص است. اگر این آدرس مسدود شود، با هیچ تنظیمی در پروتکل نمی‌توانید اتصال را دوباره برقرار کنید. در این صورت، به سروری با آدرس دیگری نیاز دارید.

بعضی شبکه‌ها ترافیک را فقط به فهرستی از آدرس‌های تأییدشده راه می‌دهند. سروری خارج از این فهرست، هر قدر هم پروتکل خوب استتار شده باشد، در دسترس نیست. در چنین شبکه‌هایی، ترافیک باید از مسیر دیگری برود.

برنامه Ben's VPN پروتکل را انتخاب می‌کند و به کلید نیاز ندارد

برنامه Ben's VPN برای اتصال 4 روش دارد (VLESS + REALITY،‏ XHTTP،‏ Hysteria2 و Shadowsocks). یکی از آن‌ها را به‌طور خودکار انتخاب می‌کند. در تنظیمات نمی‌توانید روش مشخصی را ثابت کنید. برای مقایسه هر 4 روش در کنار هم، راهنمای ما درباره انواع پروتکل VPN را ببینید.

برنامه کلیدهای VLESS را نمی‌پذیرد، چه از سرویس دیگری باشند و چه از سرور خودتان. به آن‌ها نیازی هم ندارد، پس هیچ‌وقت UUID یا کلیدی وارد نمی‌کنید. برنامه را روی گوشی، تبلت یا کامپیوتر نصب کنید و روی دکمه اتصال بزنید. سپس در پنجره خرید Ben's VPN هزینه اشتراک را بپردازید. اگر از قبل اشتراک دارید، از همین پنجره وارد حسابتان شوید. فایل‌های نصب برای همه سیستم‌عامل‌ها در صفحه برنامه‌های ما قرار دارد.

وقتی کیفیت اتصال پایین است، برنامه ممکن است نوار اتصال ضعیف را همراه با دکمه رفع مشکل نشان دهد. این دکمه 2 گزینه پیشنهاد می‌کند: تغییر موقعیت سرور یا جست‌وجوی سرور کارآمد. همین جست‌وجو با نام یافتن سرور کارآمد در حساب کاربری ← تنظیمات هم در دسترس است. این جست‌وجو، سرور را دوباره بررسی می‌کند و به آن آدرس‌های IP جدید می‌دهد. اگر هیچ راه دیگری جواب ندهد، مالتی‌هاپ را فعال می‌کند. جست‌وجو بیش از 2 دقیقه طول نمی‌کشد.

پرسش و پاسخ

آیا برای راه‌اندازی VLESS به دامنه اختصاصی نیاز دارم؟

با REALITY به دامنه نیاز ندارید. سرور از هویت سایت هدفی متعلق به شخص ثالث استفاده می‌کند، پس گواهی مخصوص خودش را لازم ندارد. اگر VLESS درون TLS معمولی یا پشت CDN کار کند، به دامنه و گواهی نیاز دارید.

چرا سرور VLESS را روی پورت 443 اجرا می‌کنند؟

پورت 443 پورت استاندارد HTTPS است. اتصال TLS یا REALITY روی این پورت شبیه وب‌گردی عادی است. روی پورتی غیرمعمول، همین اتصال از بیشتر ترافیک شبکه متمایز می‌شود. خود پروتکل VLESS روی هر پورتی کار می‌کند.

فرق VLESS با Hysteria2 چیست؟

معمولاً VLESS روی TCP و درون TLS یا REALITY جابه‌جا می‌شود. پروتکل Hysteria2 بر پایه QUIC ساخته شده است، پس روی UDP کار می‌کند. ترافیک Hysteria2 از بیرون شبیه HTTP/3 است. به همین دلیل، محدودیت‌های متفاوتی در شبکه بر این 2 پروتکل اثر می‌گذارند. شبکه‌ای که UDP را مسدود می‌کند یا سرعتش را پایین می‌آورد، روی Hysteria2 اثر می‌گذارد، اما بر VLESS روی TCP اثری ندارد. در Ben's VPN هر دو پروتکل وجود دارد و برنامه از میان آن‌ها انتخاب می‌کند.

آیا REALITY آدرس IP سرور را پنهان می‌کند؟

نه، REALITY دست‌دهی را استتار می‌کند، اما آدرس سرور را نه. ناظری در شبکه می‌تواند ببیند دستگاه شما به کدام سرور وصل می‌شود. وقتی آن آدرس مسدود شود، به سروری با آدرس جدید نیاز دارید.

آیا می‌توانم کلید VLESS خودم را به برنامه Ben's VPN اضافه کنم؟

نه، کلیدهای VLESS از سرویس‌های دیگر یا از سرور خودتان در این برنامه کار نمی‌کنند. برنامه به سرورهای Ben's VPN وصل می‌شود و پروتکل را برایتان انتخاب می‌کند.

نویسنده

آنتون بلوف

درباره شبکه‌ها و پروتکل‌های VPN می‌نویسد.

اول 3 روز امتحان، بعد تصمیم

قیمت دسترسی آزمایشی $0.50 است و همه 187 کشور و همه برنامه‌ها را باز می‌کند. پس از آن، اشتراک با $5 در ماه تمدید می‌شود. تمدید را هر زمان می‌توانید در صفحه حساب لغو کنید.

Mac App Store App Store Google Play