انواع پروتکل VPN به تفکیک نسل و 6 معیار برای انتخاب

پروتکل VPN مجموعه قواعدی است که برنامهتان و سرور از آن پیروی میکنند. این قواعد شامل تبادل کلید، بستهبندی ترافیکتان و رساندن آن از میان شبکههای دیگر میشوند. سرعت برقراری اتصال را پروتکل تعیین میکند. پروتکل همچنین روی این اثر میگذارد که اتصال پس از جابهجایی از Wi-Fi به اینترنت همراه برقرار بماند یا نه. عامل سوم، میزان آشکار بودن VPN برای شبکههای سر راه است. هر پروتکل برای حل مسئلهای از دوران خودش طراحی شده است. در دهه 1990، این مسئله دسترسی دایالآپ به شبکه دفتر بود. امروز، مسئله دسترسی از طریق شبکههایی است که VPN را از روی نخستین بایتهایش شناسایی میکنند. در ادامه، انواع پروتکل VPN بر اساس نسل دستهبندی شدهاند و 6 معیار پایان مقاله به شما کمک میکند یکی را انتخاب کنید.
تفاوت پروتکلها در دستدهی، روش انتقال و اثر انگشت
آداپتور، تونل و سرور را در راهنمای مقدماتی VPN شرح دادهایم. هر پروتکل تونل را به روش خودش میسازد. تفاوتها به 3 بخش مربوط میشوند.
دستدهی، کلیدهای نشست را تعیین میکند
برنامه و سرور پیش از عبور هر دادهای، هویت یکدیگر را تأیید میکنند و بر سر کلیدهای نشست به توافق میرسند. WireGuard از هر طرف به یک پیام نیاز دارد و IKEv2 در مجموع به 4 پیام. OpenVPN دستدهی کامل TLS را درون کانال کنترل خودش اجرا میکند. رفتوبرگشت کمتر یعنی اتصال سریعتر در خطوطی که هر پاسخ در آنها دیر میرسد. اینترنت ماهوارهای و شبکههای شلوغ اینترنت همراه، نمونههای رایج چنین خطوطی هستند.
بستههای گمشده، تونل روی TCP را کند میکنند
UDP هر بسته را یک بار میفرستد و بررسی نمیکند که بسته رسیده است یا نه. TCP برای دادهای که میفرستد منتظر تأیید دریافت میماند. اگر تأیید بهموقع نرسد، TCP داده را دوباره میفرستد و نرخ ارسال را پایین میآورد. در تونل روی TCP، 2 لایه از این نوع یکی درون دیگری قرار میگیرند. لایه تونل، بسته گمشده را دوباره میفرستد و این کار زمان میبرد. در همین فاصله، اتصال مرورگر درون تونل آن بسته را گمشده حساب میکند. این اتصال هم نسخه خودش را میفرستد و نرخ ارسالش را پایین میآورد. در نتیجه، صفحهها نامنظم و با توقفهای پیدرپی بارگذاری میشوند. به همین دلیل، WireGuard فقط روی UDP کار میکند. توسعهدهندگان WireGuard اعلام کردهاند که این پروتکل حالت TCP نخواهد داشت، چون TCP روی TCP عملکرد بدی دارد. عیب این تصمیم آن است که WireGuard در شبکهای که UDP را مسدود میکند وصل نمیشود.
شبکه اثر انگشت را میبیند، نه محتوا را
ارائهدهنده اینترنت شما نمیتواند محتوای تونل را بخواند. اما پورت، اندازه نخستین پیامها و هر فیلد رمزنگارینشده در هدر را میبیند. این جزئیات روی هم اثر انگشت پروتکل را تشکیل میدهند. برخی سامانههای مسدودسازی درخواست آزمایشی هم به سرور مشکوک میفرستند و پاسخ آن را بررسی میکنند. پروتکلهای قدیمیتر بدون در نظر گرفتن چنین بررسیهایی طراحی شدند. در پروتکلهای جدیدتر، اثر انگشت بخشی اساسی از طراحی است.
10 پروتکل VPN از دهه 1990 تا دهه 2020
پروتکلهای جدید جای پروتکلهای قدیمی را نگرفتهاند. PPTP هنوز در سفتافزار روترها هست و L2TP و IKEv2 در خود Windows و macOS وجود دارند. در جدول، هر پروتکل همراه با دهه پیدایش و هدف اولیهاش آمده است.
| پروتکل | زمان پیدایش | هدف طراحی |
|---|---|---|
| PPTP | دهه 1990 | رساندن اتصال دایالآپ به شبکه دفتر از طریق اینترنت |
| L2TP/IPsec | حدود سال 2000 | جایگزینی PPTP انحصاری با استانداردی باز و سپردن رمزنگاری به IPsec |
| OpenVPN | دهه 2000 | فراهم کردن تونل TLS روی یک پورت واحد برای هر سیستمعاملی |
| IKEv2/IPsec | دهه 2000 | توافق سریعتر بر سر کلیدها و حفظ نشست هنگام تغییر شبکه |
| SSTP | دهه 2000 | عبور از شبکههایی که فقط HTTPS را راه میدهند |
| Shadowsocks | دهه 2010 | حذف هر اثر انگشتی از ترافیک |
| WireGuard | دهه 2010 | ساده نگه داشتن تونل و کوچک نگه داشتن کد به اندازهای که بازبینی آن ممکن باشد |
| VLESS + REALITY | دهه 2020 | ظاهر شدن به شکل اتصال HTTPS به سایتی واقعی و شناختهشده |
| Hysteria2 | دهه 2020 | حفظ سرعت در خطوطی که بستهها در آنها زیاد گم میشوند و ظاهر شدن به شکل ترافیک HTTP/3 |
| XHTTP | دهه 2020 | انتقال داده در قالب درخواستهای معمولی HTTP، از جمله از طریق CDN |
PPTP و L2TP/IPsec به دوران دایالآپ برمیگردند
PPTP
PPTP برای این طراحی شد که کارمند بتواند با مودم و از طریق اینترنت به شبکه دفتر وصل شود. این پروتکل PPP را درون تونل منتقل میکند. PPP پروتکلی بود که اتصالهای دایالآپ به ارائهدهنده اینترنت از آن استفاده میکردند. مشخصات PPTP، یعنی RFC 2637، در سال 1999 منتشر شد. کانال کنترل از پورت TCP 1723 استفاده میکند و دادهها درون GRE جابهجا میشوند. GRE پورت ندارد، برای همین روترهای خانگی هنوز تنظیمی به نام «PPTP Passthrough» دارند.
بروس اشنایر و پیتر زاتکو (Mudge) در سالهای 1998 و 1999 ضعفهای PPTP را شرح دادند. در سال 2012، یک سخنرانی در کنفرانس DEF CON نشان داد که امنیت احراز هویت MS-CHAPv2 شنودشده فقط به یک کلید DES وابسته است. کلیدی با این طول در زمانی معقول با جستوجوی فراگیر پیدا میشود. کلید رمزنگاری MPPE از همان دادههای احراز هویت به دست میآید، پس 128 بیت آن هیچ محافظتی اضافه نمیکند. پس از آن، Microsoft توصیهنامهای امنیتی منتشر کرد و درباره استفاده از MS-CHAPv2 بدون محافظت اضافه هشدار داد. از آن زمان، PPTP امن به شمار نمیرود.
L2TP/IPsec
L2TP (RFC 2661، سال 1999) ایدههایی از PPTP و پروتکل L2F شرکت Cisco را با هم ترکیب میکند. L2TP رمزنگاری مخصوص خودش را ندارد، برای همین تقریباً همیشه درون IPsec (RFC 3193، سال 2001) اجرا میشود. هر بسته 2 لایه میگیرد، اول L2TP و بعد IPsec. هر دو لایه بایت اضافه میکنند و هر دو پیکربندی لازم دارند. تبادل کلید از پورت UDP 500 استفاده میکند و دادهها از UDP 4500 یا پروتکل جداگانه ESP میگذرند. این پورتهای ثابت، این ترکیب را آشکار میکنند و چند قانون فایروال برای مسدود کردنش کافی است.
Microsoft در سال 2008 پروتکل SSTP را معرفی کرد که همان PPP را درون HTTPS روی پورت TCP 443 منتقل میکند. از بیرون، این اتصال مثل مرور معمولی وب به نظر میرسد. SSTP از فایروالهایی که فقط ترافیک وب را راه میدهند عبور میکند. از میان سیستمعاملهای کامپیوتر و گوشی، فقط Windows کلاینت SSTP را بهصورت داخلی دارد.
IKEv2، OpenVPN و WireGuard رمزنگاری قوی و اثر انگشت آشکاری دارند
هر 3 پروتکل بهخوبی از دادههایتان محافظت میکنند و در شبکه معمولی بدون مشکل کار میکنند. ضعف مشترکشان اثر انگشتی است که شبکه میتواند تشخیص دهد. در شبکههایی که اتصالهای VPN را مسدود میکنند، این ضعف از قدرت رمزنگاری مهمتر است.
IKEv2/IPsec
IKEv2 با 4 پیام بر سر کلیدها توافق میکند، در حالی که IKEv1 برای نخستین تبادل 8 حالت مختلف داشت. روی گوشی و لپتاپ، نقطه قوت IKEv2 افزونه MOBIKE (RFC 4555) است. با MOBIKE، لپتاپ میتواند از Wi-Fi دفتر به هاتاسپات گوشی جابهجا شود. تونل بدون تکرار احراز هویت به آدرس جدید منتقل میشود. iOS، macOS، Windows و Android 11 و جدیدتر کلاینت داخلی IKEv2 دارند. در این سیستمها برای IKEv2 لازم نیست چیزی نصب کنید. شبکهها IKEv2 را از روی همان پورتهای UDP، یعنی 500 و 4500، تشخیص میدهند.
OpenVPN
OpenVPN پروژهای متنباز با پروتکل خودش است و RFC ندارد. دستدهی آن از TLS استفاده میکند و AES-GCM معمولاً از دادهها محافظت میکند. OpenVPN روی UDP یا TCP و روی هر پورتی کار میکند و IANA پورت 1194 را برای آن ثبت کرده است. این پروتکل در سفتافزار بسیاری از روترها هست و تنظیماتش معمولاً به شکل یک فایل .ovpn ارائه میشود. نقطه ضعف آن هدری است که OpenVPN به هر بسته اضافه میکند. نوع پیام در این هدر رمزنگاری نمیشود و همه نشستها به یک شکل شروع میشوند. در سال 2022، پژوهشگران این موضوع را روی شبکه یک ارائهدهنده اینترنت واقعی آزمایش کردند. آنها OpenVPN را در آن ترافیک بدون رمزگشایی حتی یک بایت شناسایی کردند.
WireGuard
جیسون دوننفلد WireGuard را در سال 2017 در کنفرانس NDSS معرفی کرد. WireGuard در سال 2020 با نسخه 5.6 بخشی از هسته Linux شد. این پروتکل از مجموعهای ثابت از الگوریتمهای رمزنگاری استفاده میکند (Curve25519، ChaCha20-Poly1305 و BLAKE2s در دستدهی Noise). برای همین نمیتوانید بهاشتباه گزینه ضعیفی انتخاب کنید. سرور به بستههایی که کلید معتبر ندارند پاسخ نمیدهد. از بیرون، هیچ نشانهای از وجود سرور پیدا نیست.
اما ترافیک کلاینت اثر انگشت آشکاری دارد. نخستین پیام دستدهی همیشه 148 بایت است و پاسخ آن همیشه 92 بایت. نوع پیام بدون رمزنگاری فرستاده میشود. سایت WireGuard اعلام میکند که این پروتکل روی مبهمسازی تمرکز ندارد. مبهمسازی به لایهای جداگانه بالای WireGuard سپرده شده است. WireGuard در شبکههای باز خوب کار میکند و در شبکههایی که VPN را مسدود میکنند زود شناسایی میشود.
VLESS + REALITY، XHTTP، Hysteria2 و Shadowsocks اثر انگشت VPN را پنهان میکنند
این پروتکلها برای شبکههایی ساخته شدهاند که اتصالهای VPN را شناسایی و مسدود میکنند. رمزنگاری آنها به اندازه پروتکلهای بالا قوی است. اما هدف اصلی آنها اثر انگشتی نزدیک به اثر انگشت ترافیک معمولی است. این پروتکلها از نظر طراحی مثل پروکسی کار میکنند و برنامه VPN همه ترافیک دستگاهتان را از طریق آنها میفرستد. مقاله VPN در برابر پروکسی تفاوت این دو را توضیح میدهد.
VLESS + REALITY
VLESS پروتکلی سبک است و امروز پروژه Xray آن را توسعه میدهد. این پروتکل شناسه کلاینت و آدرس مقصد را برای سرور میفرستد. رمزنگاری دادهها معمولاً به TLS سپرده میشود. REALITY اتصال را شبیه بازدید از سایتی واقعی متعلق به شخص ثالث میکند. ناظر در نخستین بسته نام همان سایت را میبیند. پس از آن دستدهی معمولی TLS 1.3 انجام میشود که در آن گواهی هم رمزنگاریشده است. سرور به دامنه و گواهی اختصاصی نیاز ندارد. اگر سامانه مسدودسازی بدون داشتن کلید، سرور را آزمایش کند، از سایت واقعی پاسخ میگیرد. REALITY چنین اتصالهایی را مستقیم به همان سایت هدایت میکند.
XHTTP
XHTTP یکی از روشهای انتقال در Xray است و نسخههای اولیهاش SplitHTTP نام داشتند. این روش، داده را به تکههایی تقسیم میکند و آنها را درون درخواستهای HTTP منتقل میکند. در یکی از حالتها، دادههای ارسالی با چند درخواست POST پشت سر هم فرستاده میشوند. در همان حالت، دادههای دریافتی به شکل پاسخی طولانی به درخواست GET برمیگردند. برای پروکسی HTTP یا شبکه تحویل محتوا (CDN)، این جریان ترافیک معمولی وب است. بنابراین سرور میتواند مثل بسیاری از سایتها پشت زیرساخت شخص ثالث کار کند.
Hysteria2
Hysteria2 روی QUIC (RFC 9000) کار میکند. QUIC روش انتقال مبتنی بر UDP است که HTTP/3 روی آن اجرا میشود. هنگام اتصال، کلاینت پهنای باند خط ارتباطیاش را اعلام میکند. Hysteria2 با همین نرخ داده میفرستد و بستههای گمشده را بیآنکه نرخ را پایین بیاورد دوباره ارسال میکند. این ویژگی در خطوطی که بستهها در آنها زیاد گم میشوند مفید است، مثل اینترنت همراه در قطار. بازدیدکنندهای که رمز عبور ندارد، سایت معمولی HTTP/3 میبیند. بسته به تنظیمات، سرور صفحه 404، فایلها یا سایتی دیگر را برمیگرداند. Hysteria2 در شبکه بدون UDP کار نمیکند.
Shadowsocks
Shadowsocks در سال 2012 پدید آمد و از میان این 4 پروتکل، قدیمیترین و سادهترین است. این پروتکل از همان نخستین بایت، پروکسی رمزنگاریشدهای است بدون هدر و بدون دستدهی قابل تشخیص. Outline، پروژهای از Jigsaw که برنامه Ben's VPN بر پایه آن ساخته شده است، روی Shadowsocks کار میکند. 3 پروتکل دیگر این گروه، اثر انگشت ترافیک معمولی وب را تقلید میکنند. در مقابل، ترافیک Shadowsocks به هیچ پروتکل شناختهشدهای شبیه نیست. نداشتن هیچ الگویی هم خودش نوعی اثر انگشت است. پژوهشگران در سال 2023 سامانه مسدودسازیای را شرح دادند که چنین اتصالهایی را پس از چند بررسی ساده مسدود میکرد. این بررسیها فقط به نخستین بسته نگاه میکردند. بنابراین در شبکههایی با مسدودسازی شدید، Shadowsocks بهتنهایی کافی نیست.
6 معیار برای انتخاب پروتکل
هیچ پروتکل VPN برای همه شرایط مناسب نیست و انتخاب درست به شبکه و نیازتان بستگی دارد. معیارها را به ترتیب، از بالا به پایین، بررسی کنید. معمولاً نخستین معیاری که درباره شما صدق کند، پروتکل را تعیین میکند.
تصمیم اول با صاحب سرور است
در شبکه محل کار یا تحصیل، از پروفایلی استفاده کنید که مدیر شبکه به شما میدهد. برای سرور خودتان، WireGuard سادهترین پروتکل از نظر پیکربندی است. فقط به یک جفت کلید و یک فایل پیکربندی کوتاه نیاز دارد. سرویس VPN معمولاً انتخاب پروتکل را به برنامهاش میسپارد.
در شبکهای که VPN را مسدود میکند، IKEv2، OpenVPN و WireGuard به کار نمیآیند
شبکهای که دنبال اثر انگشت VPN میگردد، IKEv2، OpenVPN و WireGuard را تشخیص میدهد. در چنین شبکهای از پروتکلهایی استفاده کنید که شبیه ترافیک معمولی هستند، مثل VLESS + REALITY، XHTTP و Hysteria2. در شبکه باز، هر 3 پروتکل بدون مشکل کار میکنند.
شبکه بدون UDP به پروتکل TCP نیاز دارد
فایروال برخی شرکتها و دانشگاهها فقط سایتها را راه میدهد. نشانه رایج این است که صفحهها باز میشوند، اما WireGuard یا IKEv2 هرگز وصل نمیشود. از جمله پروتکلهایی که در این شبکهها کار میکنند، VLESS + REALITY، XHTTP و OpenVPN روی TCP با پورت 443 هستند.
تغییر مکرر شبکه به سود IKEv2 و WireGuard است
گوشی در طول روز بارها بین Wi-Fi و اینترنت همراه جابهجا میشود. IKEv2 همراه با MOBIKE تونل را در این جابهجاییها حفظ میکند. WireGuard هم با این جابهجاییها مشکلی ندارد و آدرس جدید کلاینت را بهطور خودکار ثبت میکند. برنامههای سرویس VPN معمولاً پس از هر جابهجایی دوباره وصل میشوند.
تماسها و بازیها روی UDP بهتر کار میکنند
در تماس، گم شدن تکه کوچکی از صدا تقریباً حس نمیشود. در مقابل، تأخیر فوراً حس میشود. WireGuard و Hysteria2 نمونههایی از پروتکلهای UDP هستند که برای تماس و بازی مناسباند. TCP همه دادههای بعدی را تا ارسال دوباره بسته گمشده نگه میدارد، برای همین صدا عقب میافتد.
روتر فقط با پروتکلهای سفتافزارش کار میکند
اگر سفتافزار OpenVPN دارد، آن را به PPTP ترجیح دهید. از PPTP فقط وقتی استفاده کنید که سفتافزار هیچ پروتکل دیگری را پشتیبانی نکند. حتی در این صورت هم فقط وقتی از آن استفاده کنید که دستگاهی مثل تلویزیون به کشور دیگری نیاز داشته باشد.
برنامه Ben's VPN پروتکل را بهطور خودکار انتخاب میکند
4 پروتکل برنامه عبارتاند از VLESS + REALITY، XHTTP، Hysteria2 و Shadowsocks. برنامه علاوه بر پروتکل، مسیر را هم انتخاب میکند. روی صفحه برنامه، گزینهای برای تغییر پروتکل وجود ندارد. تنها چیزی که انتخاب میکنید موقعیت سرور است. ارائهدهنده اینترنت شما اتصال به یک سرور را میبیند، اما ترافیک درون آن را نمیبیند. نسخههای برنامه برای سیستمعاملهای دیگر در صفحه برنامههای VPN هستند.

