VPN دقیقاً چیست و چطور زیر پوست اینترنت کار می‌کند

6 دقیقه مطالعه

شبکه وصل است، آنتن هم پر. تلگرام پیام‌ها را با تأخیر می‌فرستد، یک سایت ساده باز نمی‌شود، و اپلیکیشن بانک روی «در حال دریافت اطلاعات» گیر می‌کند. بعد VPN را روشن می‌کنی و همه‌چیز ناگهان راه می‌افتد. این تجربه آن‌قدر تکرار شده که VPN برای خیلی‌ها تبدیل شده به دکمهٔ «درستش کن». ولی زیر این دکمه چه اتفاقی می‌افتد؟

VPN جادو نیست.

VPN دقیقاً چه کاری می‌کند؟

تعریف مهندسی‌اش ساده است: یک تونل رمزنگاری‌شده بین دستگاه شما و یک سرور در جای دیگر می‌سازد. ترافیک اینترنت شما (یا بخشی از آن) داخل این تونل می‌رود، از سرور بیرون می‌آید، و از آن‌جا به مقصد واقعی (سایت، اپلیکیشن، API) می‌رسد.

دو نتیجهٔ فوری دارد:

1) مقصدها به‌جای IP واقعی شما، IP سرور VPN را می‌بینند.

2) اپراتور، وای‌فای عمومی، یا هر کسی بین شما و سرور VPN، محتوای ترافیک را (در حالت درست تنظیم‌شده) به‌سادگی نمی‌خواند. می‌بیند داده ردوبدل می‌شود، ولی جزئیاتش را نه.

البته این «نه» همیشه مطلق نیست. اگر HTTPS باشد، حتی بدون VPN هم بخش زیادی از محتوا رمز است. پس VPN معمولاً نقش «تغییر مسیر» و «کم‌کردن ردپا در میانهٔ راه» را هم‌زمان بازی می‌کند.

یک تصویر واقعی از مسیر بسته‌ها

بدون VPN، مسیر معمولاً این‌طور است: گوشی شما → مودم/دکل → ISP → اینترنت → سرور مقصد. با VPN یک ایستگاه اضافه می‌شود: گوشی شما → ISP → سرور VPN → سرور مقصد. برگشت هم همین مسیر را برعکس می‌رود.

این ایستگاه اضافه هم خوب است هم بد. خوب است چون محدودیت‌ها یا فیلترها را دور می‌زند و IP شما را عوض می‌کند. بد است چون یک hop اضافه یعنی احتمال افزایش latency و دردسرهای MTU و packet loss.

کند می‌شود.

ولی «کند شدن» قطعی نیست. اگر مسیر مستقیم شما تا مقصد شلوغ یا محدود باشد، مسیر با VPN گاهی حتی روان‌تر می‌شود. من روی بعضی شبکه‌های موبایل دیده‌ام که ترافیک بین‌الملل در ساعات خاص افت می‌کند، اما وقتی ترافیک داخل یک تونل مشخص و روی یک پورت رایج مثل 443 جمع می‌شود، رفتار شبکه قابل‌پیش‌بینی‌تر می‌شود.

داخل تونل چه خبر است: رمزنگاری، کلید، و یک نکته دربارهٔ اعتماد

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

پروتکل یعنی قواعد روی کاغذ. پیاده‌سازی یعنی این‌که آن قواعد در اپلیکیشن و سرور چقدر درست و تمیز اجرا شده‌اند. در عمل، باگ‌های ریز (از مدیریت اتصال گرفته تا مدیریت roaming روی موبایل) خیلی بیشتر از چیزی که فکر می‌کنیم روی تجربه اثر می‌گذارند.

و آن نکتهٔ همیشگی: VPN مسیر را از «ISP شما» به «ارائه‌دهندهٔ VPN» منتقل می‌کند. یعنی به‌جای این‌که فقط به ISP اعتماد کنید، باید به VPN هم اعتماد کنید. این بخش آزاردهنده است، چون اعتماد یک تنظیمات تیک‌زدنی نیست. بهترین کاری که می‌شود کرد این است که سرویس، شفافیت فنی و رفتار پایدار داشته باشد و کلاینت‌ها را درست نگه دارد.

IP عوض می‌شود، ولی DNS هم باید درست عوض شود

بعضی‌ها فکر می‌کنند VPN یعنی فقط تغییر IP. نصفه‌نیمه درست است. چون خیلی از دردسرها از DNS می‌آید. وقتی شما آدرس یک سایت را می‌زنید، دستگاه باید از DNS بپرسد «IP این دامنه چیست؟». اگر DNS بیرون از تونل برود، شما یک DNS leak دارید: مقصد دقیق ترافیک‌تان از طریق پرس‌وجوهای DNS لو می‌رود، حتی اگر خود ترافیک داخل تونل باشد.

تو اندروید، کلاینت‌هایی مثل V2RayNG یا NekoBox معمولاً تنظیم DNS دارند و می‌شود مشخص کرد که پرس‌وجوها هم داخل تونل برود. در iOS، Shadowrocket یا Hiddify هم همین حساسیت را دارد، فقط مسیر تنظیماتش فرق می‌کند و گاهی با پروفایل‌های سیستم قاطی می‌شود.

یک نشانهٔ کلاسیک DNS leak این است که بعضی سایت‌ها باز می‌شوند و بعضی نه، یا یک اپلیکیشن با این‌که IP شما عوض شده هنوز منطقهٔ شما را درست حدس می‌زند. این‌جا فقط «سرور عوض کن» جواب نیست؛ باید DNS را هم نگاه کرد.

پروتکل‌ها چرا این‌قدر فرق دارند؟

