WireGuard در برابر OpenVPN در برابر IKEv2: مقایسه واقعی
تقریباً هر اپلیکیشن VPN را که باز کنید، صفحهای که رفتار واقعی آن را تعیین میکند در تنظیمات پنهان است: انتخابگر پروتکل. WireGuard در برابر OpenVPN در برابر IKEv2 یک انتخاب بازاریابی نیست.
این انتخاب تعیین میکند تونل چقدر سریع است، چقدر باتری مصرف میکند، وقتی گوشی از Wi-Fi به شبکه موبایل سوئیچ میکند چقدر سریع بازیابی میشود، و چه مقدار کد بین ترافیک شما و شبکه قرار دارد.
این یک بررسی آرام و مهندسانه از سه پروتکلی است که در اپلیکیشنهای VPN برای iPhone و Mac در سال ۲۰۲۶ خواهید دید. بدون ترسافکنی، بدون رتبهبندیهای اسپانسری. فقط آنچه هر کدام واقعاً هستند، چه چیزی را درست انجام میدهند، چه چیزی را اشتباه، و کدامیک معمولاً انتخاب پیشفرض درست برای استفاده موبایل مدرن است.
چرا انتخاب پروتکل اصلاً اهمیت دارد
پروتکل VPN مجموعه قوانینی است که دو رایانه برای راهاندازی یک تونل رمزنگاریشده و انتقال بستههای داده از طریق آن استفاده میکنند. پروتکل تعیین میکند کلیدها چگونه تبادل شوند، کدام رمز از دادهها محافظت کند، اتصال چگونه از تغییر شبکه جان سالم به در برد، و هر بسته داده چقدر محاسبات لازم دارد.
این انتزاعی به نظر میرسد تا زمانی که عواقب آن را ببینید. یک دستدهی سنگینتر یعنی اتصال اول کندتر. یک پایگاه کد بزرگتر یعنی سطح حمله گستردهتر برای باگهای امنیتی. پروتکلی که نمیتواند از تغییر شبکه جان سالم به در ببرد، هر بار که از Wi-Fi کافیشاپ خارج میشوید تونل را قطع میکند. پروتکلی که در هسته سیستم عامل اجرا میشود باتری کمتری مصرف میکند تا پروتکلی که در فضای کاربر اجرا میشود.
پس وقتی مردم میپرسند کدام VPN «سریعترین» یا «امنترین» است، معمولاً بدون آنکه بدانند یک سوال پروتکلی میپرسند. اینجا جواب صادقانه است.
WireGuard
WireGuard جدیدترین این سه است و بیشترین تغییر را در نحوه ساخت یک VPN مدرن ایجاد کرده. عمداً کوچک طراحی شده است.
پیادهسازی مرجع آن حدود ۴٬۰۰۰ خط کد است. OpenVPN در مقایسه، با احتساب وابستگیهای OpenSSL، دهها هزار خط دارد. تعداد خطوط کد تضمین امنیتی نیست، اما تخمینی از سطح قابل بررسی است. یک پایگاه کد کوچک را یک تیم متخصص میتواند در مدت زمان معقول از ابتدا تا انتها بررسی کند. یک پایگاه کد گسترده عملاً قابل بررسی نیست.
WireGuard همچنین الگوریتمهای رمزنگاری خود را انتخاب میکند به جای اینکه آنها را مذاکره کند. یک رمز وجود دارد (ChaCha20-Poly1305)، یک تبادل کلید (Curve25519)، یک تابع درهمسازی (BLAKE2s). هیچ منوی انتخاب رمز، هیچ نگرانی از حمله downgrade وجود ندارد. اگر پروتکل نیاز به تغییر یک الگوریتم داشته باشد، شماره نسخه تغییر میکند و کلاینتهای قدیمی دیگر وصل نمیشوند. این غیرمعمول است و عمدی است.
دستدهی از دیدگاه سرور بیحالت است: سرور نیازی ندارد آدرس شبکه فعلی کلاینت را به خاطر بسپارد تا تونل فعال بماند. این چیزی است که WireGuard را هنگام جابهجایی بین شبکهها سریع حس میکند. گوشی از Wi-Fi به LTE سوئیچ میکند، یک بسته از IP جدید میفرستد، و تونل کار میکند. هیچ مرحله مذاکره مجددی وجود ندارد.
یک انتقاد صادقانه از WireGuard وجود دارد که ارزش ذکر دارد. به طور پیشفرض یک peer در طول جلسات از همان IP داخلی استفاده میکند، چون سرور کلاینتها را بر اساس کلید عمومی شناسایی میکند نه یک اجاره اختصاصی برای هر جلسه. این برای یک شبکه سازمانی مناسب است. برای یک محصول حریم خصوصی، ارائهدهنده باید این را به صورت عمدی مدیریت کند: چرخش IPهای داخلی، محدود کردن طول عمر peer، اطمینان از اینکه لاگها آن آدرس ثابت را به یک شناسه بلندمدت تبدیل نکنند. پروتکل ابزارها را فراهم میکند؛ ارائهدهنده باید از آنها درست استفاده کند.
WireGuard فقط UDP است. این یک انتخاب طراحی عمدی است و در عین حال بزرگترین نقطه ضعف عملی آن است. در شبکهای که UDP را مسدود میکند یا فقط ترافیک روی پورت TCP 443 را اجازه میدهد (برخی Wi-Fi هتلها، برخی شبکههای مهمان سازمانی، برخی محیطهای سانسور)، WireGuard به سادگی وصل نمیشود. هیچ fallback داخلی برای TCP وجود ندارد.
نکته دیگری که ارزش دانستن دارد این است که WireGuard در هسته اصلی لینوکس جای دارد. این به این معنی است که در سرورهای لینوکس مسیر داده با سرعت هسته کار میکند، بدون کپی در فضای کاربر. در iOS و macOS پیادهسازی در یک فرآیند Network Extension مدیریتشده توسط سیستم اجرا میشود، که نزدیکترین معادل در پلتفرمی است که اجازه افزونههای هسته شخص ثالث را نمیدهد. همچنان یک فرآیند sandboxed در فضای کاربر است، اما چارچوب شبکه Apple بستهها را به طور کارآمد به آن تحویل میدهد و سربار در عمل کم است.
OpenVPN
OpenVPN قدیمیترین این سه است. از سال ۲۰۰۱ در محیطهای عملیاتی استقرار یافته و پچ شده، یعنی تقریباً هر حالت خرابی که تصور کنید قبلاً در شبکه کسی اتفاق افتاده، گزارش شده و رفع شده است. این ارزش واقعی دارد.
هم UDP و هم TCP را پشتیبانی میکند. UDP در شرایط عادی عملکرد بهتری میدهد. TCP، معمولاً روی پورت ۴۴۳، به تونل اجازه میدهد به عنوان ترافیک معمولی HTTPS جا بزند. در شبکههای محدودکننده این گاهی تنها راه برقراری اتصال است. اگر تا به حال از Wi-Fi کنفرانسی وصل شدهاید که همه چیز را جز مرور وب مسدود میکند، احتمالاً از fallback TCP/443 قدردانی کردهاید.
رمزنگاری توسط OpenSSL ارائه میشود. این انعطافپذیر، شناختهشده و به اپراتورها منوی گستردهای از رمزها میدهد. همچنین سطح حمله معنادارتری نسبت به الگوریتمهای قفلشده WireGuard دارد. Heartbleed در ۲۰۱۴ مثال کتابی است: یک نقص در یک کتابخانه به طور گسترده استقرار یافته که به آرامی هر محصولی که به آن وابسته بود را تحت تأثیر قرار داد، از جمله استقرارهای OpenVPN با OpenSSL آسیبپذیر. پچها همیشه منتشر میشوند. نکته این است که سطح گستردهتر از آن چیزی است که WireGuard در معرض نمایش میگذارد.
داستان عملکرد صادقانه است: دستدهی OpenVPN سنگینتر است (یک مذاکره کامل به سبک TLS انجام میدهد) و سربار هر بسته بالاتر است. روی یک اتصال سریع میتوانید تفاوت را اندازه بگیرید. روی یک اتصال کند ممکن است متوجه نشوید. مصرف باتری در موبایل هم بالاتر است چون کار بیشتری در فضای کاربر انجام میشود.
جایگاه OpenVPN امروز نه «سریعترین» است نه «سبکترین». «سازگارترین» است. در شبکهای که فعالانه با ترافیک VPN تداخل ایجاد میکند، OpenVPN روی TCP/443 در مواردی که WireGuard نمیتواند همچنان عبور میکند. هزینه این سازگاری TCP-over-TCP meltdown است: وقتی لایه TCP خارجی به دلیل retransmit شدن قبلی لایه TCP داخلی مجدداً ارسال میکند، توان عملیاتی در یک لینک ناپایدار میتواند فروپاشد. این یک راه فرار درست است، نه یک تونل روزمره درست.
IKEv2 / IPsec
IKEv2 (Internet Key Exchange نسخه ۲) نیمه تبادل کلید یک تونل IPsec است. در پلتفرمهای Apple، این پروتکلی است که سیستم عامل به طور بومی میفهمد. میتوانید یک پروفایل IKEv2 در تنظیمات iOS بدون نصب هیچ اپ شخص ثالثی پیکربندی کنید. این مزیت واقعی است وقتی نمیخواهید نرمافزار اضافی در کار باشد.
ویژگی کُشنده IKEv2 در موبایل MOBIKE است — یک افزونه کوچک که به تونل اجازه میدهد از تغییر آدرس IP جان سالم به در ببرد بدون مذاکره مجدد. وقتی از Wi-Fi به شبکه موبایل میروید، MOBIKE به سرور میگوید «من هنوز همانم، فقط آدرس جدیدی دارم»، و جلسه ادامه مییابد. زمان اتصال مجدد برای کاربر عملاً صفر است.
در پشتصحنه لایه داده IPsec است که در پلتفرمهای Apple در هسته پیادهسازی شده. این یعنی توان عملیاتی خوب و هزینه CPU پایین — در بسیاری موارد قابل مقایسه با WireGuard، هرچند اکثر بنچمارکهای مستقل WireGuard را جلوتر نشان میدهند.
مشکل پیچیدگی پیکربندی است. IPsec گزینههای زیادی دارد (الگوریتمهای رمزنگاری، احراز هویت، محرمانگی کامل به جلو، طول عمر IKE، فاصلههای rekey)، و ترکیب اشتباه میتواند تونلی بگذارد که کار میکند اما ضعیفتر از ظاهرش است. پروتکل مشکلی ندارد. خطر پیکربندی اشتباه واقعی است.
IKEv2 هدف جالبی برای اکوسیستم متنباز نیست مثل WireGuard، یعنی نوآوری در کلاینت در مقایسه با WireGuard کند شده. خود پروتکل پایدار و بالغ است، بعید است که در هر جهتی شما را غافلگیر کند. روی دیگر سکه: هر چه OS به شما میدهد را به ارث میبرید، از جمله رابط کاربری آن برای kill switch و قوانین on-demand، که معمولاً محدودتر از چیزی است که یک کلاینت اختصاصی ارائه میدهد.
جدول مقایسه
| ویژگی | WireGuard | OpenVPN | IKEv2 |
|---|---|---|---|
| سرعت (معمولی) | سریعترین | کندتر | سریع |
| باتری در موبایل | بهترین | بدترین | خوب |
| اتصال مجدد در تغییر شبکه | سریع (بیحالت) | کند (مذاکره مجدد) | سریع (MOBIKE) |
| حجم کد / قابلیت بررسی | ~۴٬۰۰۰ خط | دهها هزار خط | بزرگ (پشته IPsec) |
| انعطاف پورت | فقط UDP | UDP و TCP، هر پورتی | UDP 500/4500 |
| مناسب بودن برای موبایل | عالی | کافی | عالی |
| الگوریتمهای رمزنگاری مدرن | مدرن و قفلشده | قابل تنظیم، شامل موارد قدیمی | قابل تنظیم، مدرن موجود است |
| پشتیبانی بومی iOS/macOS | Network Extension | Network Extension | بومی، بدون نیاز به اپ |
چند نکته برای خواندن صادقانه این جدول. «سریعترین» واقعی است اما کوچک. روی یک اتصال خانگی معمولی ۵۰ مگابیت بر ثانیه تفاوت را حس نخواهید کرد. بنچمارکهای شخص ثالث بسته به سختافزار، فاصله و نحوه اجرای تست بسیار متفاوتند، اما ترتیب نسبی بین سه پروتکل سالهاست ثابت مانده. «بهترین باتری» واقعی است و روی یک اتصال طولانیمدت آن را احساس خواهید کرد. «حجم کد» یک استدلال سطح قابل بررسی است، نه شمارش آسیبپذیریها.
اتصال مجدد در موبایل، در عمل
بُعدی که این پروتکلها در آن بیشترین تفاوت را روی گوشی دارند این است که چه اتفاقی میافتد وقتی شبکه شما تغییر میکند. خروج از یک دفتر، سوار شدن به قطار، سوئیچ از Wi-Fi captive-portal به LTE چون صفحه ورود هرگز لود نشد: یک VPN موبایل بخش واقعی از عمرش را صرف این انتقالها میکند.
WireGuard تقریباً نامحسوس آن را مدیریت میکند. چون سرور درباره آدرس کلاینت بیحالت است، گوشی فقط یک بسته از IP جدید میفرستد و تونل ادامه مییابد. IKEv2 با MOBIKE به طور مشابه و طراحیشده رفتار میکند: همان security association به آدرس جدید مهاجرت میکند. زمان اتصال مجدد در هر دو عملاً صفر است.
OpenVPN بدترین مدیریت تغییر شبکه را در بین این سه دارد. رفتار پیشفرض این است که تشخیص دهد لینک تغییر کرده، تونل را پایین بیاورد و از صفر بازسازی کند — یک دستدهی کامل به سبک TLS. این روی گوشی محسوس است، معمولاً یک یا دو ثانیه و گاهی بیشتر اگر اولین تلاش ناموفق باشد. کلاینتهای مدرن OpenVPN این را با منطق اتصال مجدد میپوشانند، اما پروتکل زیرین کندترین در بازیابی است.
نظر صادقانه
برای یک فیلتر شکن پرسرعت موبایل مدرن، WireGuard پیشفرض درست است. رمزنگاری مدرن و غیرقابل مذاکره است، پایگاه کد به اندازه کافی کوچک است که واقعاً بررسیپذیر باشد، دستدهی سریع است، هزینه باتری پایین است، و اتصال مجدد بین شبکهها تمیز است. این یک انتخاب مُدگرایانه نیست. این چیزی است که هر تیم جدی موبایل VPN در پنج سال گذشته به آن رسیده.
OpenVPN هنوز یک مورد استفاده واقعی دارد: fallback TCP/443 در شبکههای محدودکننده. اگر کارتان گاهی شما را در شبکهای قرار میدهد که همه چیز جز ترافیک وب را مسدود میکند، یک کلاینت OpenVPN در دسترس واقعاً مفید است. برای استفاده روزمره مصرفکننده روی گوشی، پیشفرض اشتباهی است.
IKEv2 انتخاب کاملاً معقولی است اگر میخواهید یک پروفایل VPN بدون نصب اپ داشته باشید. پیکربندی بومی iOS محکم است و اتصال مجدد تمیز است. مبادله این است که ویژگیهایی که یک کلاینت واقعی به شما میدهد را از دست میدهید — لاگهای اتصالی که بتوانید بخوانید، یک رابط kill switch واضح، انتخابگر سرور، سوئیچ سریع. پروفایلهای بومی برای یک پیکربندی سازمانی always-on عالیاند و برای استفاده شخصی کمی ناکافی.
یک پروتکل بقیه سوال حریم خصوصی را حل نمیکند. ارائهدهنده هنوز باید درباره معنای واقعی یک سیاست no-logs صادق باشد، اپلیکیشن هنوز باید کلیدها را درست مدیریت کند، و یک VPN نمیتواند از نشت اطلاعات شما توسط سیستم عامل یا مرورگرتان به اشخاص ثالث جلوگیری کند. پروتکل بخشی از جواب است، نه تمام جواب.
نتیجه نهایی
اگر در سال ۲۰۲۶ یک پروتکل VPN انتخاب میکنید و اولویتتان یک تونل iPhone کارآمد است که سریع وصل شود، باتری کم مصرف کند و از سوار شدن به قطار از Wi-Fi تا LTE جان سالم به در ببرد — WireGuard را انتخاب کنید. اگر مرتباً از شبکههایی که با شما مقاومت میکنند وصل میشوید، OpenVPN را به عنوان پشتیبان نگه دارید. اگر میخواهید یک پروفایل بومی بدون نصب اپ داشته باشید، IKEv2 جواب درست است.
Snap VPN فقط WireGuard است. این تصمیم را گرفتیم چون وقتی پروتکلها را روی ابعادی که در گوشی اهمیت دارند (سرعت، باتری، اتصال مجدد، قابلیت بررسی) واقعاً مقایسه کنید، هیچ دلیل صادقانهای برای ارائه بقیه به عنوان پیشفرض وجود ندارد. افزودن پروتکلهای بیشتر یعنی کد بیشتر در تونل، منوهای رمز بیشتر، پیکربندی بیشتر برای اشتباه کردن، و یک پیشفرض کندتر برای کاربرانی که هرگز انتخابگر پروتکل را تغییر نمیدادند. ترجیح میدهیم یک کار را خوب انجام دهیم.
WireGuard در برابر OpenVPN واقعاً چالش جالب روی یک iPhone مدرن نیست. WireGuard آن مقایسه را چند سال پیش بر اساس شایستگی فنی برد. سوال جالب این است که آیا بقیه محصول اطراف پروتکل با همان خویشتنداری ساخته شده: هویت ناشناس، بدون لاگ ترافیک، یک kill switch که واقعاً کار میکند، یک پایگاه کد کلاینت کوچک.
اگر میخواهید ببینید WireGuard چطور باید روی iOS رفتار کند، Snap اکنون در App Store موجود است و macOS هم در راه است. بدون ثبت ایمیل. بدون لاگ ترافیک. بدون شناسههای مرتبط با یک شخص واقعی. ناشناس از طراحی، روی پروتکلی که جایگاهش را به عنوان پیشفرض به دست آورده.