Прокси ашиглах үеийн ERR_TUNNEL_CONNECTION_FAILED алдааг засах
Updated:
Проксигоор дамжуулан https:// хуудсыг ачаалахын тулд хөтөч нь CONNECT хүсэлт илгээж, тухайн сайт руу прокси туннель нээхийг хүлээдэг. Прокси уг хүсэлтийг зөвшөөрөхийн оронд алдаа буцаах үед ERR_TUNNEL_CONNECTION_FAILED гарч ирдэг. Гол асуудал нь Chrome яг ямар алдаа гарсныг тодорхой мэдээлдэггүй тул хамгийн эхний алхам бол жинхэнэ кодыг олох явдал юм.
Бидний туршиж үзсэн хоёр тохиолдол
Энэ хоёр тохиолдлыг хоёуланг нь туршилтын прокси дээр шалгасан бөгөөд энд баримт бичгийн 203.0.113.10:8080 хаяг болон user123:pass456-аар жишээ болгов. Хэвийн Chrome цонхонд 407 алдаа нь туннелийн алдаа болдоггүй бөгөөд оронд нь проксигийн хэрэглэгчийн нэр, нууц үг асуусан нэвтрэх цонх гарч ирдэг. Иймээс 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 |
Шалтгаанууд (магадлал өндөртэйгөөс нь эхлэн)
- Автоматжуулалтын скрипт нэвтрэх мэдээлэл илгээдэггүй. Chrome-ийн
--proxy-serverтуг нь user:pass-ийг биш, зөвхөн host болон port-ийг хүлээн авдаг. 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 гарвал зорилтот сайт эсвэл проксийн ар дахь сүлжээний замд асуудал байгааг илтгэнэ. Хэрэв терминал ашиглахыг хүсэхгүй бол уг мөрийг прокси шалгагч руу хуулж тавьснаар эдгээр тохиолдлуудад auth failed (407) эсвэл HTTP 502 гэж харуулна.
Орчин тус бүрээр засах аргууд
- Puppeteer: ажиллуулахдаа
--proxy-server=http://host:port-ийг хэвээр үлдээж, хуудас руу шилжихээс өмнөpage.authenticate({ username, password })-ийг дуудна. Бүрэн жишээг Puppeteer прокси заавраас үзнэ үү. - Playwright: хөтчийг эхлүүлэхдээ
proxy: { server, username, password }-ийг дамжуулснаар Playwright таны өмнөөс 407 хүсэлтэд хариу өгнө; Playwright хуудсыг үзнэ үү. - Selenium: Chrome нь команд мөрөөс user:pass-ийг авдаггүй тул хэрэгжүүлж болох хувилбаруудыг Selenium заавраас харна уу.
- Windows дээрх Chrome: хэрэв нэвтрэх цонх огт гарч ирэхгүй бол прокси өргөтгөл түүнийг хааж байгаа эсэхийг шалгаад, өргөтгөлгүй цонхонд дахин оролдоно уу.
- Гар утас: баталгаажуулалт шаарддаг проксид зориулж Android тохиргооны зааварт дурдсаны дагуу user:pass дэмждэг прокси апп ашиглана уу.
Алхам алхмаар
- 1
CONNECT хариуг тодорхойлох
Прокси 407 эсвэл 502 буцааж буй эсэхийг мэдэхийн тулд өөрийн прокси мэдээллээр
curl -v -xкомандыг ажиллуулах эсвэл шалгагч руу хуулж тавина уу. - 2
407 тохиолдолд: нэвтрэх мэдээллийг зөв оруулах
Скрипт дээр user:pass-ийг
--proxy-server-т бичихийн оронд сангийн өөрийн нэвтрэлт танилтын холболтыг ашиглана уу. - 3
502 тохиолдолд: өөр сайт руу орж үзэх
Тухайн проксигоор дамжуулан example.com гэх мэт том сайт руу орж үзнэ үү. Хэрэв ажиллаж байвал анхны зорилтот сайтад асуудал байна гэсэн үг.
- 4
Дахин ажиллуулж, гаралтын IP-г баталгаажуулах
Туннель нээгдсэний дараа тухайн хөтөч дээрээ миний IP хуудас руу орж, урсгал проксигоор дамжиж буйг баталгаажуулна уу.
Түгээмэл асуултууд
Яагаад http хуудас нээгдэж байхад https хуудас ажиллахгүй байна вэ?
Энгийн http-д CONNECT шаардлагагүй бөгөөд прокси хүсэлтийг шууд цааш дамжуулдаг. Зөвхөн https л туннель нээдэг тул туннелийн алдаа зөвхөн тэнд гардаг.
Android дээр ERR_TUNNEL_CONNECTION_FAILED үүсэх шалтгаан юу вэ?
Ихэнхдээ Wi-Fi прокси руу хэрэглэгчийн нэр, нууц үгийг дамжуулж чаддаггүй аппликейшнээс болдог. Тухайн хуудсыг Chrome for Android дээр нээж үзнэ үү; хэрэв Chrome нэвтрэх мэдээлэл асууж, хуудсыг ачаалж байвал асуудал апп-д байна.
--proxy-server дотор user:pass бичиж болох уу?
Үгүй. Chrome уг туган дахь нэвтрэх мэдээллийг хэрэгсэхгүй орхидог бөгөөд энэ нь 407 болон туннелийн алдаа гаргахад хүргэдэг. Оронд нь Puppeteer, Playwright эсвэл өргөтгөлөөр дамжуулан баталгаажуулна уу.
SOCKS5 руу шилжвэл туннелийн алдаа арилах уу?
Зөвхөн таны захиалга SOCKS5 бол арилна. VinaProxy нь HTTP(S) болон SOCKS5-ийг хоёуланг нь санал болгодог; протокол тохирохгүй байх нь өөр төрлийн алдаа үүсгэдэг тул хяналтын самбар дээрх захиалгын протоколоо сонгоно уу.
Puppeteer болон Playwright-тай ажилладаг проксинууд
VinaProxy прокси нь түгээмэл автоматжуулалтын сангуудын шууд дэмждэг стандарт user:pass нэвтрэлтийг ашигладаг.
Үнийн санал харах