وقتی اسم‌ها را می‌بینید (WireGuard، VLESS+REALITY، Shadowsocks-2022)، وسوسه می‌شوید دنبال «بهترین» بگردید. من هم همین کار را می‌کردم. بعد فهمیدم بهترین یعنی «بهترین برای شبکهٔ من، دستگاه من، و نوع استفادهٔ من».

این چندتا را زیاد می‌بینم:

  • WireGuard: ساده و سریع، روی UDP کار می‌کند و معمولاً latency خوبی می‌دهد. روی موبایل وقتی بین وای‌فای و دیتای موبایل جابه‌جا می‌شوید، اگر کلاینت خوب باشد سریع خود را جمع می‌کند. ایراد رایجش این است که بعضی شبکه‌ها با UDP بدرفتاری می‌کنند و packet loss بالا می‌رود.
  • VLESS+REALITY: معمولاً برای عبور از فیلترینگ‌های سخت جذاب است، چون ظاهر ترافیک را به چیزی شبیه TLS نزدیک می‌کند و می‌شود روی پورت 443 هم نشست. اگر کانفیگ درست نباشد، ناپایدار می‌شود و روی برخی اپراتورها پینگ‌ها موجی بالا و پایین می‌رود.
  • Shadowsocks-2022: سبک و سرراست، برای خیلی از سناریوها خوب است، مخصوصاً وقتی نمی‌خواهید یک «VPN سیستم‌گسترده» داشته باشید و بیشتر دنبال پراکسی‌کردن ترافیک هستید. ولی در برخی کلاینت‌ها مدیریت route و DNS آن به اندازهٔ حالت VPN کامل راحت نیست.

این‌که یک پروتکل روی کاغذ خوب است، تضمین تجربهٔ خوب نیست. فاصلهٔ سرور تا شما، کیفیت peering، شلوغی مسیر، و حتی تنظیمات MTU می‌تواند همه‌چیز را برگرداند.

چرا روی موبایل باتری می‌خورد؟

وقتی VPN روشن است، معمولاً یک سرویس همیشه فعال روی دستگاه دارید که بسته‌ها را می‌گیرد و می‌فرستد. رمزنگاری هم CPU می‌خواهد. روی گوشی‌های جدید کمتر حس می‌شود، اما وقتی سیگنال ضعیف است و گوشی مدام retransmit می‌کند، باتری واقعاً آب می‌شود.

اعصاب‌خوردکن است.

از آن طرف، اگر split tunneling داشته باشید (مثلاً فقط مرورگر و چند اپ را از VPN رد کنید)، هم باتری کمتر مصرف می‌شود هم ترافیک داخلی الکی دور نمی‌زند. در اندروید این گزینه معمولاً واضح‌تر است. در iOS بسته به کلاینت و مدل پروفایل، گاهی محدودتر می‌شود.

برای روترها هم داستان فرق دارد. روی OpenWrt اگر VPN را روی خود روتر ببندید، کل شبکه پشت آن می‌رود داخل تونل. خوب است چون همهٔ دستگاه‌ها پوشش داده می‌شوند. بد است چون CPU روترهای ارزان برای رمزنگاری کم می‌آورد و throughput می‌ریزد.

چند اشتباه رایج که هر روز می‌بینم

این‌ها چیزهایی است که در تنظیم VPN روی دستگاه‌های اطرافیان مدام تکرار می‌شود:

  • کلاینت وصل است، ولی DNS بیرون می‌رود.
  • سرور خیلی دور انتخاب شده و latency بی‌خودی بالا رفته.
  • پروتکل با شبکه سازگار نیست (UDP روی یک اپراتور خاص بد می‌نشیند).
  • kill switch خاموش است و با یک قطع‌ووصلی کوتاه، IP واقعی بیرون می‌زند.

هیچ‌کدام عجیب نیست. بیشترشان با دو دقیقه ور رفتن حل می‌شوند، به شرطی که بفهمیم دنبال چه علامتی هستیم.

«وصل شد» کافی نیست؛ چه چیزی را تست کنم؟

من برای تست سریع، فقط به یک وب‌سایت چک IP اکتفا نمی‌کنم. اگر روی دسکتاپ هستم (Windows یا macOS)، یک بار با یک دانلود معمولی، یک بار با یک تماس کوتاه داخل اپ، و یک بار با یک سایت حساس به منطقه تست می‌کنم. روی موبایل هم حتماً یک بار وای‌فای را خاموش و روشن می‌کنم تا roaming معلوم شود.

اگر دنبال ابزار هستید، کلاینت‌هایی مثل NekoBox و Hiddify معمولاً لاگ قابل‌خواندن‌تری می‌دهند. وقتی خطا می‌خورید، همین لاگ‌ها نشان می‌دهد مشکل از DNS است یا handshake یا route.

اگر حوصلهٔ کانفیگ ندارم، چه؟

واقعیت این است که همه قرار نیست هر روز با V2RayNG و پروفایل و route کلنجار بروند. بعضی وقت‌ها فقط می‌خواهید یک سرور پایدار داشته باشید و تمام. من اگر سرویس آماده بخواهم، معمولاً DuduVPN را هم نگاه می‌کنم و از طریق https://t.me/duduvpnsbot پکیج می‌گیرم، چون برای چند دستگاه و چند کلاینت مختلف سریع‌تر به نتیجه می‌رسم.

آخرین توصیهٔ عملی: اگر روی دیتای موبایل قطع‌ووصلی دارید، یک بار MTU را کمی پایین‌تر بیاورید و دوباره با همان سرور تست کنید.

مقالات مرتبط