نجاح صفحة الشبكة الداخلية في المتصفح يثبت أن الوكيل يعمل للمتصفح لا لـ npm أو Maven. كل عميل يقرأ إعداداته الخاصة، وشبكة لا تُبلغ إلا عبر VPN تضيف سؤالاً ثانياً: هل يستطيع العميل الوصول إلى الوكيل أصلاً. ابدأ برمز الحالة ثم تتبّع سلسلة إعداد الأداة التي فشلت. لهذا يعمل عميل ويفشل جاره.

ما الذي يثبته 407 فعلاً

الخطأ 407 Proxy Authentication Required يأتي من الوكيل لا من السجل أو المستودع. وصل العميل إلى الوكيل ورفض الوكيل الطلب، غالباً لأن بيانات الاعتماد ناقصة أو مشوّهة أو غير مقبولة لذلك الهدف.

المهلة تحكي قصة أخرى. قد يكون لدى العميل عنوان وكيل خاطئ، أو لا مسار إلى الوكيل قبل قيام النفق، أو إدخال استثناء ناقص لمضيف داخلي. اقرأ نص الخطأ قبل تغيير بيانات الاعتماد.

تحقق من مضيف الوكيل ومنفذه وطريقة المصادقة وما إذا كان اسم المستخدم يحتاج بادئة نطاق. ثم تحقق مما إذا كانت الأداة الفاشلة تقرأ القيمة من ملف أو متغير بيئة أو كليهما. اسم المستخدم المؤهل بالنطاق سبب شائع للخطأ 407، وكذلك كلمة مرور مخزنة بترميز خاطئ.

npm يقرأ سلسلة إعداداته

يقبل npm المفتاحين proxy وhttps-proxy في ملف .npmrc للمستخدم أو المشروع. أدرج المخطط لأن القيم عناوين URL، ورمّز المحارف المحجوزة في كلمة المرور حتى لا تقسم علامة at القيمة.

proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true

استخدم npm config list لمعرفة الملف الذي قدّم كل قيمة فعالة. تصدير صدفة مثل npm_config_proxy يمكن أن يتجاوز الملف، وملف .npmrc على مستوى المشروع يحتوي كلمة مرور شخصية لا يجب إيداعه أبداً. اطبع مسار المصدر مع القيمة.

أبقِ strict-ssl مفعلاً. وكيل يفحص TLS قد يتطلب شهادة CA المؤسسية في مخزن الثقة؛ تعطيل التحقق لتجاوز الخطأ يخفي مشكلة الثقة الحقيقية.

Maven يفصل الوكلاء عن المرايا

يقرأ Maven الوكلاء والمرايا من ملف إعدادات المستخدم لا من pom المشروع. ضع الوكلاء الخاصة بالشبكة ومرايا المستودع الداخلي في ~/.m2/settings.xml، واترك تصريحات المستودعات العامة في المشروع حيث تنتمي.

كتلة الوكيل تحتاج معرّفاً وعلامة تفعيل والبروتوكول والمضيف والمنفذ وإدخال nonProxyHosts للمستودع الداخلي. ضع هذه الحقول في ملف إعدادات المستخدم لا في pom المشروع، حتى لا يعيد تغيير الشبكة كتابة البناء لكل الفريق. إدخال المرآة منفصل ويوجّه Maven إلى المستودع الداخلي.

أضف المستودع الداخلي إلى nonProxyHosts ليتصل به Maven مباشرة. بدون ذلك يصبح الوكيل محطة غير ضرورية ويبدو الفشل كانقطاع مستودع. إدخال المرآة يشير إلى المستودع الداخلي ولا يستبدل إعداد الوكيل.

يمكن للمطورين المتنقلين بين الشبكات الاحتفاظ بملف إعدادات لكل شبكة واختيار النسخة الصحيحة عند بدء الصدفة. تحرير ملف واحد يدوياً عند كل انتقال هو ما يحوّل حاسوباً عاملاً إلى تذكرة دعم.

VS Code وحاويات التطوير لهما نطاقات أسماء مختلفة

يقرأ VS Code القيمة http.proxy من إعدادات المستخدم أو مساحة العمل، بما في ذلك المخطط والمنفذ. يغطي ذلك طلبات الإضافات والسوق الخاصة بالمحرر، لكنه لا يهيئ طرفية ولا حاوية تُطلق من المحرر. تحقق من نطاق الإعداد ومن القيمة معاً. إعداد مساحة العمل قد يتجاوز إعداد المستخدم لمشروع واحد.

لحاوية التطوير نطاق أسماء شبكي خاص. لا ترث متغيرات الوكيل للمضيف ولا مسار VPN الخاص به، ولهذا قد يفشل نداء السوق داخل الحاوية بينما ينجح النداء نفسه على المضيف.

أعط الحاوية هذه المتغيرات، أو أعطها مُحلِّلاً ومساراً خاصين بها. عندما تُحل الأسماء داخلها لكن الوكيل لا يجيب أبداً، فالجزء الناقص عادة هو المسار لا العنوان.

قوائم الاستثناء وأسبقية البيئة

أضف بوابة VPN والسجلات الداخلية ولاحقات DNS الخاصة إلى قائمة الاستثناء. إذا حاول العميل الوصول إلى بوابة VPN عبر الوكيل قبل وجود النفق، فشل الاتصال بطريقة تشبه انقطاع الوكيل. اختبر ذلك الاستثناء والنفق مغلق.

قد تختلف متغيرات البيئة عن الملفات. شغّل مخرجات إعداد الأداة نفسها لا الصدفة، وقارن القيم التي تعلنها. متغير مكرر بحروف صغيرة أو قيمة قديمة في صدفة أب أو ملف مشروع يمكن أن تتجاوز الإعداد الذي عدّلته للتو.

في CI مرّر الوكيل كمتغير سري واختبر تثبيت حزمة واحدة في الصورة نفسها. الخطأ 407 داخل حاوية يعني غالباً أن المتغير غائب هناك ببساطة، بينما صدفة المضيف تملكه.

سجّل مضيف الوكيل ومنفذه ولاحقات الاستثناء والملف أو المتغير الذي يقدمها لكل أداة. حين يعيد عميل 407 ويعمل آخر، يحوّل هذا السجل مقارنة أربعة إعدادات مختلفة إلى فحص قصير.

مقالات ذات صلة