त्रुटि सुधार · 2 मिनट पढ़ें

HTTP 407 प्रॉक्सी प्रमाणीकरण आवश्यक: इसे कैसे ठीक करें

एक 407 प्रॉक्सी है - वेबसाइट नहीं - आपको बताती है कि इसे ऐसे क्रेडेंशियल्स की आवश्यकता है जो इसे नहीं मिले। यह गाइड बताती है कि इसे क्या ट्रिगर करता है और curl, ब्राउज़रों, Python, Windows और कॉर्पोरेट प्रॉक्स के लिए फिक्स के माध्यम से चलती है।

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

HTTP 407 Proxy Authentication Required comes from the proxy, not the destination site. It is the proxy's way of saying "I will forward your request, but first prove who you are." It is the proxy-layer twin of a 401: the response carries a Proxy-Authenticate header describing the scheme it wants (usually Basic), and your client is expected to resend the request with a Proxy-Authorization header. If the credentials are missing, malformed, or wrong, you get a 407.

प्रमाणित प्रॉक्सियों जैसे s4m के — SOCKS5 पर 1080, HTTP पर 3128, दोनों USER:PASS का उपयोग करते हैं — एक 407 लगभग हमेशा चार चीजों में से एक का मतलब होता है: आपने कोई क्रेडेंशियल्स प्रदान नहीं किए, आपने गलत प्रदान किए, पासवर्ड में विशेष वर्ण हैं जो URL पार्सिंग को तोड़ते हैं, या आप जिस उपकरण का उपयोग कर रहे हैं वह उन स्थानों से क्रेडेंशियल्स नहीं पढ़ता जहां आपने उन्हें रखा है (Puppeteer और Scrapy के साथ एक क्लासिक)। नीचे दिए गए समाधान सबसे सामान्य से कम सामान्य तक क्रमबद्ध हैं। पृष्ठभूमि के लिए प्रॉक्सी प्रमाणीकरण गाइड और प्रॉक्सी अवलोकन देखें।

उपकरण के अनुसार क्रेडेंशियल्स सही ढंग से प्रदान करें

वही USER:PASS, उस स्थान पर जहां प्रत्येक उपकरण वास्तव में इसे पढ़ता है। अपने क्रेडेंशियल्स के साथ बदलें।

bash
# curl: inline in URL, or with -U (URL-encode special chars, e.g. @ -> %40)
curl -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org
curl -x proxy.s4m.online:3128 -U USER:PASS https://api.ipify.org

# wget: dedicated flags
wget -e https_proxy=proxy.s4m.online:3128 \
     --proxy-user=USER --proxy-password=PASS https://example.com

# Python requests: credentials belong in the proxy URL
#   proxies = {"http": "http://USER:PASS@proxy.s4m.online:3128",
#              "https": "http://USER:PASS@proxy.s4m.online:3128"}
#   requests.get(url, proxies=proxies)

# Environment variables (many tools read these):
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# Special characters? URL-encode the password:
#   pa@ss  ->  pa%40ss     (Python: urllib.parse.quote(pw, safe=''))

# Verify it worked: a 200 with an IP body means auth passed.
curl -o /dev/null -s -w "%{http_code}\n" \
     -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org

407 को ठीक करें, चरण दर चरण

इस सूची के नीचे काम करें; अधिकांश 407s चरण 3 द्वारा हल होते हैं।

पुष्टि करें कि प्रॉक्सी को प्रमाणीकरण की आवश्यकता है

s4m प्रॉक्सी USER:PASS की आवश्यकता होती है। एक 407 का मतलब है कि प्रॉक्सी के पास कोई मान्य क्रेडेंशियल नहीं है — इसलिए सवाल केवल यह है कि आपके क्रेडेंशियल कहाँ गलत हो रहे हैं, न कि क्या प्रमाणीकरण की आवश्यकता है।

सुनिश्चित करें कि क्रेडेंशियल्स बिल्कुल सही हैं

अपने डैशबोर्ड से USER और PASS को फिर से कॉपी करें। एक ट्रेलिंग स्पेस, एक गलत वर्ण, या एक समाप्त क्रेडेंशियल सभी 407 उत्पन्न करते हैं। पहले उन्हें एकल curl -x कमांड में परीक्षण करें।

विशेष वर्णों को URL-कोडित करें

यदि पासवर्ड में @, :, /, # या समान शामिल हैं, तो उन्हें एन्कोड करें (@ %40 बन जाता है)। बिना एन्कोड किए, वे प्रॉक्सी URL को तोड़ देते हैं जिससे क्लाइंट गलत या आंशिक क्रेडेंशियल भेजता है।

उपकरण द्वारा पढ़े जाने वाले क्रेडेंशियल्स डालें

कुछ उपकरण URL क्रेडेंशियल्स की अनदेखी करते हैं: Puppeteer को page.authenticate() की आवश्यकता होती है, Scrapy को एक Proxy-Authorization हेडर की आवश्यकता होती है। विधि को उपकरण से मिलाएं, केवल प्रॉक्सी से नहीं।

