OpenVPN یا WireGuard؟ از هویت و انتقال تصمیم بگیرید
کلیدها، جریانهای ورود و انتقال فقط از طریق UDP انتخاب را خیلی پیش از توان عبوری شکل میدهند. چهار بررسی انجام دهید و اندازهگیری را صادق نگه دارید.
مقایسه این دو پروتکل تنها زمانی مفید است که آنچه را واقعاً اداره خواهید کرد مقایسه کند. WireGuard همتاها را با کلید عمومی شناسایی میکند و پروتکل خود را روی UDP حمل میکند، در حالی که OpenVPN مجموعه گستردهتری از روشهای احراز هویت ارائه میدهد و وقتی سرور هر دو را ارائه کند میتواند روی UDP یا TCP کار کند. این تفاوتها خیلی پیش از توان عبوری، تأمین و مسیر جایگزین را شکل میدهند. چهار بررسی زیر را به ترتیب انجام دهید؛ دو بررسی اول معمولاً انتخاب را تعیین میکنند و دو بررسی آخر میگویند آیا تصمیم درست بوده است.
با هویت شروع کنید، نه با فهرست رمزنگاری
یک همتای WireGuard یک کلید خصوصی نگه میدارد و کلیدهای عمومی را که میتواند به آنها برسد فهرست میکند. ارائهدهنده میتواند یک درگاه حساب دور آن بپیچد، اما خود پروتکل تبادل نام کاربری و گذرواژه ندارد، بنابراین چرخه عمر حساب در هر چیزی زندگی میکند که کلیدها را توزیع میکند. OpenVPN میتواند از گواهیها، یک افزونه در برابر یک فهرست موجود یا یک اسکریپت تأیید استفاده کند، و به همین دلیل سازمانهایی که سیستم هویت دارند اغلب آن را ترجیح میدهند. هیچیک از این دو طراحی این پرسش را برنمیدارد که دستگاه گمشده چگونه حذف میشود.
| Decision | OpenVPN | WireGuard |
|---|---|---|
| Identity | Certificates, plugins or scripts against an existing directory | One private key per peer, public keys listed for the peers it may reach |
| Transport | UDP or TCP profiles when the server offers both | UDP only in the native protocol |
| Routing and DNS | Server pushes routes and DNS options | AllowedIPs maps ranges to peers, and tooling installs the routes |
| Where it usually breaks | Profile mismatch, expired certificate, failing plugin | Blocked UDP, wrong AllowedIPs, key not installed |
پیکربندی کوتاه همان تأمین ساده نیست. دادن یک کلید خصوصی به چند نفر حذف بعدی را مبهم میکند، چون لغو آن همه را یکجا حذف میکند. پیش از انتخاب، نگاشت شخص به کلید یا گواهی را بنویسید و تصمیم درباره پروتکل بهمراتب آسانتر میشود.
سپس ببینید انتقال چه اجازهای میدهد
پروتکل WireGuard از UDP استفاده میکند. سرویسهای OpenVPN میتوانند هم پروفایل UDP و هم TCP ارائه دهند، و در شبکهای که UDP را مسدود یا تضعیف میکند آن گزینه دوم یک مسیر جایگزین عملی است نه نظری. سرور باید پروفایلی را که انتخاب میکنید پشتیبانی کند، و تغییر شماره درگاه تونل را به HTTPS تبدیل نمیکند و دیوار آتش را به اجازه دادن آن قانع نمیکند.
حمل TCP درون TCP نیز رفتار در برابر افت را تغییر میدهد، چون هر دو لایه مستقل از هم دوباره تلاش و بازآرایی میکنند. پروفایل TCP که در شبکه محدودکننده کار میکند ممکن است در شبکه دارای افت بد عمل کند، و این دلیلی است برای نگه داشتن هر دو پروفایل در دسترس بهجای اعلام برتری یکی.
سپس مسیریابی و حل نام را بررسی کنید
AllowedIPs در WireGuard محدودههای نشانی را به همتاها نگاشت میکند و بهعنوان تصمیم مسیریابی درون پروتکل عمل میکند، و ابزارهای اطراف هنگام نصب مسیرها از آن محدودهها استفاده میکنند. OpenVPN مسیرها و گزینههای DNS را از سرور هل میدهد. در هر دو حالت ممکن است کلاینت بالا بیاید در حالی که سیاست موردنظر فقط نیمه اعمال شده است.
ip route show
ip -6 route show
resolvectl status
wg show
پیش از اعتماد به نشانگر اتصال، خروجی را بخوانید. ip route show فهرست میکند که کلاینت برای IPv4 چه نصب کرده است، و گونه IPv6 تونلی را میگیرد که فقط یک خانواده را حمل میکند. resolvectl status نشان میدهد کلاینت واقعاً از کدام حلکننده میپرسد، و wg show مقادیر AllowedIPs را چاپ میکند که WireGuard گمان میکند مالک آنهاست. اگر حلکننده هنوز به شبکه محلی اشاره کند در حالی که مسیرها ادعای پوشش کامل دارند، DNS از تونل بیرون میرود.
سپس کاری را که برایتان مهم است اندازه بگیرید
دستگاه، شبکه و مقصد را ثابت نگه دارید و کلاینتها و نقاط پایانی را که استفاده کردید یادداشت کنید. اگر دو سرویس از شهرهای مختلف خارج شوند یا روی سختافزار متفاوت اجرا شوند، این را بگویید، چون در آن صورت نتیجه آن سرویسها را توصیف میکند نه پروتکلها.
iperf3 -c 203.0.113.20 -t 30
mtr -rwzbc 50 203.0.113.20
هر دو فرمان را دو بار اجرا کنید، یک بار برای هر جفت پروفایل، در همان شبکه و همان دستگاه. iperf3 یک رقم توان عبوری میدهد و mtr مسیر و جایی که افت ظاهر میشود را میدهد، چیزی که یک رقم دانلود نمیتواند نشان دهد. رقم دانلود همچنین آنچه یک تماس متوجه میشود را از دست میدهد: تأخیر افزوده، لرزش و اینکه اتصال دوباره چقدر طول میکشد. آنها را جداگانه ثبت کنید، چون پروتکلی که در توان عبوری برنده میشود ممکن است در کاری که واقعاً اجرا میکنید ببازد.
برای یک اتصال مدیریتشده، سازگاری، پشتیبانی و تلاش برای تمدید میتواند از یک تفاوت کوچک در محک بیشتر باشد. برای یک خروجی شخصی، ثبت رویداد و صلاحیت قضایی اپراتور بیش از برچسب پروتکل اهمیت دارد. هر دو پروتکل میتوانند اتصال خوبی را حمل کنند؛ سرویس و پیکربندی آن تعیین میکند چه چیزی بهدست میآورید.
پیش از آزمایش جفت پروفایل را یادداشت کنید
پیش از اندازهگیری برای هر پروتکل یک پروفایل انتخاب کنید و بنویسید هر کدام چه کاری باید انجام دهد: فقط زیرشبکههای خصوصی، یا همه ترافیک با یک خروجی مشخص. آزمایشی که پروفایل تونل تقسیمشده را با پروفایل تونل کامل مقایسه میکند، پروفایلها را میسنجد نه پروتکلها. نام کلاینت، نسخه کلاینت و مکان خروجی را در همان یادداشت بنویسید.
سپس همان کار را روی هر دو، در همان شبکه و در همان نشست اجرا کنید. اگر یکی اصلاً نتواند متصل شود، همان شکست نتیجه است و باید همراه با دلیل در سابقه باشد. سابقه را همراه با مستندات سرویس نگه دارید تا نفر بعد همان جفت را مقایسه کند نه اینکه از نو شروع کند.