ब्राउज़र में इंट्रानेट पेज खुलना सिर्फ़ यह साबित करता है कि प्रॉक्सी ब्राउज़र के लिए काम कर रही है, npm या Maven के लिए नहीं। हर क्लाइंट अपना कॉन्फ़िग पढ़ता है, और सिर्फ़ VPN से पहुँचने वाला नेटवर्क दूसरा सवाल जोड़ता है: क्या क्लाइंट प्रॉक्सी तक पहुँचता है। स्टेटस कोड से शुरू करें और फिर उस टूल की कॉन्फ़िग श्रृंखला देखें जो विफल हुआ।

407 वास्तव में क्या साबित करता है

407 Proxy Authentication Required प्रॉक्सी से आता है, रजिस्ट्री या रिपॉज़िटरी से नहीं। क्लाइंट प्रॉक्सी तक पहुँच गया और प्रॉक्सी ने अनुरोध ठुकरा दिया, आम तौर पर क्योंकि क्रेडेंशियल नहीं थे, गलत बने थे या उस गंतव्य के लिए स्वीकार नहीं थे।

टाइमआउट कुछ और कहता है: गलत प्रॉक्सी पता, टनल बनने से पहले प्रॉक्सी तक कोई रास्ता नहीं, या किसी आंतरिक होस्ट के लिए बायपास प्रविष्टि गायब। क्रेडेंशियल बदलने से पहले त्रुटि का पाठ पढ़ें।

प्रॉक्सी होस्ट, पोर्ट, प्रमाणीकरण तरीका और यह जाँचें कि उपयोगकर्ता नाम में डोमेन उपसर्ग चाहिए या नहीं। फिर देखें कि विफल टूल मान फ़ाइल, एनवायरनमेंट चर या दोनों से पढ़ता है। डोमेन वाला नाम 407 का आम कारण है, वैसे ही गलत एनकोडिंग में सहेजा पासवर्ड।

npm अपनी कॉन्फ़िग श्रृंखला पढ़ता है

npm उपयोगकर्ता या प्रोजेक्ट .npmrc में proxy और https-proxy कुंजियाँ स्वीकार करता है। स्कीम लिखें, क्योंकि मान URL हैं, और पासवर्ड के आरक्षित अक्षर URL-एनकोड करें ताकि at चिह्न मान न बाँटे।

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

npm config list से देखें कि किस फ़ाइल ने कौन-सा प्रभावी मान दिया। npm_config_proxy जैसा shell export फ़ाइल को पीछे छोड़ सकता है, और निजी पासवर्ड वाला प्रोजेक्ट-स्तरीय .npmrc कभी कमिट नहीं करना चाहिए। मान के साथ स्रोत पथ भी छापें।

strict-ssl चालू रखें। TLS जाँचती प्रॉक्सी ट्रस्टस्टोर में कॉर्पोरेट CA माँग सकती है; त्रुटि से बचने के लिए सत्यापन बंद करना असली भरोसा समस्या छिपा देता है।

Maven प्रॉक्सी और मिरर अलग रखता है

Maven प्रॉक्सी और मिरर उपयोगकर्ता settings फ़ाइल से पढ़ता है, प्रोजेक्ट pom से नहीं। नेटवर्क-विशिष्ट प्रॉक्सी और आंतरिक रिपॉज़िटरी मिरर ~/.m2/settings.xml में रखें, सार्वजनिक रिपॉज़िटरी घोषणाएँ प्रोजेक्ट में रहने दें।

प्रॉक्सी ब्लॉक को id, सक्रिय फ़्लैग, प्रोटोकॉल, होस्ट और पोर्ट, और आंतरिक रिपॉज़िटरी के लिए nonProxyHosts प्रविष्टि चाहिए। ये फ़ील्ड प्रोजेक्ट pom में नहीं, उपयोगकर्ता settings फ़ाइल में रखें, ताकि नेटवर्क बदलने पर पूरी टीम का बिल्ड फिर से न लिखा जाए।

Maven सीधे जुड़े इसलिए आंतरिक रिपॉज़िटरी nonProxyHosts में जोड़ें। यह प्रविष्टि न हो तो प्रॉक्सी बेकार पड़ाव बन जाती है और विफलता रिपॉज़िटरी बंद जैसी दिखती है। मिरर प्रविष्टि आंतरिक रिपॉज़िटरी की ओर इशारा करती है और प्रॉक्सी सेटिंग नहीं बदलती।

नेटवर्क बदलने वाले डेवलपर हर नेटवर्क के लिए एक settings फ़ाइल रख सकते हैं और shell शुरू होने पर सही प्रति चुन सकते हैं। हर बार एक फ़ाइल हाथ से संपादित करना काम करते लैपटॉप को सपोर्ट टिकट बना देता है।

VS Code और dev कंटेनर के नेमस्पेस अलग हैं

VS Code http.proxy उपयोगकर्ता या workspace सेटिंग्स से पढ़ता है, स्कीम और पोर्ट सहित। यह एडिटर के एक्सटेंशन और मार्केटप्लेस अनुरोध कवर करता है, पर टर्मिनल या एडिटर से शुरू कंटेनर अपने आप कॉन्फ़िगर नहीं करता। सेटिंग का दायरा और मान दोनों जाँचें। workspace सेटिंग किसी एक प्रोजेक्ट के लिए उपयोगकर्ता सेटिंग को पीछे छोड़ सकती है।

dev कंटेनर का अपना नेटवर्क नेमस्पेस होता है। यह होस्ट के प्रॉक्सी चर या VPN मार्ग विरासत में नहीं लेता, इसलिए कंटेनर के अंदर मार्केटप्लेस कॉल विफल हो सकती है जबकि होस्ट पर वही कॉल चलती है।

कंटेनर को वे चर दें, या उसे अपना रिज़ॉल्वर और मार्ग दें। अंदर नाम हल हों पर प्रॉक्सी कभी जवाब न दे, तो गायब हिस्सा आम तौर पर मार्ग होता है, पता नहीं।

बायपास सूचियाँ और पर्यावरण की प्राथमिकता

VPN गेटवे, आंतरिक रजिस्ट्री और निजी DNS प्रत्यय बायपास सूची में जोड़ें। टनल बनने से पहले क्लाइंट प्रॉक्सी से गेटवे तक पहुँचने की कोशिश करे, तो कनेक्शन प्रॉक्सी बंद जैसा विफल होता है। टनल बंद रखकर वह बायपास जाँचें।

पर्यावरण चर और फ़ाइलें टकरा सकते हैं। shell का नहीं, टूल का अपना कॉन्फ़िग डंप चलाएँ और बताए मान तुलना करें। छोटे अक्षरों वाला दोहरा चर, पैरेंट shell में पुराना मान या प्रोजेक्ट फ़ाइल आपके अभी बदले सेटिंग को पीछे छोड़ सकते हैं।

CI में प्रॉक्सी गुप्त चर के रूप में दें और उसी image में एक पैकेज इंस्टॉल जाँचें। कंटेनर में 407 का मतलब अक्सर यह होता है कि चर वहाँ है ही नहीं, जबकि होस्ट shell में मौजूद है।

हर टूल के लिए प्रॉक्सी होस्ट, पोर्ट, बायपास प्रत्यय और उन्हें देने वाली फ़ाइल या चर लिखें। एक क्लाइंट 407 लौटाए और दूसरा चले, तो वह नोट चार अलग कॉन्फ़िग की तुलना को छोटी जाँच में बदल देता है।

संबंधित लेख