VVinaProxy

វិធីដោះស្រាយកំហុស ERR_TUNNEL_CONNECTION_FAILED ពេលប្រើប្រូកស៊ី

Updated:

ដើម្បីបើកទំព័រ https:// តាមរយៈប្រូកស៊ី កម្មវិធីរុករកនឹងផ្ញើសំណើ CONNECT ហើយរង់ចាំឱ្យប្រូកស៊ីបើក tunnel ទៅកាន់គេហទំព័រនោះ។ ERR_TUNNEL_CONNECTION_FAILED នឹងបង្ហាញឡើងនៅពេលប្រូកស៊ីឆ្លើយតបសំណើនោះមកវិញដោយកំហុស ជំនួសឱ្យការយល់ព្រម។ បញ្ហានោះគឺ Chrome មិនប្រាប់អ្នកថាតើជាកំហុសអ្វីនោះទេ ដូច្នេះការងារដំបូងគឺត្រូវស្វែងរកលេខកូដពិតប្រាកដ។

ប្រូកស៊ីដែលដំណើរការជាមួយ Puppeteer និង Playwright

ករណីចំនួន 2 ដែលយើងបានជួបប្រទះ

ទាំងពីរនេះត្រូវបានសាកល្បងជាមួយប្រូកស៊ីតេស្ត ដែលបានសរសេរឡើងវិញនៅទីនេះជាមួយអាសយដ្ឋានឯកសារ 203.0.113.10:8080 និង user123:pass456។ នៅក្នុងផ្ទាំង Chrome ធម្មតា ករណី 407 មិនក្លាយជាកំហុស tunnel នោះទេ តែ Chrome នឹងបើកប្រអប់ផ្ទាំង sign-in សម្រាប់ឱ្យបញ្ចូល username និង password របស់ប្រូកស៊ីជំនួសវិញ។ ដូច្នេះ កំហុស tunnel ដែលបង្កឡើងដោយ 407 ភាគច្រើនកើតឡើងលើឧបករណ៍ automation និងកម្មវិធីដែលមិនអាចបង្ហាញប្រអប់ផ្ទាំងបញ្ចូលពាក្យសម្ងាត់។

