تدوير عناوين IP للوكيل بدون VPN: ما تراه نقطة الخروج
دوّر مخارج الوكيل بدون VPN: ما الذي يستطيع وكيل HTTP قراءته، وكيف تمنع الجلسات اللاصقة انهيار الحالة، وأي مخرج يمكنك الدفاع عنه في سياسة.
يغيّر تدوير الوكيل وVPN عنوانك العام على طبقات مختلفة، وهذا الفرق هو ما يحدد ما يتسرب. ينقل VPN كل حزمة إلى نفق، لذا فإن عنوان المصدر الذي يراه الهدف هو نقطة نهاية النفق. أما الوكيل فيقع فوق طبقة الشبكة: لا تظهر من المخرج إلا الطلبات التي ترسلها عبره، بينما يحتفظ كل شيء آخر على الجهاز بالعنوان الحقيقي. وإتقان هذا الفصل يحوّل التدوير من مجرد خيار إلى قرار تصميمي.
من أين يأتي العنوان العام فعلاً
العنوان الذي يراه الهدف هو العنوان الذي غادر منه مرورك آخر مرة، وهو في اتصال منزلي عنوان المزوّد على موجّهك، لا شيء تملكه الآلة. قد يعيد تشغيل الموجّه نفس الإيجار، وقد ينتج تغيير عنوان MAC الخاص به عنوانًا جديدًا أحيانًا، لكن أياً منهما لا يمنحك اختيار بلد. يستبدل VPN عنوان المصدر على طبقة IP، لذا تغادر كل حزمة من الآلة، بما فيها DNS والتحديثات الخلفية، من نقطة نهاية النفق. يعمل الوكيل على طبقة أعلى: يقبل طلبًا، ويفتح اتصاله الخاص بالهدف، ولا يظهر من المخرج إلا ذلك الطلب. وكل شيء آخر على الآلة ما زال يستخدم العنوان الحقيقي.
يفسّر هذا الفصل معظم المفاجآت. امتداد المتصفح الموجّه إلى وكيل يغيّر ما يرسله المتصفح ولا شيء غير ذلك، لذا ما زال تطبيق ثانٍ على المضيف نفسه يسرب العنوان الأصلي. أما VPN على مستوى النظام فله نمط فشل معاكس: يغطي مرورًا أردت إبقاءه محليًا ولا يفشل مغلقًا إلا إذا كان العميل مضبوطًا على ذلك. والاختيار بين الاثنين هو في الحقيقة اختيار أي مرور يجب أن ينتقل.
ثم ينطبق التدوير على الطبقة التي اخترتها. مع الوكيل، يعني التدوير أن الطلب التالي يستخدم مخرجًا مختلفًا. ومع VPN، يعني هدم النفق وإعادة بنائه، وهو أبطأ ويظهر كإعادة اتصال مرئية.
ما يستطيع وكيل HTTP قراءته وما لا يستطيع
في HTTP العادي يرى الوكيل URI مطلقًا في سطر الطلب، وكل ترويسة والجسم. ويمكنه تسجيل كل ذلك وإعادة كتابة أي منه، ولهذا فإن وكيلاً مجانيًا يحقن سكربتًا في الاستجابات يفعل بالضبط ما يسمح به البروتوكول. تستخدم المصادقة Proxy-Authorization، وبيانات اعتماد ناقصة أو خاطئة تنتج 407 Proxy Authentication Required بدلاً من خطأ في الاتصال.
في HTTPS يرسل العميل CONNECT host:port ويفتح الوكيل نفقًا خامًا، وبعد ذلك يرى بايتات مشفرة. ما زال يتعلم اسم المضيف من سطر CONNECT وعادة من حقل SNI في مصافحة TLS، لذا تبقى السجلات على مستوى اسم المضيف حتى لو لم تبق الحمولة. وتتطلب قراءة الحمولة إنهاء TLS بشهادة يثق بها العميل، وهو منتج مختلف بمخاطرة مختلفة. أما مواصفة دلالات HTTP فتعرّف CONNECT كطلب نفق، وهو النموذج الذهني الصحيح لما يمكن للمخرج رؤيته وما لا يمكن.
curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'
يُظهر الإخراج المطوّل سطر CONNECT قبل أي مرور TLS، وهذه هي اللحظة التي يعرف فيها الوكيل وجهتك. والوكيل الذي يرد بـ 407 لم يفتح النفق قط، لذا لن تساعد إعادة المحاولة بإعدادات TLS مختلفة.
دقة التدوير تحدد ما الذي ينكسر
التدوير عند كل طلب هو الإعداد الذي يبدو الأكثر أمانًا ويكسر أكثر من غيره. تُربط ملفات تعريف الارتباط ورموز CSRF وجلسات الخادم بهوية، والهوية التي تتغير بين تسجيل الدخول والنداء التالي تبدو للهدف كاختطاف جلسة. ويعرض كثير من المزوّدين جلسة لاصقة عبر ترميزها في اسم مستخدم الوكيل، فيبقى المخرج ثابتًا خلال نافذة مختارة.
اختر الدقة من المهمة لا من الإعداد الافتراضي للمزوّد. يمكن لزاحف يجلب صفحات مستقلة أن يدوّر عند كل طلب، بينما يجب على مسار الدفع أو واجهة API مصادَقة أن يحتفظ بمخرج واحد للمسار كله. ويُظهر النداءان أدناه اسم مستخدم لاصقًا ونقطة نهاية عادية متغيرة، أما socks5h فإن مخططه يحل الأسماء عند الوكيل بدلاً من حلها محليًا.
curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me
DNS المحلي تسريب صامت. إذا حل العميل الاسم قبل الاتصال، فإن المُحلِّل ما زال يتعلم كل مضيف تزوره حتى لو خرج طلب HTTP من مكان آخر. أما socks5h فإن صيغته والحل على جانب الوكيل يتجنبان ذلك، ولا يكلف استخدامهما شيئًا.
ما يصنّفه الهدف إلى جانب العنوان
سمعة العنوان مدخل واحد بين عدة مدخلات. تجمع الأهداف بين ASN وتصنيفه كمركز بيانات أو سكني، وبصمة TLS للعميل، وإعدادات HTTP/2، وترتيب الترويسات، ومعدل الطلبات، وشكل التنقل. وقد يفشل مخرج سكني يقوده متصفح بلا واجهة حيث ينجح مخرج في مركز بيانات تقوده جلسة حقيقية.
يحدد نوع المخرج ما يمكنك ادعاؤه بصدق عن المرور، ولكل نوع تكلفة مختلفة.
| Exit type | What the target sees | Main cost |
|---|---|---|
| Datacenter proxy | Hosting ASN, cheap, often pre-blocked | Low reputation, easy to detect |
| Residential network | A consumer ISP address belonging to someone else | Consent and terms-of-service exposure |
| Mobile carrier | A carrier NAT address shared by many subscribers | Price, plus shared blame for abuse |
| Your own cloud egress | An address you are accountable for | Recognisable, but defensible |
المخرج المشترك ليس محايدًا. فكل ما يعمل من ذلك العنوان يقع في الدلو نفسه من السمعة، والعنوان المحروق مسبقًا من مستأجرين آخرين يفشل قبل أن يُقرأ طلبك الأول.
اختر مخرجًا يمكنك وصفه في سياسة
السؤال المفيد ليس كيف تخفي العنوان، بل من المسؤول عن المرور الخارج منه. فخروجك السحابي الخاص لكل مهمة، ومزوّد متعاقد معه اتفاقية معالجة بيانات ومدة احتفاظ منشورة، وVPN مستضاف ذاتيًا بهوية واحدة لكل مهمة، كلها قابلة للوصف في جملة واحدة. أما القائمة المجانية فليست كذلك، لأن مشغّلها لا يتحمل أي التزام تجاهك وله كل حافز للتسجيل.
أبقِ حدود معدلك الخاصة دون ما يتحمله الهدف، واجمع فقط الحقول التي تحتاجها المهمة، حتى يبقى الخطأ صغيرًا. والتدوير الأسرع للهروب من حجب يرفع عادةً معدل الطلبات الذي سبّبه.
اكتب المخرج المختار ونافذة تدويره ومالكه في إعداد المهمة قبل التشغيل الأول. وعندما يصل الحجب، تكون تلك الملاحظة هي ما يخبرك هل تغيّر المخرج أم تغيّر السلوك.