اختبار وكيل HTTP باستخدام curl
استخدم اختبار curl محدد المدة لفحص الاتصال بالوكيل ونفق HTTPS وحالة الاستجابة وقواعد التجاوز، من دون تغيير إعداد الوكيل العام للجهاز.
استبدل 127.0.0.1:8080 بنقطة اتصال من خدمتك أو من قائمة وكلاء HTTP، ثم نفّذ هذا الأمر على وجهة HTTPS غير ضارة:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/يشير عنوان الاسترجاع إلى منفذ استماع على جهازك نفسه. يختاره هذا الأمر صراحةً، ويفرغ قائمة تجاوز الوكيل في curl لهذه المكالمة، ويتيح خمس ثوانٍ لإنشاء الاتصال وخمس عشرة ثانية للطلب كله. ولا يغيّر إعدادات الوكيل في المتصفح أو النظام.
استخدم ملف curl التنفيذي الفعلي إذا كانت الصدفة تجعل curl اسمًا بديلًا لبرنامج آخر؛ يحدّد curl --version الإصدار المبني المستخدم. إذا كان منفذ الاستماع نفسه يتطلب TLS، فاستخدم مخطط عنوان URL للوكيل المذكور في توثيقه.
اقرأ أربع نتائج بدل الاكتفاء بإشارة نجاح واحدة
- تم الاتصال بالوكيل المحدد: يمكن الوصول إلى العنوان والمنفذ.
- تم قبول CONNECT: فتح الوكيل نفقًا إلى وجهة HTTPS.
- تم التحقق من شهادة الوجهة: اكتمل TLS مع فحوص الثقة المتوقعة.
- تم استلام استجابة الوجهة: افحص حالتها ومحتواها لمعرفة ما إذا كانت النتيجة تلبي حاجة التطبيق.
قد تعيد الوجهة 403 أو 429 بعد إنشاء نفق يعمل بصورة سليمة. وقد ينتهي curl بنجاح حتى بعد تلقي استجابة خطأ HTTP، لذا سجّل حالة الاستجابة ونتيجة الخطأ في curl معًا. لا يكفي نجاح اتصال TCP أو CONNECT وحده.
نتيجة موجزة للمقارنات المتكررة
في صدفة شبيهة بـ Unix، تجاهل جسم الاستجابة واطبع حالة النفق وحالة الوجهة والطرف المقابل للاتصال والوقت المنقضي:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/يصف http_connect استجابة النفق، بينما يصف http_code استجابة HTTP النهائية. يمثّل remote_ip الطرف المقابل لاتصال curl، وليس قياسًا مستقلًا لـعنوان خروج الوكيل. استبدل /dev/null على الأنظمة الأخرى، أو احتفظ بجسم الاستجابة.
إذا فشل الاختبار، حدّد خطوة إنشاء الاتصال أو النقل التي فشلت، ثم قارن بالاتصال المباشر بالوجهة نفسها حيث يُسمح بذلك المسار:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/يتجاوز --noproxy '*' الوكلاء. يشير فشل التحقق من الشهادة على المسارين إلى مشكلة ثقة مشتركة، بينما يشير نجاح الاتصال المباشر مع رفض CONNECT إلى مصادقة الوكيل أو سياسته. راجع المخرجات التفصيلية قبل مشاركتها، فقد تحتوي معلومات تكشف الهوية.
احفظ نقطة الاتصال والوجهة والطابع الزمني مع النتيجة. يثبت ذلك ما نجح لذلك الطلب؛ أما التوافر مستقبلًا والخصوصية والأداء تحت الحمل فتحتاج إلى أدلة منفصلة.