V2Ray یک ابزار جدید و قدرتمند برای گذر از تحریم است که در ایران نیز بسیار استفاده میشود و تقریبا همه با آشنایی دارند. V2Ray به دلیل مزایایی که انتخاب اول اکثر افراد برای کانفیگ سرور مجازی و گذر از تحریم و فیلترینگ میباشد.
V2Ray چیست؟
V2Ray یک پروژه متنباز و ابزار پروکسی امن برای کاربران اینترنت است که امکان دسترسی به محتوای آنلاین را با حفظ حریم خصوصی و امنیت فراهم میکند. این ابزار به کاربران اجازه میدهد تا ترافیک اینترنت خود را رمزگذاری کرده و آن را از طریق تونلهای امن منتقل کنند.
مروری بر تاریخچه V2Ray
پروژه V2Ray در سال ۲۰۱۵ توسط یک گروه برنامهنویسان چینی آغاز شد که هدف آنها ایجاد یک ابزار پروکسی امن و کارآمد برای دور زدن سانسور اینترنت در چین بود. از آن زمان، V2Ray بهطور گستردهای مورد استفاده قرار گرفته و بهعنوان یک گزینه محبوب برای کاربران در سراسر جهان شناخته شده است.
معماری و اصول طراحی V2Ray
V2Ray بر اساس چند اصل اساسی طراحی شده است:
- امنیت: V2Ray از پروتکلهای رمزنگاری قوی برای محافظت از ترافیک اینترنت در برابر نفوذ و جاسوسی استفاده میکند.
- انعطافپذیری: این ابزار قابلیت پیکربندی گستردهای دارد و میتواند برای انواع مختلف کاربردها و سناریوهای شبکه سفارشی شود.
- کارایی: V2Ray برای بهینهسازی مصرف منابع و افزایش سرعت انتقال داده طراحی شده است.
- چندلایهای: V2Ray از معماری چندلایهای بهره میبرد که امکان جداسازی مسئولیتها و مدیریت بهتر پیچیدگی را فراهم میکند.
چگونگی کار V2Ray
V2Ray از یک سرور و چندین کلاینت تشکیل شده است. کلاینتها ترافیک اینترنت را رمزگذاری میکنند و آن را به سمت سرور ارسال میکنند. سرور دادههای رمزگذاری شده را دریافت میکند، آنها را رمزگشایی کرده و به مقصد نهایی هدایت میکند. این فرآیند برعکس نیز صادق است، یعنی پاسخهای دریافتی از سرور اصلی، توسط سرور V2Ray رمزگذاری شده و به کلاینتها ارسال میشوند.
V2Ray از پروتکلهای رمزنگاری قوی مانند ChaCha20، AES-128-GCM و AES-256-GCM برای رمزگذاری ترافیک استفاده میکند. همچنین، از روشهای مختلف برای پنهانسازی ترافیک رمزگذاری شده و جلوگیری از شناسایی و سانسور آن بهره میبرد.
نحوه استفاده از V2Ray
برای استفاده از V2Ray، کاربران باید V2Ray را روی یک سرور امن و آزاد نظیر سرور اختصاصی سوئد راهاندازی کنند. سپس، کلاینت V2Ray را بر روی دستگاههای خود نصب کرده و آن را برای اتصال به سرور پیکربندی میکنند. پس از برقراری ارتباط، ترافیک اینترنت کاربران از طریق تونل رمزگذاری شده V2Ray منتقل میشود.
V2Ray دارای رابط کاربری گرافیکی نیست و از طریق خط فرمان یا فایلهای پیکربندی مدیریت میشود. این امر ممکن است برای کاربران تازهکار چالشبرانگیز باشد، اما منابع آموزشی و راهنماهای متعددی برای کمک به پیکربندی و استفاده از V2Ray در دسترس است.
Xray معماری بهینه شده برای کارایی بیشتر
با گذشت زمان و افزایش تقاضا برای ابزارهای پراکسی امن، نیاز به یک معماری بهینهشده و کارآمدتر احساس شد. در همین راستا، پروژه Xray در سال ۲۰۲۰ متولد شد. Xray یک فورک (Fork) از V2Ray است که با هدف بهبود کارایی و سادگی طراحی شده است.
معماری Xray بر اساس مفهوم کانالهای اتصال (Connection Handlers) بنا شده است که باعث افزایش سرعت میشود.
یکی دیگر از تفاوتهای اصلی Xray با V2Ray، استفاده از زبان برنامهنویسی Go برای توسعه آن است.
چرا Xray جایگزین V2Ray شد؟
V2Ray با تمام کاراییها و ویژگیهایی که داشت ضعفهایی نیز داشت و به همین دلیل یک شاخه دیگر از آن برای رفع این ایرادات و نیازها ایجاد شد که بهبودهای زیادی را نسبت به نسخه قبلی خود داشت.
افزایش کارایی و سرعت انتقال دادهها
یکی از دلایل اصلی توسعه Xray، نیاز به افزایش کارایی و سرعت انتقال دادهها بود. با افزایش تعداد کاربران و حجم ترافیک اینترنت، V2Ray با چالشهایی در زمینه پردازش سریع دادهها و مدیریت اتصالات روبرو شد.
سادگی و قابلیت نگهداری بهتر
یکی دیگر از چالشهای V2Ray، پیچیدگی معماری و ساختار آن بود که باعث میشد توسعه، نگهداری و بهروزرسانی آن دشوار باشد. Xray با هدف ارائه یک معماری سادهتر و قابل نگهداریتر طراحی شده است.
استفاده از زبان برنامهنویسی Go برای توسعه Xray، یکی از عوامل کلیدی در دستیابی به این هدف بوده است. Go یک زبان برنامهنویسی سطح بالا با قابلیتهای قدرتمند در زمینه برنامهنویسی موازی و توزیعشده است که باعث بهبود قابلیت نگهداری و گسترشپذیری Xray میشود.
با ساختار سادهتر توسعهدهندگان میتوانند بهراحتی Xray را گسترش دهند و بهروزرسانیهای امنیتی و عملکردی را بهسرعت اعمال کنند.
استفاده از فناوریهای جدید و بهینهسازی
علاوه بر استفاده از زبان برنامهنویسی Go، Xray از فناوریهای جدید و بهینهسازیهای متعددی نیز بهره میبرد که باعث افزایش کارایی و امنیت آن میشود.
یکی از این بهینهسازیها، استفاده از الگوریتمهای رمزنگاری جدیدتر و کارآمدتر مانند AES-128-GCM و Chacha20-Poly1305 است. این الگوریتمها نه تنها امنیت بالاتری را ارائه میکنند، بلکه از نظر سرعت پردازش نیز بهینهتر هستند.
علاوه بر این، Xray از تکنیکهای جدید برای پنهانسازی ترافیک رمزگذاری شده و جلوگیری از شناسایی و سانسور آن استفاده میکند. این امر باعث افزایش امنیت و عملکرد بهتر Xray در شرایط سانسور اینترنت میشود.
پشتیبانی از قابلیتهای جدید
با معرفی Xray، توسعهدهندگان فرصت بیشتری برای اضافه کردن قابلیتهای جدید و پیشرفته به این ابزار پیدا کردند. برخی از این قابلیتهای جدید عبارتند از:
- پشتیبانی از انواع جدید پروتکلهای انتقال داده
- امکان پیکربندی پیشرفتهتر و انعطافپذیرتر
- قابلیتهای مانیتورینگ و گزارشگیری بهتر
- پشتیبانی از انواع جدید رمزنگاری و الگوریتمهای امنیتی
این قابلیتهای جدید، Xray را به یک ابزار کارآمدتر و متناسب با نیازهای در حال تغییر کاربران تبدیل میکند.
پروتکلهای پشتیبانی شده Xray
Xray از طیف گستردهای از پروتکلهای انتقال داده پشتیبانی میکند که هر کدام دارای ویژگیها و مزایای منحصربهفردی هستند.
- VMess: یکی از پروتکلهای اصلی و پرکاربرد در Xray است که از V2Ray به ارث برده شده است. این پروتکل از رمزنگاری قوی و الگوریتمهای امنیتی پیشرفته برای حفظ حریم خصوصی و امنیت ترافیک اینترنت استفاده میکند. VMess همچنین از تکنیکهای پنهانسازی ترافیک بهره میبرد تا شناسایی و سانسور آن را دشوارتر کند.
- VLESS: ویژنلس یک پروتکل جدید و سادهتر است که توسط توسعهدهندگان Xray معرفی شده است. این پروتکل برای کاربران با نیازهای پایه طراحی شده و از رمزنگاری و پنهانسازی ترافیک سادهتری استفاده میکند. VLESS میتواند یک گزینه مناسب برای کاربرانی باشد که به دنبال راهحلی سریع و کارآمد برای دسترسی به محتوای سانسور شده هستند.
- Trojan: تروجان یک پروتکل امن و مقاوم در برابر سانسور است که در Xray پشتیبانی میشود. این پروتکل از تکنیکهای پیشرفتهای برای پنهانسازی ترافیک رمزگذاری شده استفاده میکند و آن را بهطور کامل در ترافیک معمولی وب جای میدهد. این امر باعث میشود که شناسایی و سانسور ترافیک Trojan بسیار دشوار باشد.
- WireGuard: وایرگارد یک پروتکل VPN امن و کارآمد است که در Xray پشتیبانی میشود. این پروتکل از رمزنگاری قوی و الگوریتمهای کریپتوگرافی پیشرفته برای حفظ امنیت و حریم خصوصی ترافیک استفاده میکند. WireGuard همچنین دارای یک معماری ساده و کدی کوچک است که باعث افزایش کارایی و سرعت آن میشود.
- ShadowSocks: شدوساکس یک پروتکل قدیمیتر و سادهتر است که در Xray پشتیبانی میشود. این پروتکل از رمزنگاری و تکنیکهای پنهانسازی ترافیک سادهتری استفاده میکند و میتواند یک گزینه مناسب برای کاربران با نیازهای پایه و محدود باشد.
- Socks: ساکس یک پروتکل پروکسی قدیمی است که در Xray پشتیبانی میشود. این پروتکل برای برقراری اتصال به سرورهای پروکسی مورد استفاده قرار میگیرد و میتواند برای انتقال ترافیک از طریق تونلهای امن استفاده شود.
- Reality: پروتکل Reality یک پروتکل جدید و نوآورانه است که برای Xray طراحی شده است. این پروتکل بر اساس پروتکل VLESS ساخته شده است. پروتکل Reality با استفاده از یک تکنیک جدید به نام obfuscation ترافیک شما را رمزنگاری میکند. Obfuscation ترافیک شما را طوری پنهان میکند که مانند ترافیک معمولی HTTPS به نظر میرسد. این امر باعث میشود که شناسایی و مسدود کردن ترافیک شما دشوارتر شود.
انتخاب پروتکل مناسب
با توجه به تنوع پروتکلهای پشتیبانی شده در Xray، انتخاب پروتکل مناسب بسته به نیازها و شرایط خاص کاربران متفاوت خواهد بود. با این حال برخی از پروتکلها سریعتر شناسایی میشوند و برخی کلا فیلتر هستند و کار نمیکنند. در حال حاضر تقریبا همه سرویس دهندهها از VLESS استفاده میکنند زیرا برخی تکنولوژیهای جدیدتر مانند Reality فقط روی این پروتکل کار میکنند.
Transport های مختلف
Xray از Transport های مختلفی برای انتقال ترافیک رمزگذاری شده بهره میبرد. این Transport ها، روشهای متفاوتی را برای پنهانسازی و مقاومسازی ترافیک در برابر شناسایی و سانسور ارائه میکنند.
TCP
TCP یکی از پروتکلهای پایه و پرکاربرد در انتقال دادههای اینترنتی است. Xray از TCP بهعنوان یک Transport برای انتقال ترافیک رمزگذاری شده استفاده میکند. این Transport ساده و پایدار است، اما ممکن است توسط سیستمهای سانسور شناسایی شود.
WebSocket
WebSocket یک پروتکل قدرتمند برای برقراری ارتباط دوطرفه و پایدار از طریق یک اتصال TCP است. Xray از WebSocket بهعنوان یک Transport برای انتقال ترافیک رمزگذاری شده استفاده میکند. این Transport میتواند ترافیک را در قالب ترافیک وب معمولی پنهان کند و از شناسایی و سانسور آن جلوگیری کند.
WebSocket یک پروتکل ارتباطی دوطرفه است که امکان ارسال و دریافت دادهها را از طریق یک اتصال TCP پایدار فراهم میکند. این پروتکل بهطور گستردهای در وبسایتها و برنامههای وب استفاده میشود و میتواند ترافیک را بهگونهای پنهان کند که شبیه به ترافیک وب معمولی بهنظر برسد.
HTTP/2
HTTP/2 نسخه جدیدتر و بهینهشده پروتکل HTTP است که برای انتقال سریعتر و کارآمدتر دادههای وب طراحی شده است. Xray از HTTP/2 بهعنوان یک Transport برای انتقال ترافیک رمزگذاری شده بهره میبرد. این Transport میتواند ترافیک را در قالب ترافیک وب معمولی پنهان کند و از شناسایی و سانسور آن جلوگیری کند.
HTTP/2 با استفاده از تکنیکهایی مانند چندگانهسازی درخواستها (Request Multiplexing)، فشردهسازی هدر (Header Compression) و اولویتبندی درخواستها (Request Prioritization)، انتقال دادههای وب را نسبت به نسخههای قبلی HTTP بهبود میبخشد.
gRPC
gRPC یک سیستم RPC (فراخوانی از راه دور) مدرن و قدرتمند است که برای ایجاد برنامههای توزیعشده و سرویسگرا طراحی شده است. Xray از gRPC بهعنوان یک Transport برای انتقال ترافیک رمزگذاری شده بهره میبرد.
gRPC از پروتکل HTTP/2 برای انتقال دادهها استفاده میکند و از این رو میتواند از مزایای این پروتکل مانند چندگانهسازی درخواستها و فشردهسازی هدر بهرهمند شود.
TLS
TLS یک پروتکل رمزنگاری و امنیتی است که برای ایجاد یک کانال ارتباطی امن میان دو طرف در شبکه استفاده میشود. Xray از TLS برای رمزگذاری و امنسازی ترافیک انتقالی از طریق Transport های مختلف بهره میبرد.
TLS از الگوریتمهای رمزنگاری قوی مانند AES، ChaCha20 و الگوریتمهای تأیید اعتبار مانند RSA و ECDSA استفاده میکند. این پروتکل همچنین از تکنیکهای امنیتی مانند تأیید اعتبار متقابل (Mutual Authentication) و محافظت در برابر حملات مانند Man-in-the-Middle بهره میبرد.
Reality
Reality یک تکنیک پنهانسازی ترافیک در Xray است که از آن برای جلوگیری از شناسایی و سانسور ترافیک رمزگذاری شده استفاده میشود. این تکنیک، ترافیک رمزگذاری شده را در قالب ترافیک وب معمولی جای میدهد و آن را بهگونهای پنهان میکند که شبیه به ترافیک وب واقعی بهنظر برسد.
Reality از الگوریتمهای پیچیدهای برای شبیهسازی ترافیک وب واقعی استفاده میکند. این الگوریتمها، ویژگیهایی مانند اندازه بستههای داده، زمانبندی ارسال بستهها، و الگوهای رفتاری کاربران را برای پنهانسازی ترافیک رمزگذاری شده در نظر میگیرند.
استفاده از Reality در Xray میتواند برای محیطهایی با سانسور اینترنت بسیار بالا و نیاز به پنهانسازی کامل ترافیک رمزگذاری شده مناسب باشد. این تکنیک، احتمال شناسایی و سانسور ترافیک را بهشدت کاهش میدهد و امنیت و حریم خصوصی کاربران را در هنگام دسترسی به محتوای آنلاین تضمین میکند.
راه اندازی سرور V2Ray
با منسوخ شدن V2Ray حال همه پنلها و افراد از xray استفاده میکنند که در حقیقت یک شاخه از خود وی۲ری است. برای راهاندازی یک سرور Xray، نیاز به یک سرور مجازی یا سرور اختصاصی با سیستم عامل لینوکس دارید. سرورهای مجازی (VPS) گزینهای ارزانقیمت و مقرون به صرفه هستند که امکانات کنترل کامل بر سرور را در اختیار شما قرار میدهند. از طرف دیگر، سرورهای اختصاصی گرانتر هستند اما عملکرد بهتری دارند و برای کاربران حرفهای و پرمصرف مناسبتر هستند.
برای خرید یک VPS یا سرور اختصاصی، میتوانید از ارائهدهندگان معتبر و شناخته شدهای مانند DigitalOcean، Linode، Vultr و یا Hetzner استفاده کنید. برای خرید ریالی نیز میتوانید از طریق مارال هاست اقدام کنید. هنگام انتخاب سرور، به نکات زیر توجه کنید:
سیستم عامل لینوکس: بیشتر ارائهدهندگان، گزینههای مختلفی از سیستمعاملهای لینوکس مانند Ubuntu، Debian، CentOS و غیره را ارائه میکنند.
حافظه رم و فضای دیسک: حافظه رم و فضای دیسک مورد نیاز بستگی به تعداد کاربران و میزان ترافیک دارد. برای یک سرور Xray معمولی، حداقل ۲ گیگابایت رم و ۲۰ گیگابایت فضای دیسک کافی است.
پهنای باند: پهنای باند مصرفی بستگی به میزان ترافیک دارد. اگر تعداد کاربران زیادی را پشتیبانی میکنید، به پهنای باند بیشتری نیاز خواهید داشت.
موقعیت جغرافیایی: انتخاب موقعیت جغرافیایی سرور میتواند بر عملکرد و سرعت آن تاثیر بگذارد. توصیه میشود سرور را در نزدیکی کاربران خود انتخاب کنید.
پس از خرید سرور، باید به آن دسترسی داشته باشید. ارائهدهندگان معمولاً اطلاعات لاگین و آیپی سرور را در اختیار شما قرار میدهند. برای اتصال به سرور، میتوانید از ابزارهایی مانند PuTTY (در ویندوز) یا Terminal (در لینوکس و macOS) استفاده کنید.
حتما به این نکته توجه داشته باشید که اگر میخواهید اتصال مستقیم به سرور برقرار کنید و سرور ایرانی بین کلاینتها و سرور نهایی وجود ندارد باید سرور با آیپی تمیز و بلاک نشده پیدا کنید. برای این کار پس از خرید و مشخص شدن آیپی سرور آن را در سایت check-host.net چک کنید.
نصب پنل
پنلها پلتفرمهایی هستند که رابط کاربری را برای استفاده از هسته Xray ارائه میدهند. پس از اتصال به سرور لینوکس، میتوانید پنل X-UI را نصب کنید. X-UI یک رابط کاربری گرافیکی وب برای مدیریت سرور Xray است که کار را برای شما آسانتر میکند. برای نصب X-UI، دستورات زیر را در ترمینال سرور وارد کنید:
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/x-ui/master/install.sh)
این دستور، آخرین نسخه X-UI را از گیتهاب دانلود و نصب میکند. پس از نصب موفق، X-UI در پورت ۵۴۳۲۱ سرور در دسترس خواهد بود. برای دسترسی به رابط کاربری گرافیکی X-UI، در مرورگر وب خود آدرس
http://IP:54321
را وارد کنید.
در صفحه ورود به X-UI، نام کاربری و رمز عبور پیشفرض admin است. پس از ورود، میتوانید تنظیمات مختلف سرور Xray را از طریق رابط کاربری گرافیکی مدیریت کنید.
ساخت کانفیگ (پیکربندی) Xray
کانفیگ Xray شامل تنظیمات مختلفی است که رفتار سرور را کنترل میکند. در پنل X-UI، میتوانید به راحتی یک کانفیگ جدید ایجاد کنید.
در منوی اصلی X-UI، گزینه تنظیمات را انتخاب کنید. سپس از زیرمنوی کانفیگ Xray، گزینه افزودن کانفیگ جدید را انتخاب کنید. در این قسمت، میتوانید تنظیمات مختلف کانفیگ را انجام دهید:
- نام کانفیگ: یک نام منحصر به فرد برای کانفیگ خود انتخاب کنید.
- نوع پروتکل: در اینجا باید پروتکل VMess را انتخاب کنید.
- تنظیمات عمومی: در این بخش، میتوانید تنظیمات عمومی مانند آدرس سرور، پورت Listen رمزنگاری، و غیره را انجام دهید.
- تنظیمات مسیریابی: در این بخش، میتوانید قوانین مسیریابی ترافیک را تعیین کنید. برای مثال، میتوانید ترافیک برخی از دامنهها یا آیپیها را از طریق Xray تونل کنید و بقیه ترافیک را بدون تغییر رد کنید. این گزینه برای باز کردن برخی دامنههای ایرانی مخصوصا سایتهای بانکی کاربرد دارد.
- تنظیمات کلاینت: در این بخش، میتوانید کلاینتهای جدید ایجاد کنید و تنظیمات آنها را انجام دهید. هر کلاینت دارای یک آیدی منحصر به فرد است که برای اتصال به سرور Xray از آن استفاده میشود.
پس از انجام تنظیمات لازم، میتوانید کانفیگ را ذخیره کنید. X-UI به طور خودکار کانفیگ را در سرور Xray اعمال میکند.
دریافت گواهینامه SSL
برای راه اندازی و استفاده از برخی کانفیگها نیاز به داشتن SSL دارید که میتوانید آن را به صورت رایگان به کمک Let's Encrypt ایجاد کنید.
ولی روش بهتر که حجم کار را در صورت فیلتر شدن دامنه کم میکند استفاده از کلادفلر است.
به داشبورد کلادفلر خود مراجعه کنید و Origin server را انتخاب کنید و نام دامنه خود + ستاره به عنوان زیر دامنه وارد کنید:
example.com
*.example.com
و سپس سیو کنید.
دو عدد کلید به شما نشان داده میشود: Certificate و Private Key.
این دو را کپی کرده و در فایلهایی با نام cert.crt و private.key ذخیره کنید. دقت کنید پسوند فایلها صحیح باشد.
سپس این فایلها را به سرور خود انتقال دهید.
ازین به بعد در صورت فیلتر شدن ساب دامنه کافی است از قسمت Records زیر DNS تنها نام را عوض کنید و نیازی به دریافت مجدد SSL در VPS نیست.
تانل زدن بین سرور ایران و سرور خارج
بعضی ارائه دهندگان برای پایداری و سرعت بیشتر و همچنین محاسبه نیم بها اینترنت و رفع مشکل محدودیتهای متفاوت اپراتورها پس از خرید سرور مجازی با IP ثابت اقدام به تانل سرور میکنند. این روش به این صورت است که به جای یک سرور دو سرور استفاده میشود. یکی از این سرورها در داخل کشور مستقر است که مشکل محدودیت و فیلترینگ ندارد. و سرور دیگر در خارج از کشور حال به جای اینکه کلاینتها و کاربران به سرور خارج متصل شوند به سرور داخل ایران وصل میشوند و سرور ایران ترافیک آنها را به سرور خارج انتقال میدهد.
در این روش مشکل شناسایی شناسایی سرور خارجی و فیلتر شدن آن تا حد زیادی رفع میشود.
روشهای زیادی برای تانل سرور داخل ایران و سرور مقصد به هم وجود دارد.
یکی از این روشها iptables است.
IPtables
آیپی تیبل یک روش اتصال سرورها به هم است که باعث میشود هر بسته ارسالی و دریافتی کاربر ابتدا از سرور ایرانی عبور کند.
ابتدا مطمئن شوید که آیپی تیبل روی سرور لینوکسی شما نصب است:
sudo apt-get install iptables
برای شروع کار و تانل سرورها به یکدیگر ابتدا به سرور ایران خود ssh بزنید و دستورات زیر را وارد کنید:
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 1.1.1.1
iptables -t nat -A PREROUTING -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -j MASQUERADE
آیپی ۱.۱.۱.۱ را با آیپی سرور ایران خود و آیپی ۲.۲.۲.۲ را با آیپی سرور خارج خود که پنل X-UI روی آن نصب است جایگزین کنید.
حال تمام ترافیکی که به سرور ایران شما وارد میشود به سرور خارج هدایت میشود.
کافی است پس از دریافت لینک vless از پنل خود آی پی سرور آن را ویرایش کرده و با آیپی سرور داخلی جایگزین کنید.
- 10
- 6