curl socks5h مقابل socks5: مَن يحل اسم المضيف
الحرف الإضافي ينقل استعلام DNS لا التشفير. قارن الصيغتين ثم تحقق من اسم المضيف الذي ما زال يحتاج إلى محلل محلي.
يتعامل الناس مع socks5h على أنه socks5 بتهجئة ألطف، ويتوقعون أن يرسل الاثنان الطلب نفسه إلى المكان نفسه. الحرف الإضافي ينقل استعلام DNS بدلًا من ذلك. على جهاز يقع فيه المحلل والوكيل في شبكتين مختلفتين، هذا هو الفرق بين طلب ينجح وطلب يفشل.
حرف واحد، محللان
يحدد المخطط أين يتحول اسم الوجهة إلى عنوان. يستخدم الحل المحلي المحلل المضبوط على جهازك. أما الحل البعيد فيضع اسم المضيف داخل طلب SOCKS، ويبحث عنه الوكيل بمحلله الخاص ورؤيته الخاصة للشبكة. ما زالت الصيغتان تتصلان بعنوان الوكيل نفسه على المنفذ نفسه، لذا الفرق في جسم الطلب لا في المسار.
لا شيء في المخطط يغيّر التشفير أو المصادقة؛ المسار الوحيد الذي يتغير هو DNS. لهذا يكون الحرف سهل التجاهل ومكلف الخطأ.
الوكيل نفسه، طلب مختلف
يختلف الاستدعاءان بحرف واحد. كل ما عداهما متطابق:
curl --proxy socks5://proxy.example:1080 https://service.example/
curl --proxy socks5h://proxy.example:1080 https://service.example/يوثّق مرجع وكيل curl هذين المخططين بشكل منفصل، وهذا هو السبب الموثوق لعدم التعامل معهما كمرادفين. شغّل الاثنين على نقطة نهاية غير ضارة مصرح لك باستخدامها واقرأ الفرق. البحث البعيد الناجح لا يقول شيئًا عن التطبيقات الأخرى، لأن المتصفحات ومديري الحزم وبيئات تشغيل اللغات يختار كل منها لنفسه.
اسم الوكيل نفسه يُحل محليًا
في ذلك الأمر، يجب أن يتحول proxy.example إلى عنوان قبل حدوث أي شيء آخر، وهذا البحث محلي دائمًا. نقل حل service.example إلى الوكيل لا يفعل شيئًا لاسم الوكيل نفسه، الذي ما زال يحتاج إلى محلل يستطيع جهازك الوصول إليه. هنا يغيّر VPN الصورة.
إذا كان اسم الوكيل يُحل داخل النفق فقط، فإن الاتصال يعتمد على أن يكون النفق قائمًا قبل أن يبدأ curl. أي مخطط يفوز عندئذ يعتمد على أي جانب يستطيع الإجابة. عندما لا يستطيع جهازك حل الوجهة لكن الوكيل يستطيع، يفشل socks5 وينجح socks5h. وعندما يحلها جهازك عبر النفق ولا يستطيع الوكيل ذلك، يعمل socks5 ويفشل socks5h.
المخطط لا يضع الاتصال بالوكيل داخل VPN أو خارجه؛ جدول التوجيه يفعل ذلك، والمخطط لا يراه أبدًا. لهذا يمكن لنفق واحد أن يصلح مخططًا ويكسر الآخر على الجهاز نفسه. الحرف يقرر فقط مَن يطرح السؤال.
ما يستطيع كل جانب حله
لا يستطيع وكيل عام حل اسم خاص بالشركة، لذا إرسال اسم المضيف إليه يفشل عند الوكيل ويظهر كخطأ وكيل لا كخطأ DNS محلي. الوكيل داخل الشبكة الخاصة نفسها يستطيع عادة حل تلك الأسماء، وهنا يستحق socks5h وجوده. اختر موضع المحلل بناءً على السياسة التي تحتاجها فعلًا، لأن DNS البعيد ليس أكثر قدرة تلقائيًا وهو يسلّم الاسم لطرف ثالث. لوجهة عامة تعمل الصيغتان، لذا فضّل التي تستخدمها أدواتك الأخرى بالفعل.
اكتب ذلك الاختيار في دليل التشغيل لا في تعليق، وأبقِ بيانات الاعتماد خارج السجلات المشتركة ومخرجات التشخيص. ثم غيّر متغيرًا واحدًا في كل مرة: الوجهة نفسها، والبرنامج نفسه، والمحلل نفسه، وحرف واحد.
أي برنامج أجاب
يمكن أن يختلف برنامجا curl على الجهاز نفسه في الإصدار وميزات البناء. في صدفة شبيهة بـ Unix، يسرد type -a curl كل تطابق في المسار وcurl --version يعرض ميزات النسخة التي ستعمل. غالبًا ما يكون سكربت الغلاف أو الاسم المستعار الأسبق في المسار سببًا لعدم تطابق النتائج مع البرنامج الذي تظن أنك تختبره.
المخطط غير المدعوم، والوكيل الذي لا يستطيع حل الاسم، والوجهة غير القابلة للوصول ثلاثة أخطاء مختلفة، لذا اقرأ الرسالة قبل تغيير الحرف. البناء الذي يفتقر إلى صيغة socks5h يبلّغ عن سلسلة الوكيل كغير مدعومة، وهذا ليس مثل اسم فشل حله. لا تحوّل تقريرًا قديمًا واحدًا عن curl النظام إلى قاعدة دائمة لكل منصة.