VPN مقابل الوكيل: ما يغطيه كل منهما وما لا يغطيه
يغطي VPN حركة التطبيقات الموجّهة عبره، بينما يغطي الوكيل التطبيق الذي تُعدّه أنت. افحص التغطية والتشفير وDNS وسلوك الفشل قبل أن تختار.
يغيّر كل من VPN والوكيل الأمامي العنوان الذي يراه الموقع، وهنا تتوقف معظم المقارنات. الفرق الذي يحدد إعدادك هو التغطية: الوكيل الأمامي وسيط يختار تطبيقك استخدامه، بخلاف الوكيل العكسي الذي يقف أمام موقع ما، أما VPN فينقل كل ما يوجّهه نظام التشغيل إلى نفق. ويتبع ذلك التشفير والتعامل مع DNS وسلوك الفشل. نفّذ هذه الفحوص الخمسة بالترتيب، وسيخبرك أول فحص يفشل بالأداة التي تحتاجها فعلاً.
ما التطبيقات التي يغطيها الوسيط؟
إضافة الوكيل في المتصفح تنطبق على ملف تعريف ذلك المتصفح فقط. تبقى برامج البريد ومديرو الحزم ومتصفح ثانٍ على إعداداتها الخاصة، وبعض التطبيقات تتجاهل متغيرات الوكيل في النظام تماماً. أما VPN فيغطي ما ترسله جدول التوجيه إلى النفق، وقد يكون ذلك كل التطبيقات أو مجموعة محددة في نفق منقسم بحسب المسارات وسياسة العميل.
اختبر التطبيقات المهمة بدل أن تستنتج من تحميل صفحة واحدة. الأمر curl https://ifconfig.me يتبع متغيرات الوكيل في البيئة؛ وقد لا يفعل تطبيق سطح المكتب ذلك. في Windows يطبع الأمر netsh winhttp show proxy وكيل WinHTTP الذي تستخدمه الخدمات، وهو إعداد مختلف عن إعداد المتصفح.
هل القفزة مشفّرة، وأين ينتهي TLS؟
بروتوكول الوكيل نقطة لقاء، وليس ضماناً. ينقل SOCKS5 بروتوكول TCP دون تشفيره، والوكيل HTTP العادي ينقل سطر الطلب والترويسات بنص واضح. يستخدم HTTPS عبر وكيل الأمر CONNECT، لذا تبقى جلسة TLS تنتهي عند الوجهة لا عند الوكيل. ويوضح دليل MDN للخوادم الوكيلة والأنفاق هذا الفرق من جهة البروتوكول.
يشفّر VPN المقطع بين جهازك ونقطة نهايته. وبعد نقطة النهاية تنطبق القواعد نفسها كما في أي شبكة أخرى، ولهذا لا يحمي النفق وحده تطبيقاً يرسل بيانات اعتماد عبر HTTP عادي. ولا يخفي أي من التصميمين حساباً مسجّلاً أو ملف تعريف ارتباط أو بصمة متصفح.
curl -v -x http://127.0.0.1:3128 https://example.com/ -o /dev/null
curl -v -x socks5h://127.0.0.1:1080 https://example.com/ -o /dev/null
يوضح المخرجات المطوّلة ما إذا كان curl قد أرسل CONNECT إلى المنفذ 443 أو GET عادياً بعنوان URL كامل. مع socks5h:// يُسلَّم اسم المضيف إلى الوكيل داخل طلب SOCKS5 ثم ينقل TLS لا يستطيع قراءته، لذا يرى الاسم وأعداد البايتات. وعبر وكيل http:// يكون عنوان https:// أمر CONNECT، لذا يرى ذلك الوكيل أيضاً اسم الوجهة وحجمها، لا الطلب ولا جسم الاستجابة.
أي محلّل يرى الاسم؟
قد يحدث تحليل الاسم محلياً قبل مغادرة الطلب، أو عن بُعد عند الوكيل. مع curl يرسل socks5h:// اسم المضيف إلى الوكيل بينما يحلّه socks5:// محلياً أولاً. وتقدّم إعدادات الوكيل في المتصفح خيار DNS مشابهاً، ويمكن لملفات PAC توجيه مضيفات مختلفة بطرق مختلفة.
يمكن لبروتوكولين تجاوز الوكيل دون أي خطأ في الإعداد. يجمع WebRTC المرشحين عبر STUN، ويشغّل QUIC بروتوكول HTTP/3 فوق UDP، وهو ما لا يستطيع وكيل TCP نقله. سيعود المتصفح إلى TCP إذا كان UDP 443 محظوراً، لذا فإن حظر UDP 443 على جدار حماية المضيف (أو على الموجّه لشبكة كاملة)، لا علم في المتصفح، هو الطريقة الموثوقة لإبقاء HTTP/3 داخل مسار الوكيل.
افحص المحلّل من منظور الوجهة، لا من منظور حاسوبك المحمول. الطلب الذي يصل بعنوان خروج الوكيل لكن باسم محلول محلياً يخبر المحلّل المحلي بالموقع الذي تزوره.
ماذا يحدث عندما يفشل الوسيط؟
يفشل الوكيل الصريح مغلقاً: أوقف عملية الوكيل فيعيد المتصفح أو التطبيق خطأ اتصال بدل الذهاب مباشرة. أما إعدادات PAC وWPAD فهي التي تفشل مفتوحة - إذا تعذّر جلب النص البرمجي، يعود العميل إلى DIRECT ويرى الموقع عنوانك الحقيقي مجدداً. وقد يفشل VPN مفتوحاً أو مغلقاً بحسب العميل وما إذا كان مفتاح الإيقاف أو قاعدة جدار الحماية نشطة.
اختبر حالة الفشل عمداً: أوقف خدمة الوكيل وأعد التحميل؛ إذا حصلت على صفحة خطأ بدل تحميل مباشر، فوجّه عنوان PAC إلى مضيف غير قابل للوصول لترى سلوك الرجوع. أما إذا كانت الصفحة تُحمّل عبر مسارك العادي، فإن الوكيل لا يقدّم حماية من انقطاعه هو، وهذه خاصية يجب أن تعرفها قبل الاعتماد عليه.
الترتيب يحدد ما يراه الموقع. الوكيل الذي يمرّ خروجه عبر VPN يجعل الموقع يرى عنوان نقطة نهاية VPN؛ وضع الوكيل خارج النفق (VPN إلى وكيل على مضيف بعيد) يجعل الموقع يرى عنوان خروج ذلك الوكيل بدلاً منه. وفي الحالتين قد يسجّل القفزتان أشياء مختلفة.
خمسة فحوص بالترتيب
قائمة الفحص أدناه هي القرار كله في مكان واحد. تأتي التغطية أولاً لأنها تُزيل معظم حالات عدم التطابق: إذا كان التطبيق الذي يجب تغطيته لا يحترم الإعداد، فلن ينقذه شيء لاحق في القائمة.
| Check | Forward proxy | VPN |
|---|---|---|
| What is covered | The app or browser you configure | Traffic the OS routes into the tunnel, all or split |
| Encryption scope | Protocol-dependent; SOCKS5 alone encrypts nothing | Device to VPN endpoint |
| DNS path | Local or remote, depending on the setting | Normally inside the tunnel |
| Failure mode | Explicit config: connection error; PAC/WPAD: DIRECT fallback | Client policy: fail-open or kill switch |
| What the site sees | The proxy's exit address | The VPN endpoint's exit address |
ثم أكّد النتيجة بالتطبيق الذي دفعك إلى التغيير. حمّل صفحة في المتصفح المُعدّ، واجلب الصفحة نفسها باستخدام curl، وقارن العنوان الذي يبلّغ عنه كل منهما. إذا اختلفا، فإن إضافة أو قاعدة PAC أو تجاوزاً على مستوى التطبيق ما زال فاعلاً، ولن يصلحه أي ضبط للنفق.
سجّل ما أعددته: أي التطبيقات تستخدم الوكيل، وهل DNS محلي أم بعيد، وهل UDP محظور، وما سلوك الفشل. ذلك الجرد الصغير هو ما يجعل المقارنة التالية ممكنة، لأن “تغيّر عنوان IP” لم يخبرك أبداً أيّ هذه الفحوص الخمسة نجح.