ប្រូកស៊ីឆ្លើយតប CONNECT ជាមួយChrome បង្ហាញcurl បង្ហាញ
407 ដោយគ្មានកន្លែងបញ្ចូលពាក្យសម្ងាត់ (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 ដោយសារតែប្រូកស៊ីមិនអាចភ្ជាប់ទៅកាន់គេហទំព័របានERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

មូលហេតុចម្បងៗតាមលំដាប់លំដោយ

  • ស្គ្រីប automation មិនបានផ្ញើព័ត៌មានសម្ងាត់ (credentials)។ flag --proxy-server របស់ Chrome ទទួលយកតែ host និង port ប៉ុណ្ណោះ មិនទទួល user:pass ទេ។ កម្មវិធី Headless Puppeteer ឬ Selenium នឹងទទួលបានកូដ 407 ហើយរាយការណ៍ពីការបរាជ័យនៃ tunnel។
  • កម្មវិធីទូរសព្ទដំណើរការក្រោយ Wi-Fi proxy ដែលការពារដោយពាក្យសម្ងាត់។ កម្មវិធីនេះគ្មានប្រអប់ផ្ទាំងចូលគណនីទេ ដូច្នេះ HTTPS នឹងដំណើរការមិនបាន ខណៈដែលកម្មវិធីរុករកនៅតែដំណើរការធម្មតា។
  • ប្រូកស៊ីមិនអាចភ្ជាប់ទៅកាន់គោលដៅបាន។ ប្រូកស៊ីនឹងបញ្ជូនកូដ 502 ត្រឡប់មក CONNECT វិញ។ ទំព័រ 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 បង្ហាញពីបញ្ហានៅលើគោលដៅ ឬផ្លូវតភ្ជាប់នៅពីក្រោយប្រូកស៊ី។ ប្រសិនបើអ្នកមិនចង់ប្រើ terminal ទេ សូមចម្លងបន្ទាត់នោះដាក់ចូលទៅក្នុង proxy checker ដែលវានឹងរាយការណ៍ថា auth failed (407) ឬ HTTP 502 សម្រាប់ស្ថានភាពដូចគ្នានេះ។

វិធីដោះស្រាយតាមបរិស្ថាននីមួយៗ

  • Puppeteer: រក្សាទុក --proxy-server=http://host:port នៅពេល launch ហើយហៅប្រើ page.authenticate({ username, password }) មុនពេលរុករកទំព័រ (navigating)។ ឧទាហរណ៍ពេញលេញមាននៅក្នុង ការណែនាំអំពី Puppeteer proxy។
  • Playwright: បញ្ចូល proxy: { server, username, password } នៅពេលដំណើរការកម្មវិធីរុករក ហើយ Playwright នឹងឆ្លើយតបទៅកូដ 407 ជំនួសអ្នក សូមមើល Playwright។
  • Selenium: Chrome មិនទទួលយក user:pass នៅលើ command line ឡើយ។ ការណែនាំអំពី Selenium បង្ហាញពីជម្រើសដែលអាចអនុវត្តបាន។
  • Chrome លើ Windows: ប្រសិនបើផ្ទាំង sign-in មិនបង្ហាញឡើងទេ សូមពិនិត្យមើលថាតើ extension ប្រូកស៊ីណាមួយកំពុងបិទវាដែរឬទេ បន្ទាប់មកសាកល្បងម្ដងទៀតនៅក្នុងផ្ទាំងដែលគ្មាន extension។
  • ទូរសព្ទ: សម្រាប់កម្មវិធីដែលត្រូវការប្រូកស៊ីមានការផ្ទៀងផ្ទាត់ សូមប្រើកម្មវិធីប្រូកស៊ីណាដែលគាំទ្រ user:pass ដូចមានបង្ហាញក្នុង ការណែនាំអំពីការដំឡើងលើ Android។

មួយជំហានម្តងៗ

  1. 1

    កំណត់សម្គាល់ការឆ្លើយតបរបស់ CONNECT

    ដំណើរការ curl -v -x ជាមួយបន្ទាត់ប្រូកស៊ីរបស់អ្នក ឬបិទភ្ជាប់វាទៅក្នុង checker ដើម្បីដឹងថាតើប្រូកស៊ីឆ្លើយតបកូដ 407 ឬ 502។

  2. 2

    សម្រាប់ 407៖ ផ្ដល់ព័ត៌មានសម្ងាត់ឱ្យបានត្រឹមត្រូវ

    នៅក្នុងស្គ្រីប សូមប្រើប្រាស់ authentication hook របស់ library ជំនួសឱ្យការដាក់ user:pass នៅក្នុង --proxy-server។

  3. 3

    សម្រាប់ 502៖ សាកល្បងគេហទំព័រផ្សេងទៀត

    បើកគេហទំព័រធំមួយដូចជា example.com តាមរយៈប្រូកស៊ីដដែល។ ប្រសិនបើវាដំណើរការ បញ្ហាគឺបណ្ដាលមកពីគេហទំព័រគោលដៅដើម។

  4. 4

    ដំណើរការឡើងវិញ និងផ្ទៀងផ្ទាត់ exit IP

    នៅពេលដែល tunnel បើកដំណើរការ សូមចូលទៅកាន់ IP របស់ខ្ញុំ នៅក្នុងកម្មវិធីរុករកដដែលនោះ ដើម្បីបញ្ជាក់ថា traffic កំពុងឆ្លងកាត់តាមប្រូកស៊ី។

សំណួរដែលសួរញឹកញាប់

ហេតុអ្វីបានជាទំព័រ http អាចដំណើរការបាន តែទំព័រ https បរាជ័យ?

http ធម្មតាមិនត្រូវការ CONNECT ទេ ដោយសារប្រូកស៊ីបញ្ជូនបន្តសំណើនោះដោយផ្ទាល់។ មានតែ https ប៉ុណ្ណោះដែលបើក tunnel ដូច្នេះកំហុស tunnel នឹងបង្ហាញឡើងតែនៅទីនោះប៉ុណ្ណោះ។

តើអ្វីបណ្តាលឱ្យកើតមាន ERR_TUNNEL_CONNECTION_FAILED លើ Android?

ភាគច្រើនបណ្តាលមកពីកម្មវិធីមិនអាចបញ្ជូន username និង password ទៅកាន់ Wi-Fi proxy បាន។ សាកល្បងបើកទំព័រដដែលនោះក្នុង Chrome សម្រាប់ Android ប្រសិនបើ Chrome អាចបង្ហាញផ្ទាំងសួរ និងបើកបាន នោះបញ្ហាគឺស្ថិតនៅលើកម្មវិធីនោះហើយ។

តើខ្ញុំអាចដាក់ user:pass ក្នុង --proxy-server បានទេ?

មិនបានទេ។ Chrome មិនអើពើនឹងព័ត៌មានសម្ងាត់នៅក្នុង flag នោះឡើយ ដែលបណ្ដាលឱ្យកើតកូដ 407 និងកំហុស tunnel។ សូមធ្វើការផ្ទៀងផ្ទាត់តាមរយៈ Puppeteer, Playwright ឬ extension ជំនួសវិញ។

តើការប្តូរទៅប្រើ SOCKS5 នឹងលុបបំបាត់កំហុស tunnel ដែរឬទេ?

លុះត្រាតែកញ្ចប់បញ្ជាទិញរបស់អ្នកជា SOCKS5 ប៉ុណ្ណោះ។ VinaProxy ផ្ដល់ជូនទាំង HTTP(S) និង SOCKS5 សូមជ្រើសរើស protocol ណាដែលការបញ្ជាទិញរបស់អ្នកបង្ហាញក្នុងផ្ទាំងគ្រប់គ្រង ពីព្រោះការផ្គូផ្គងខុសនឹងបណ្ដាលឱ្យមានកំហុសផ្សេងទៀត។

ប្រូកស៊ីដែលដំណើរការជាមួយ Puppeteer និង Playwright

ប្រូកស៊ីរបស់ VinaProxy ប្រើប្រាស់ការចូលគណនីបែបស្តង់ដារ user:pass ដែល library automation ល្បីៗអាចគាំទ្របានភ្លាមៗដោយស្វ័យប្រវត្តិ។

មើលតម្លៃ

Related articles

កំហុស Proxy
របៀបដោះស្រាយកំហុស 407 Proxy Authentication Required
កំហុស 407 Proxy Authentication Required មានន័យថា proxy បានឆ្លើយតប តែបដិសេធការចូលរបស់អ្នក។ មើលទិន្នផល curl មូលហេតុ និងវិធីដោះស្រាយតាមកម្មវិធីនីមួយៗ។
កំហុស Proxy
កំហុស 502 Bad Gateway លើ proxy៖ ស្វែងរកប្រភពដែលបានផ្ញើវា
502 Bad Gateway តាម proxy មានន័យថាម៉ាស៊ីនបម្រើកណ្តាលមិនទទួលបានការឆ្លើយតបត្រឹមត្រូវ។ របៀបពិនិត្យថាតើមកពី proxy ឬគេហទំព័រ ជាមួយលទ្ធផល curl ជាក់ស្តែង។
ការដំឡើង Proxy
របៀបដំឡើង Proxy ដែលមានការផ្ទៀងផ្ទាត់ក្នុង Puppeteer (Node.js)
កំណត់រចនាសម្ព័ន្ធ proxy HTTP(S) ដែលមានការផ្ទៀងផ្ទាត់ក្នុង Node.js Puppeteer តាមរយៈ flag --proxy-server និង await page.authenticate()។ ចម្លងកូដគំរូជាក់ស្តែង។
ការដំឡើង Proxy
របៀបកំណត់រចនាសម្ព័ន្ធ proxy ក្នុង Playwright (Browser & Per-Context Auth)
កំណត់ proxy HTTP(S) មានការផ្ទៀងផ្ទាត់ក្នុង Playwright សម្រាប់ Node.js និង Python ព្រមទាំងដំណើរការ static IP ដាច់ដោយឡែកជាច្រើនលើ BrowserContexts។ ចម្លងឧទាហរណ៍។
ការដំឡើង Proxy
របៀបដំឡើង proxy ដែលមានការផ្ទៀងផ្ទាត់ក្នុង Selenium WebDriver
កំណត់រចនាសម្ព័ន្ធ proxy HTTP(S) ដែលផ្ទៀងផ្ទាត់ដោយ username:password ក្នុង Selenium WebDriver ដោយប្រើ selenium-wire ឬ extension Chrome onAuthRequired។ មើលកូដ។
ឧបករណ៍ឥតគិតថ្លៃ
Proxy Checker៖ ពិនិត្យមើល Proxies របស់អ្នកតាមអនឡាញ
ឧបករណ៍ឆែក proxy ឥតគិតថ្លៃ៖ ដាក់រហូតដល់ 100 proxies ជា ip:port:user:pass ដើម្បីពិនិត្យស្ថានភាព exit IP និង latency អនឡាញ ព្រមទាំងស្វែងយល់ពីអត្ថន័យកំហុសនីមួយៗ។
ការដំឡើង Proxy
របៀបកំណត់រចនាសម្ព័ន្ធ Proxy ក្នុង Google Chrome
កំណត់រចនាសម្ព័ន្ធ VinaProxy HTTP(S) proxies ក្នុង Google Chrome ដោយមិនប្តូរ IP នៃ OS ទាំងមូល តាមរយៈ extensions ទង់ --proxy-server ឬ profiles អ្នកប្រើដាច់ដោយឡែក។
ការដំឡើង Proxy
របៀបកំណត់រចនាសម្ព័ន្ធប្រូកស៊ីលើ Windows 10 និង Windows 11
កំណត់រចនាសម្ព័ន្ធប្រូកស៊ី VinaProxy HTTP(S) លើកុំព្យូទ័រ Windows 10 និង Windows 11 ដោយប្រើការកំណត់ប្រព័ន្ធ WinINET, អថេរបរិស្ថាន PowerShell ឬ netsh winhttp។