ब्राउज़र, विंडोज और कॉर्पोरेट प्रॉक्सी

ब्राउज़र में, 407 आमतौर पर प्रॉक्सी से लॉगिन पॉपअप के रूप में प्रकट होता है; सही उपयोगकर्ता नाम और पासवर्ड दर्ज करने से यह साफ हो जाता है। जब एक ब्राउज़र को स्वचालित किया जाता है, तो वह पॉपअप पूरी समस्या है — हेडलेस क्रोमियम इसका उत्तर नहीं दे सकता, यही कारण है कि Puppeteer page.authenticate() का उपयोग करता है, Playwright अपने प्रॉक्सी ऑब्जेक्ट में क्रेडेंशियल लेता है, और Selenium को एक छोटा एक्सटेंशन चाहिए। Windows पर, सेटिंग्स के तहत सिस्टम प्रॉक्सी और किसी भी प्रति-ऐप प्रॉक्सी की जांच करें, क्योंकि वहां एक पुराना सहेजा गया क्रेडेंशियल उन उपकरणों में 407 को ट्रिगर कर सकता है जो सिस्टम प्रॉक्सी को विरासत में लेते हैं।

कॉर्पोरेट प्रॉक्सी एक समस्या जोड़ते हैं: कुछ NTLM या Kerberos का उपयोग करते हैं बजाय बेसिक ऑथ के, इसलिए एक साधारण USER:PASS पर्याप्त नहीं है और आपको उपकरण के NTLM विकल्प की आवश्यकता है। s4m स्वयं मानक बेसिक USER:PASS का उपयोग करता है, इसलिए आपको हमारे एंडपॉइंट्स के साथ NTLM की आवश्यकता नहीं होगी। यदि क्रेडेंशियल निश्चित रूप से सही हैं और आप अभी भी 407 देख रहे हैं, तो पुष्टि करें कि आप सही पोर्ट (1080 SOCKS5, 3128 HTTP) पर हैं और एंडपॉइंट को tools के साथ मान्य करें। एक संबंधित क्रोम त्रुटि को ERR_PROXY_CONNECTION_FAILED गाइड में कवर किया गया है।

FAQ

प्रश्न, उत्तरित

क्या 407 त्रुटि वेबसाइट की गलती है या प्रॉक्सी की?

प्रॉक्सी का। HTTP 407 प्रॉक्सी प्रमाणीकरण आवश्यक प्रॉक्सी द्वारा लौटाया जाता है, गंतव्य साइट द्वारा नहीं, जो आपको बताता है कि इसे आपकी अनुरोध को अग्रेषित करने से पहले मान्य क्रेडेंशियल्स की आवश्यकता है। जब तक आप प्रमाणीकरण नहीं करते, तब तक वेबसाइट कभी नहीं पहुंचती।

मुझे सही पासवर्ड के बावजूद 407 क्यों मिलता है?

अधिकतर पासवर्ड में विशेष वर्ण होते हैं जो प्रॉक्सी URL को तोड़ देते हैं, इसलिए क्लाइंट गलत मान भेजता है। उन्हें URL-encode करें (उदाहरण के लिए @ %40 बन जाता है)। यह भी सुनिश्चित करें कि उपकरण उन क्रेडेंशियल्स को पढ़ता है जहाँ आपने उन्हें रखा है।

मैं Puppeteer, Playwright या Selenium में 407 को कैसे ठीक करूं?

ब्राउज़र प्रॉक्सी ध्वज में क्रेडेंशियल्स की अनदेखी करते हैं। Puppeteer में page.authenticate() का उपयोग करें, Playwright में प्रॉक्सी ऑब्जेक्ट के उपयोगकर्ता नाम/पासवर्ड फ़ील्ड, और Selenium में एक छोटा क्रेडेंशियल एक्सटेंशन।

क्या s4m NTLM प्रॉक्सी प्रमाणीकरण का उपयोग करता है?

नहीं। s4m पोर्ट 1080 (SOCKS5) और 3128 (HTTP) पर मानक बेसिक USER:PASS प्रमाणीकरण का उपयोग करता है। NTLM केवल कुछ कॉर्पोरेट प्रॉक्सियों पर लागू होता है, हमारे एंडपॉइंट्स पर नहीं।

सरल प्रमाणीकरण के साथ प्रॉक्सी

s4m प्रॉक्सियाँ plain USER:PASS का उपयोग करती हैं proxy.s4m.online पर — कोई NTLM नहीं, कोई आश्चर्य नहीं। मीटर किए गए डाटासेंटर SOCKS5 और HTTP, अनुमति सूचीबद्ध पहुंच के लिए एक समर्पित IP विकल्प के साथ।

लोगों ने इस पृष्ठ को खोजकर पाया

वास्तविक खोज वाक्यांश जिनका यह पृष्ठ उत्तर देता है — लिंक किए गए वाक्यांश उस पृष्ठ को खोलते हैं जो उन्हें गहराई से कवर करता है।