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

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

یه‌بار توی یک کافه، با Wi‑Fi عمومی نشستم ایمیل کاری بزنم. همه‌چیز خوب بود تا وقتی دیدم لپ‌تاپم مدام در پس‌زمینه سعی می‌کند به چند دامنه عجیب وصل شود. چیزی هک نشده بود؛ فقط شبکه شلوغ بود و هر کس هر چیزی را تست می‌کرد. همان‌جا بود که دوباره یادم افتاد «VPN» بیشتر از یک ابزار برای باز شدن سایت‌هاست: یک جور تغییر مسیر کنترل‌شده، با رمزنگاری، روی شبکه‌ای که بهش اعتماد نداری.

ترسناک نیست.

VPN یعنی چه، دقیق‌تر از شعارهای همیشگی

VPN در ساده‌ترین تعریف یک تونل است بین دستگاه شما و یک سرور. تونل یعنی بسته‌های شبکه‌ای (Packet) شما قبل از خروج از دستگاه، داخل یک لایه رمزنگاری قرار می‌گیرند و تا رسیدن به سرور VPN همان‌طوری می‌مانند. کسی که وسط راه ایستاده (اپراتور، ادمین Wi‑Fi، یا هر گره بین مسیر) معمولاً فقط می‌بیند شما با یک مقصد مشخص حرف می‌زنید، ولی محتوای حرف‌زدن را نمی‌تواند بخواند.

بعد از سرور VPN، ترافیک از حالت تونل خارج می‌شود و مثل یک کاربر معمولی اینترنت ادامه می‌دهد: به سایت، به API، به CDN. این بخش خیلی مهم است، چون رمزنگاری «از شما تا سرور VPN» تضمین می‌شود، نه لزوماً از شما تا مقصد نهایی. اگر مقصد HTTPS باشد (که برای اکثر سایت‌ها هست)، آن‌وقت یک لایه رمزنگاری دیگر هم از مرورگر تا سایت دارید و وضعیت بهتر می‌شود.

پس دو اتفاق هم‌زمان می‌افتد: مسیر عوض می‌شود و محتوا تا یک نقطه رمز می‌شود. همین.

ترافیک دقیقاً از کجا رد می‌شود؟ یک نقشه ذهنی ساده

وقتی VPN خاموش است، دستگاه شما مستقیم از ISP به اینترنت می‌رود. IP عمومی که سایت‌ها می‌بینند، همان IP شماست. وقتی VPN روشن می‌شود، دستگاه یک رابط شبکه مجازی می‌سازد (روی Windows، macOS، iOS، Android فرق دارد ولی مفهوم یکی است). سیستم‌عامل تصمیم می‌گیرد ترافیک را به‌جای مسیر معمول، بفرستد داخل این رابط. بعد کلاینت VPN بسته‌ها را کپسوله می‌کند و می‌فرستد به سرور.

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

اما معجزه نیست.

اگر توی مرورگر با حساب Google لاگین باشید، اگر کوکی‌ها دست‌نخورده باشند، اگر Fingerprint مرورگر خاص باشد، اگر اپلیکیشن‌ها به‌صورت مستقیم با اکانت شما حرف بزنند، VPN قرار نیست شما را «نامرئی» کند. در عمل VPN بیشتر شبیه یک کابل شبکه جدید است که یک سر دیگرش جای دیگری در اینترنت وصل شده.

DNS کجای داستان است و چرا همین یک بخش کار را خراب می‌کند

DNS همان دفترچه تلفن اینترنت است: شما می‌نویسید example.com، سیستم باید IP آن را پیدا کند. اگر VPN روشن باشد ولی DNS هنوز از مسیر قبلی (مثلاً DNS اپراتور) برود، دو مشکل می‌بینید: یکی لو رفتن دامنه‌هایی که می‌روید، یکی هم احتمال دست‌کاری پاسخ‌ها.

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

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

برای همین است که اصطلاح‌هایی مثل DNS Leak یا حتی WebRTC Leak وسط می‌آید. ساده‌ترین تست عملی این است که بعد از اتصال، با یک سرویس بررسی نشت DNS چک کنید که درخواست‌های DNS از کجا می‌روند. اگر از ISP شما برود، آن اتصال از نظر حریم خصوصی نصفه است.

پروتکل‌ها: چرا بعضی‌ها سریع‌ترند و بعضی‌ها جان‌سخت‌تر

VPN یک کلمه است، ولی زیرش پروتکل‌های مختلفی هست. تفاوت‌شان فقط «سرعت» نیست؛ روی باتری موبایل، تحمل Packet Loss روی 4G/5G، و حتی توانایی رد شدن از فیلتر هم اثر دارد.

