प्रोक्सी प्रयोग गर्दा आउने ERR_TUNNEL_CONNECTION_FAILED समाधान गर्ने तरिका
Updated:
प्रोक्सी मार्फत https:// पृष्ठ लोड गर्न, ब्राउजरले CONNECT अनुरोध पठाउँछ र प्रोक्सीले साइटका लागि टनेल खोल्ने प्रतीक्षा गर्छ। जब प्रोक्सीले अनुरोध स्वीकार गर्नुको सट्टा त्रुटि पठाउँछ, तब ERR_TUNNEL_CONNECTION_FAILED देखा पर्छ। समस्या के छ भने Chrome ले कुन त्रुटि आएको हो स्पष्ट पार्दैन, त्यसैले पहिलो काम वास्तविक कोड पत्ता लगाउनु हो।
हामीले पुन: सिर्जना गरेका दुई अवस्थाहरू
दुवै परीक्षण प्रोक्सीमा चलाइएका थिए, जसलाई यहाँ डकुमेन्टेसन ठेगाना 203.0.113.10:8080 र user123:pass456 मार्फत देखाइएको छ। सामान्य Chrome विन्डोमा 407 को अवस्था टनेल त्रुटि बन्दैन; त्यसको सट्टा Chrome ले प्रोक्सी प्रयोगकर्ता नाम र पासवर्डको लागि साइन-इन डायलग खोल्छ। त्यसैले 407 बाट आउने टनेल त्रुटिहरू प्रायः स्वचालन उपकरणहरू र पासवर्ड माग्न नसक्ने एपहरूमा देखिन्छन्।
| प्रोक्सीले CONNECT लाई दिने जवाफ | Chrome ले देखाउने | curl ले देखाउने |
|---|---|---|
पासवर्ड हाल्ने विकल्प नहुँदा 407 (headless Chrome) | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 407 |
प्रोक्सी साइटसम्म पुग्न नसकेकाले 502 | ERR_TUNNEL_CONNECTION_FAILED | curl: (56) CONNECT tunnel failed, response 502 |
कारणहरू, सम्भावितताको आधारमा
- स्वचालन स्क्रिप्टले प्रमाणहरू (credentials) पठाउँदैन। Chrome को
--proxy-serverफ्ल्यागले host र port मात्र स्वीकार गर्छ, user:pass होइन। Headless Puppeteer वा Selenium ले 407 प्राप्त गर्छ र टनेल असफलता देखाउँछ। - पासवर्ड सुरक्षित Wi-Fi प्रोक्सी पछाडि रहेको फोन एप। एपमा कुनै लगइन डायलग हुँदैन, त्यसैले ब्राउजरले काम गरे पनि HTTPS चल्दैन।
- प्रोक्सी गन्तव्यसम्म पुग्न सक्दैन। यसले CONNECT मा 502 फर्काउँछ; 502 Bad Gateway पृष्ठ ले यसबारे विस्तृत जानकारी दिन्छ।
- केही साइटहरू मात्र असफल हुन्छन्। एउटै प्रोक्सी मार्फत अन्य साइटहरू चल्दा लक्षित गन्तव्यले रोकेको वा डाउन भएको हुन सक्छ।
एउटै curl कमान्डबाट वास्तविक कोड पत्ता लगाउनुहोस्
आफ्नै मानहरू प्रयोग गरी curl -v -x http://user123:[email protected]:8080 https://example.com चलाउनुहोस्। > CONNECT example.com:443 HTTP/1.1 पछिको ठ्याक्कै अर्को लाइन हेर्नुहोस्: 407 को अर्थ 407 मार्गनिर्देशिका पालना गर्नु हो; 502 ले गन्तव्य वा प्रोक्सी पछाडिको मार्गमा समस्या रहेको जनाउँछ। यदि तपाईं टर्मिनल प्रयोग गर्न चाहनुहुन्न भने, उक्त लाइनलाई proxy checker मा टाँस्नुहोस्, जसले यी परिस्थितिहरूमा auth failed (407) वा HTTP 502 देखाउँछ।
वातावरण अनुसार समाधानहरू
- Puppeteer: सुरु गर्दा
--proxy-server=http://host:portराख्नुहोस् र नेभिगेट गर्नुअघिpage.authenticate({ username, password })कल गर्नुहोस्। पूर्ण उदाहरण Puppeteer proxy guide मा उपलब्ध छ। - Playwright: ब्राउजर सुरु गर्दा
proxy: { server, username, password }पठाउनुहोस् र Playwright ले तपाईंको लागि 407 को जवाफ दिनेछ; Playwright हेर्नुहोस्। - Selenium: Chrome ले कमान्ड लाइनमा user:pass लिँदैन; Selenium guide ले उपयोगी विकल्पहरू देखाउँछ।
- Windows मा Chrome: यदि साइन-इन डायलग कहिल्यै देखा परेन भने, कुनै प्रोक्सी एक्सटेन्सनले यसलाई रोकिरहेको छ कि छैन जाँच गर्नुहोस्, र एक्सटेन्सन नभएको विन्डोमा पुन: प्रयास गर्नुहोस्।
- फोनहरू: प्रमाणीकरण आवश्यक पर्ने प्रोक्सी प्रयोग गर्ने एपहरूका लागि, Android setup guide मा बताइए जस्तै user:pass समर्थन गर्ने प्रोक्सी एप प्रयोग गर्नुहोस्।
चरणबद्ध प्रक्रिया
- 1
CONNECT प्रतिक्रिया पहिचान गर्नुहोस्
प्रोक्सीले 407 वा 502 फर्काउँछ कि फर्काउँदैन थाहा पाउन आफ्नो प्रोक्सी विवरणसहित
curl -v -xचलाउनुहोस्, वा परीक्षक (checker) मा टाँस्नुहोस्। - 2
407 का लागि: प्रमाणहरू सही तरिकाले दिनुहोस्
स्क्रिप्टहरूमा,
--proxy-serverमा user:pass राख्नुको सट्टा लाइब्रेरीको प्रमाणीकरण हुक (authentication hook) प्रयोग गर्नुहोस्। - 3
502 का लागि: अर्को साइट प्रयास गर्नुहोस्
त्यही प्रोक्सी मार्फत example.com जस्तो ठूलो साइट लोड गर्नुहोस्। यदि यो चल्छ भने, मूल गन्तव्यमा नै समस्या छ।
- 4
पुन: चलाउनुहोस् र बाहिरिने IP पुष्टि गर्नुहोस्
टनेल खुलेपछि, ट्राफिक प्रोक्सी मार्फत गएको पुष्टि गर्न त्यही ब्राउजरमा my IP हेर्नुहोस्।
बारम्बार सोधिने प्रश्नहरू
http पृष्ठहरू खुल्दा https पृष्ठहरू किन असफल हुन्छन्?
साधारण http लाई CONNECT चाहिँदैन; प्रोक्सीले अनुरोध सिधै अगाडि पठाउँछ। केवल https ले टनेल खोल्छ, त्यसैले टनेल त्रुटिहरू त्यहाँ मात्र देखिन्छन्।
Android मा ERR_TUNNEL_CONNECTION_FAILED किन आउँछ?
धेरैजसो Wi-Fi प्रोक्सीमा प्रयोगकर्ता नाम र पासवर्ड पठाउन नसक्ने एपका कारण यस्तो हुन्छ। त्यही पृष्ठ Android को Chrome मा खोलेर हेर्नुहोस्; यदि Chrome ले पासवर्ड मागेर लोड गर्न सक्छ भने, समस्या एपमा नै हो।
के म --proxy-server भित्र user:pass राख्न सक्छु?
सकिँदैन। Chrome ले उक्त फ्ल्यागमा भएका प्रमाणहरूलाई बेवास्ता गर्छ, जसले गर्दा 407 र टनेल त्रुटि निम्त्याउँछ। बरु Puppeteer, Playwright वा एक्सटेन्सन मार्फत प्रमाणीकरण गर्नुहोस्।
SOCKS5 मा बदल्दा के टनेल त्रुटि हट्छ?
तपाईंको अर्डर SOCKS5 भएमा मात्र हट्छ। VinaProxy ले HTTP(S) र SOCKS5 दुवै उपलब्ध गराउँछ; तपाईंको अर्डर ड्यासबोर्डमा देखाइएको प्रोटोकल छान्नुहोस्, किनकि नमिल्दा फरक त्रुटिहरू आउँछन्।
Puppeteer र Playwright सँग काम गर्ने प्रोक्सीहरू
VinaProxy प्रोक्सीहरूले मानक user:pass लगइन प्रयोग गर्छन् जसलाई लोकप्रिय स्वचालन लाइब्रेरीहरूले सहजै समर्थन गर्छन्।
मूल्य हेर्नुहोस्