407 Proxy Authentication Required गड़बड़ी को कैसे ठीक करें
अपडेट किया गया:
407 गड़बड़ी जितनी दिखती है, उतनी बुरी नहीं है: आपका डिवाइस प्रॉक्सी तक पहुंच गया है और नेटवर्क पाथ खुला है। प्रॉक्सी बस यह कह रहा है कि उसे वैध यूज़रनेम और पासवर्ड नहीं मिला। यही वजह है कि लगभग हर 407 का समाधान आपके क्रेडेंशियल्स की तरफ होता है, न कि आपके राउटर या फ़ायरवॉल में।
407 गड़बड़ी के सबसे संभावित कारण
- गलत या छूटा हुआ यूज़रनेम/पासवर्ड। एक गलत टाइप किया गया अक्षर, या पासवर्ड के साथ कॉपी हुआ अतिरिक्त स्पेस। अधिकतर 407 रिपोर्ट इसी वजह से होती हैं।
- गलत बॉक्स में फ़ील्ड्स पेस्ट होना। पूरी
ip:port:user:passलाइन Host बॉक्स में पेस्ट हो जाती है, या यूज़रनेम पासवर्ड वाले बॉक्स में चला जाता है। कुछ टूल्स इन चार फ़ील्ड्स को आपके लिए अलग कर देते हैं, कुछ नहीं। - ऐप द्वारा क्रेडेंशियल्स न भेजना। ऑपरेटिंग सिस्टम की प्रॉक्सी सेटिंग में केवल एड्रेस और पोर्ट सेव होता है। जो ऐप्स पासवर्ड नहीं मांग सकते, वे बिना auth हेडर के कनेक्ट होते हैं और बदले में 407 मिलता है।
- प्रॉक्सी URL में विशेष वर्ण।
http://user:pass@host:portप्रारूप में, पासवर्ड में मौजूद@,:या#जैसे वर्णों को परसेंट-एनकोड किया जाना चाहिए (@बन जाता है%40), वरना स्ट्रिंग गलत जगह से विभाजित हो जाती है।
वास्तव में 407 गड़बड़ी कैसी दिखती है
हमने एक टेस्ट प्रॉक्सी पर इस गड़बड़ी को रीप्रोड्यूस किया, जिसे यहां डॉक्यूमेंटेशन एड्रेस 203.0.113.10:8080 और जानबूझकर गलत user123:pass456 के साथ दिखाया गया है। किसी HTTPS साइट के विरुद्ध, curl -x http://user123:[email protected]:8080 https://example.com रन करने पर curl: (56) CONNECT tunnel failed, response 407 प्रिंट होता है। -w %{http_code} के साथ एक सामान्य HTTP साइट के लिए, curl केवल 407 प्रिंट करता है।
यह देखने के लिए -v जोड़ें कि क्रेडेंशियल्स भेजे भी गए थे या नहीं। ट्रेस में > CONNECT example.com:443 HTTP/1.1, फिर > Proxy-Authorization: Basic ..., और उसके बाद ही 407 दिखता है। यदि Proxy-Authorization लाइन गायब है, तो आपके क्लाइंट ने लॉगिन भेजा ही नहीं।
VinaProxy प्रॉक्सी चेकर इसी स्थिति को auth failed (407) के रूप में दिखाता है। Headless Chrome, जिसमें कोई लॉगिन डायलॉग नहीं होता, इसे ERR_TUNNEL_CONNECTION_FAILED के रूप में दिखाता है; टनल एरर पेज देखें।
विभिन्न परिवेशों के अनुसार समाधान
- Windows और Chrome: Chrome, Windows प्रॉक्सी सेटिंग (Settings > Network & Internet > Proxy) का पालन करता है, जिसमें केवल एड्रेस और पोर्ट होता है। पहले पेज लोड पर Chrome प्रॉक्सी यूज़रनेम और पासवर्ड के लिए एक साइन-इन डायलॉग खोलता है। यदि आपने इसे गलत टाइप किया है और डायलॉग दोबारा नहीं आ रहा है, तो Chrome की सभी विंडो बंद करके फिर से खोलें।
- एंटीडिटेक्ट ब्राउज़र (AdsPower, GoLogin, GenLogin): Host, Port, Username और Password को अलग-अलग फ़ील्ड में रखें। पासवर्ड फ़ील्ड में बदलाव करने के बजाय उसे पूरी तरह साफ़ करें और दोबारा पेस्ट करें। प्रत्येक फ़ील्ड के लिए सहायता GoLogin सेटअप गाइड में उपलब्ध है।
- फ़ोन: iPhone में Settings > Wi-Fi > (i) > Configure Proxy के तहत Authentication स्विच होता है; इसे बंद रखने से 407 गड़बड़ी आती है। Android आमतौर पर केवल होस्ट और पोर्ट स्वीकार करता है, इसलिए जिन ऐप्स में लॉगिन की आवश्यकता होती है वे इसके बजाय सामान्य कनेक्शन गड़बड़ी दिखा सकते हैं।
- curl: URL में शामिल करने के बजाय
-U "user:pass"को अलग से पास करें, जिससे विशेष वर्णों की समस्या से बचा जा सकता है। - Python requests:
proxiesडिक्शनरी कीhttpऔरhttpsदोनों कुंजियों के लिएhttp://user:pass@host:portसेट करें, और जटिल पासवर्ड कोurllib.parse.quoteसे एनकोड करें।
क्रेडेंशियल्स सही होने पर भी 407 बना रहे
इसके बाद प्रोटोकॉल की तुलना करें। VinaProxy user:pass लॉगिन के साथ HTTP(S) प्रॉक्सी और SOCKS5 भी प्रदान करता है, इसलिए डैशबोर्ड में अपने ऑर्डर में दिखाए गए प्रोटोकॉल को ही चुनें। यदि चेकर not socks5 बताता है, तो वह पोर्ट HTTP के लिए है और उसे SOCKS5 के रूप में कॉन्फ़िगर नहीं किया जाना चाहिए।
स्टेप बाय स्टेप
- 1
डैशबोर्ड से प्रॉक्सी लाइन कॉपी करें
अपने VinaProxy डैशबोर्ड में ऑर्डर खोलें और टाइप करने के बजाय पूरी लाइन कॉपी करें।
- 2
इसे प्रॉक्सी चेकर में चलाएं
इसे प्रॉक्सी चेकर में पेस्ट करें।
auth failed (407)परिणाम यह पुष्टि करता है कि समस्या नेटवर्क की नहीं बल्कि क्रेडेंशियल्स की है। - 3
यूज़रनेम और पासवर्ड फिर से सही तरीके से दर्ज करें
अपने सॉफ़्टवेयर में दोनों फ़ील्ड्स को साफ़ करें और बिना किसी शुरुआती या अंतिम स्पेस के उन्हें फिर से पेस्ट करें।
- 4
ऑर्डर के अनुसार प्रोटोकॉल मिलाएं
प्रॉक्सी प्रकार को ऑर्डर के अनुसार ठीक वैसे ही HTTP या SOCKS5 पर सेट करें, फिर सेव करें।
- 5
यदि समस्या बनी रहती है तो curl -v से ट्रेस करें
अपने वास्तविक मानों के साथ
curl -vचलाएं और 407 से पहलेProxy-Authorizationलाइन की जांच करें।
अक्सर पूछे जाने वाले प्रश्न
क्या 407 गड़बड़ी मेरे ISP द्वारा प्रॉक्सी को ब्लॉक करने के कारण होती है?
नहीं। 407 कोड स्वयं प्रॉक्सी द्वारा भेजा जाता है, जिसका अर्थ है कि कनेक्शन स्थापित हो गया था। ब्लॉक किया गया पाथ इसके बजाय टाइमआउट या रिफ्यूज्ड कनेक्शन के रूप में दिखता है; प्रॉक्सी टाइमआउट देखें।
Chrome बार-बार प्रॉक्सी लॉगिन क्यों मांगता रहता है?
हर गलत प्रविष्टि पर फिर से 407 मिलता है और Chrome दोबारा पूछता है। Caps Lock की जांच करें और सुनिश्चित करें कि वियतनामी या कोई अन्य इनपुट मेथड पासवर्ड में अतिरिक्त वर्ण या मात्राएं नहीं जोड़ रहा है।
प्रॉक्सी URL में @ युक्त पासवर्ड कैसे दर्ज करें?
इसे एनकोड करें: @ को %40, : को %3A, # को %23 के रूप में। curl के साथ, -U फ़्लैग से एनकोडिंग की आवश्यकता ही नहीं पड़ती।
Selenium या Puppeteer में 407 के बजाय टनल एरर दिखता है। क्या यह वही समस्या है?
आमतौर पर हां। Headless Chrome लॉगिन डायलॉग नहीं दिखा सकता, इसलिए 407 गड़बड़ी ERR_TUNNEL_CONNECTION_FAILED के रूप में दिखाई देती है। लाइब्रेरी के auth तंत्र के माध्यम से क्रेडेंशियल्स प्रदान करें, जैसा कि Selenium गाइड में बताया गया है।
स्पष्ट क्रेडेंशियल्स के साथ प्राइवेट प्रॉक्सी
प्रत्येक VinaProxy ऑर्डर आपको एक तैयार ip:port:user:pass लाइन देता है जिसे बस एक बार कॉपी करके कहीं भी पेस्ट करें।
प्रॉक्सी की कीमतें देखें