چند اسم که زیاد می‌بینید:

  • WireGuard: سبک، کم‌کد، معمولاً سریع و کم‌مصرف. روی موبایل فرقش را در باتری حس می‌کنید.
  • OpenVPN: قدیمی‌تر و قابل‌اعتماد، ولی معمولاً سنگین‌تر؛ روی دستگاه‌های ضعیف یا شبکه‌های پرنوسان می‌تواند کندتر شود.
  • IKEv2/IPsec: روی iOS و macOS اغلب پایدار است، مخصوصاً وقتی بین Wi‑Fi و دیتای موبایل جابه‌جا می‌شوید.
  • VLESS+REALITY: بیشتر در فضای عبور از فیلتر مطرح است تا VPN کلاسیک؛ هدفش شبیه‌سازی ترافیک TLS و سخت‌تر کردن تشخیص است.
  • Shadowsocks-2022: پروکسی رمزنگاری‌شده مدرن؛ وقتی فقط برای مرور یا اپ‌های خاص می‌خواهید، گاهی ساده‌تر و کم‌دردسرتر است.

این‌که کدام «بهتر» است، به مسیر و شرایط شما بستگی دارد. من روی لپ‌تاپ شخصی، اگر فقط دنبال یک اتصال تمیز و کم‌تاخیر باشم، معمولاً WireGuard را ترجیح می‌دهم. روی بعضی شبکه‌ها که UDP بدقلقی می‌کند (یا عمداً اذیت می‌شود)، مجبور می‌شوید به گزینه‌هایی بروید که روی TCP یا مدل‌های شبیه TLS کار می‌کنند. پورت 443 هم به همین خاطر محبوب است: چون خیلی جاها نمی‌شود راحت بستش، ولی این هم تضمین نیست.

چرا گاهی وصل می‌شوی ولی «هیچ‌چیز باز نمی‌شود»

این وضعیت را زیاد دیده‌ام: کلاینت می‌گوید Connected، IP هم عوض شده، ولی سایت‌ها تایم‌اوت می‌خورند. چند علت رایج دارد.

یکی MTU است. روی بعضی مسیرها، بسته‌های بزرگ تکه‌تکه می‌شوند و اگر Fragment درست هندل نشود، نتیجه‌اش همین گیرکردن‌های عجیب است. WireGuard و بعضی کلاینت‌های V2Ray اگر MTU را درست تنظیم نکنند، مخصوصاً روی دیتای موبایل، رفتار غیرقابل‌پیش‌بینی می‌بینید.

یکی هم Packet Loss و نوسان است. روی 4G/5G، وقتی سیگنال بالا و پایین می‌رود، پروتکلی که روی UDP حساس‌تر است ممکن است «از نظر کاربر» قطع‌ووصلی بدهد. در این حالت بعضی‌ها می‌روند سراغ پروتکل‌هایی که شبیه TLS هستند و با TCP بهتر کنار می‌آیند، ولی در عوض latency بیشتر می‌شود. این همان بده‌بستان همیشگی است: پایداری در برابر تاخیر.

و البته DNS. دوباره DNS.

اگر DNS کند یا دست‌کاری‌شده باشد، شما فکر می‌کنید اینترنت مشکل دارد، ولی اصل ماجرا این است که اسم دامنه حل نمی‌شود. برای همین من همیشه یک بار با IP مستقیم هم تست می‌کنم (مثلاً باز کردن یک آدرس IP که می‌دانم جواب می‌دهد) تا بفهمم مشکل از Name Resolution است یا از مسیر.

کلاینت‌ها و تجربه واقعی روی دستگاه‌های مختلف

روی Android، ابزارهایی مثل V2RayNG و NekoBox (یا بسته به سلیقه، Hiddify) برای پروفایل‌های VLESS/VMess/Reality رایج‌اند. روی iOS معمولاً Shadowrocket دست آدم را بازتر می‌گذارد، ولی باید حواستان به مجوزها و حالت‌های VPN سیستم باشد.

روی Windows و macOS، اگر سرویس‌تان WireGuard داشته باشد، کلاینت رسمی WireGuard معمولاً کم‌دردسرترین گزینه است. برای سناریوهای V2Ray هم کلاینت‌های دسکتاپ زیادند، ولی کیفیت‌شان یک‌دست نیست؛ بعضی‌ها UI قشنگ دارند و زیر بار واقعی بد رفتار می‌کنند.

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

این‌ها چیزهایی است که من معمولاً برای تنظیم «روزمره» چک می‌کنم:

  • Kill Switch روشن باشد تا با قطع VPN ترافیک ناخواسته بیرون نرود.
  • DNS را از داخل تونل بفرستید، نه از ISP.
  • اگر Split Tunneling لازم دارید، دقیق و محدود تنظیمش کنید.
  • روی موبایل، اگر قطع‌ووصلی دارید MTU یا پروتکل را عوض کنید.

یک توصیه نزدیک به آخر، از جنس کم‌دردسر بودن

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

آخرین نکته عملی: بعد از هر تغییر سرور یا پروتکل، یک‌بار با یک تست ساده ping و یک تست نشت DNS مطمئن شوید هم مسیر درست شده، هم اسم‌دامنه‌ها از همان تونل بیرون می‌روند.

مقالات مرتبط