وقتی کیفیت اتصال پایین است، برنامه نوار «اتصال ضعیف» را با دکمه «رفع مشکل» نشان میدهد. روی این دکمه بزنید تا 2 گزینه ببینید: موقعیت دیگر یا جستوجوی سرور کارآمد. این جستوجو سرور را دوباره آزمایش میکند و آدرسهای IP جدید میگیرد. اگر این کار کمک نکند، برنامه مالتیهاپ را از طریق سرور واسطی در کشور سوم فعال میکند. کل جستوجو تا 2 دقیقه طول میکشد. همان دکمه «یافتن سرور کارآمد» در «حساب کاربری» ← «تنظیمات» هم هست.
روترهای Keenetic، OpenWrt و MikroTik میتوانند برنامه Ben's VPN را روی خود روتر اجرا کنند. روترهای دیگر محدود به پروتکلهای سفتافزارشان هستند. تنظیمات PPTP و OpenVPN این روترها در صفحه حسابتان در سایت است، در مسیر «Router» ← «Other routers». یک نام کاربری و رمز عبور مشترک برای هر دو پروتکل کار میکند. این نام کاربری و رمز عبور در هر زمان فقط روی یک روتر کار میکنند. صفحه راهاندازی روتر هر مرحله از پیکربندی را شرح میدهد.
پرسش و پاسخ
مبهمسازی VPN چیست و چه فرقی با رمزنگاری دارد؟
رمزنگاری، محتوا را پنهان میکند و بدون کلید هیچکس نمیتواند بستهها را بخواند. مبهمسازی پنهان میکند که اتصال از نوع VPN است. این روش اندازه، ترتیب و شکل بستهها را شبیه ترافیک معمولی میکند. WireGuard بهخوبی رمزنگاری میکند، اما ترافیکش را مبهم نمیکند. REALITY و Hysteria2 مبهمسازی را به رمزنگاری اضافه میکنند.
روی سرور خودم WireGuard راه بیندازم یا OpenVPN؟
در شبکهای که UDP و VPN را راه میدهد، WireGuard پیکربندی سادهتری دارد و سریعتر وصل میشود. OpenVPN انعطاف بیشتری دارد و روی UDP یا TCP و روی هر پورتی کار میکند. این انعطاف در شبکههایی که فقط TCP را راه میدهند به کار میآید. در شبکهای که VPN را مسدود میکند، هر دو پروتکل از روی اثر انگشتشان شناسایی میشوند.
آیا مالتیهاپ پروتکل جداگانهای است؟
نه، مالتیهاپ نوعی مسیر است، نه پروتکل. ترافیکتان اول به سرور واسطی در کشور سوم میرود. از آنجا به سرور موقعیتی میرود که انتخاب کردهاید. مالتیهاپ مسیر ترافیک را تغییر میدهد، نه رمزنگاری آن را. در برنامه Ben's VPN، حالت «خودکار» هر وقت برای اتصال پایدار لازم باشد، مالتیهاپ را فعال میکند.
وقتی سایت خودش از HTTPS استفاده میکند، پروتکل VPN چه چیزی اضافه میکند؟
HTTPS صفحه را رمزنگاری میکند، اما شبکه همچنان میبیند کدام سایت را باز میکنید. شبکه، آدرس IP سایت و نام آن را در آغاز اتصال میبیند. پروتکل VPN این اطلاعات را هم پنهان میکند. در این حالت، ارائهدهنده اینترنت شما فقط اتصال به یک سرور را میبیند. درخواست پس از سرور، بیرون از تونل به سایت میرود. در این بخش از مسیر، HTTPS همچنان از درخواست محافظت میکند.








