របៀបដោះស្រាយកំហុស 407 Proxy Authentication Required
Updated:
កំហុស 407 គឺជាដំណឹងល្អជាងអ្វីដែលអ្នកគិត៖ ឧបករណ៍របស់អ្នកបានភ្ជាប់ទៅកាន់ proxy ហើយផ្លូវបណ្តាញគឺបើកចំហ។ proxy គ្រាន់តែបញ្ជាក់ថា វាមិនបានទទួលឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់ត្រឹមត្រូវប៉ុណ្ណោះ។ នោះហើយជាមូលហេតុដែលកំហុស 407 ស្ទើរតែទាំងអស់ត្រូវបានដោះស្រាយលើផ្នែកព័ត៌មានសម្ងាត់ (credentials) មិនមែននៅក្នុងរ៉ោតទ័រ ឬ firewall របស់អ្នកនោះទេ។
មូលហេតុនៃកំហុស 407 តាមលំដាប់លទ្ធភាពកើតឡើងខ្ពស់បំផុត
- ឈ្មោះអ្នកប្រើប្រាស់/ពាក្យសម្ងាត់ខុស ឬបាត់។ វាយខុសតួអក្សរតែមួយ ឬចម្លងជាប់ដកឃ្លានៅខាងចុងជាមួយពាក្យសម្ងាត់។ នេះជាមូលហេតុនៃរបាយការណ៍កំហុស 407 ភាគច្រើន។
- បិទភ្ជាប់ទិន្នន័យខុសប្រអប់។ បន្ទាត់
ip:port:user:passទាំងមូលត្រូវបានដាក់ចូលក្នុងប្រអប់ Host ឬឈ្មោះអ្នកប្រើប្រាស់ធ្លាក់ចូលក្នុងប្រអប់ពាក្យសម្ងាត់។ ឧបករណ៍មួយចំនួនបំបែកប្រអប់ទាំងបួននេះដោយស្វ័យប្រវត្តិ ប៉ុន្តែឧបករណ៍ខ្លះទៀតមិនបំបែកឱ្យនោះទេ។ - កម្មវិធីមិនបានផ្ញើព័ត៌មានសម្ងាត់ទាល់តែសោះ។ ការកំណត់ proxy លើប្រព័ន្ធប្រតិបត្តិការរក្សាទុកតែអាសយដ្ឋាន និង port ប៉ុណ្ណោះ។ កម្មវិធីដែលមិនអាចស្នើសុំពាក្យសម្ងាត់នឹងភ្ជាប់ដោយគ្មាន auth header ហើយទទួលបានកំហុស 407 ត្រឡប់មកវិញ។
- តួអក្សរពិសេសនៅក្នុង proxy URL។ នៅក្នុងទម្រង់
http://user:pass@host:portតួអក្សរដូចជា@,:ឬ#នៅក្នុងពាក្យសម្ងាត់ត្រូវតែ percent-encoded (@ក្លាយជា%40) បើពុំនោះទេ ខ្សែអក្សរនឹងត្រូវបានកាត់ផ្ដាច់ខុសកន្លែង។
ទម្រង់ជាក់ស្តែងនៃកំហុស 407
យើងបានបង្កើតកំហុសនេះឡើងវិញនៅលើ proxy សាកល្បង ដែលបង្ហាញនៅទីនេះជាមួយអាសយដ្ឋានសម្រាប់ឯកសារ 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។ ចំពោះគេហទំព័រ HTTP ធម្មតាជាមួយ -w %{http_code} នោះ curl នឹងបង្ហាញត្រឹមតែ 407។
បន្ថែម -v ដើម្បីពិនិត្យមើលថាតើព័ត៌មានសម្ងាត់ត្រូវបានផ្ញើដែរឬទេ។ ដានពិនិត្យ (trace) បង្ហាញ > CONNECT example.com:443 HTTP/1.1 បន្ទាប់មក > Proxy-Authorization: Basic ... ហើយទើបបង្ហាញ 407។ ប្រសិនបើគ្មានបន្ទាត់ Proxy-Authorization ទេ មានន័យថាកម្មវិធីរបស់អ្នកមិនបានផ្ញើព័ត៌មានចូលប្រើនោះឡើយ។
ឧបករណ៍ proxy checker របស់ VinaProxy រាយការណ៍ករណីដូចគ្នានេះថា auth failed (407)។ ចំណែក Headless Chrome ដែលគ្មានផ្ទាំងប្រអប់ចូលប្រើ នឹងបង្ហាញវាជា ERR_TUNNEL_CONNECTION_FAILED សូមមើល ទំព័រកំហុស tunnel។
វិធីដោះស្រាយតាមបរិស្ថាននីមួយៗ
- Windows និង Chrome៖ Chrome ដំណើរការតាមការកំណត់ proxy របស់ Windows (Settings > Network & Internet > Proxy) ដែលរក្សាទុកតែអាសយដ្ឋាន និង port ប៉ុណ្ណោះ។ នៅពេលបើកទំព័រដំបូង Chrome នឹងបង្ហាញផ្ទាំង sign-in សម្រាប់បញ្ចូលឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់ proxy។ ប្រសិនបើអ្នកវាយខុស ហើយផ្ទាំងនោះមិនលោតឡើងវិញទេ សូមបិទផ្ទាំង Chrome ទាំងអស់ រួចបើកឡើងវិញ។
- កម្មវិធីរុករក Antidetect (AdsPower, GoLogin, GenLogin)៖ ទុក Host, Port, Username និង Password ក្នុងប្រអប់ដាច់ដោយឡែកពីគ្នា។ សូមលុបទិន្នន័យក្នុងប្រអប់ពាក្យសម្ងាត់ចេញឱ្យអស់ រួចបិទភ្ជាប់ម្ដងទៀត ជាជាងការកែសម្រួលវា។ ការណែនាំលម្អិតតាមប្រអប់នីមួយៗមាននៅក្នុង GoLogin setup guide។
- ទូរសព្ទ៖ iPhone មានប៊ូតុងបិទបើក Authentication នៅក្រោម Settings > Wi-Fi > (i) > Configure Proxy ហើយប្រសិនបើបិទវា នោះនឹងបង្កឱ្យមានកំហុស 407។ Android ជាទូទៅទទួលយកតែ host និង port ប៉ុណ្ណោះ ដូច្នេះកម្មវិធីដែលទាមទារការចូលប្រើអាចនឹងបង្ហាញកំហុសការតភ្ជាប់ទូទៅជំនួសវិញ។
- curl៖ បញ្ជូន
-U "user:pass"ដាច់ដោយឡែក ជាជាងការបង្កប់វានៅក្នុង URL ដែលជួយបញ្ចៀសបញ្ហាតួអក្សរពិសេស។ - Python requests៖ កំណត់
http://user:pass@host:portសម្រាប់ទាំង keyhttpនិងhttpsនៃ dictproxiesហើយ encode ពាក្យសម្ងាត់ដែលមានតួអក្សរពិសេសជាមួយurllib.parse.quote។
ព័ត៌មានសម្ងាត់ត្រឹមត្រូវ ប៉ុន្តែកំហុស 407 នៅតែបន្តកើតមាន
បន្ទាប់មក សូមប្រៀបធៀបពិធីការ (protocols)។ VinaProxy ផ្ដល់ proxy ប្រភេទ HTTP(S) ជាមួយការចូលប្រើ user:pass និង SOCKS5 ផងដែរ ដូច្នេះសូមជ្រើសរើសពិធីការដែលបង្ហាញលើការបញ្ជាទិញរបស់អ្នកក្នុងផ្ទាំងគ្រប់គ្រង (dashboard)។ ប្រសិនបើឧបករណ៍ត្រួតពិនិត្យឆ្លើយតបថា not socks5 នោះ port នោះដំណើរការលើ HTTP ហើយមិនគួរកំណត់រចនាសម្ព័ន្ធជា SOCKS5 ឡើយ។
មួយជំហានម្តងៗ
- 1
ចម្លងបន្ទាត់ proxy ពីផ្ទាំងគ្រប់គ្រង
បើកការបញ្ជាទិញនៅក្នុងផ្ទាំងគ្រប់គ្រង VinaProxy របស់អ្នក ហើយចម្លងបន្ទាត់ទាំងមូល ជាជាងការវាយបញ្ចូលដោយដៃ។
- 2
ដំណើរការត្រួតពិនិត្យតាមរយៈ proxy checker
បិទភ្ជាប់វាទៅក្នុង proxy checker។ លទ្ធផល
auth failed (407)បញ្ជាក់ថាវាជាបញ្ហាព័ត៌មានសម្ងាត់ មិនមែនជាបញ្ហាបណ្តាញនោះទេ។ - 3
បញ្ចូលឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់ឡើងវិញឱ្យបានត្រឹមត្រូវ
លុបទិន្នន័យក្នុងប្រអប់ទាំងពីរនៅក្នុងកម្មវិធីរបស់អ្នក រួចបិទភ្ជាប់ម្ដងទៀតដោយកុំឱ្យមានដកឃ្លានៅខាងដើម ឬខាងចុង។
- 4
ផ្ទៀងផ្ទាត់ពិធីការឱ្យត្រូវនឹងការបញ្ជាទិញ
កំណត់ប្រភេទ proxy ជា HTTP ឬ SOCKS5 ឱ្យដូចគ្នាបេះបិទទៅនឹងអ្វីដែលបានបញ្ជាក់ក្នុងការបញ្ជាទិញ រួចចុចរក្សាទុក។
- 5
តាមដានជាមួយ curl -v ប្រសិនបើបញ្ហានៅតែបន្ត
ដំណើរការ
curl -vជាមួយតម្លៃពិតប្រាកដរបស់អ្នក ហើយពិនិត្យមើលបន្ទាត់Proxy-Authorizationមុនពេលបង្ហាញ 407។
សំណួរដែលសួរញឹកញាប់
តើកំហុស 407 បណ្តាលមកពី ISP របស់ខ្ញុំរារាំង proxy មែនទេ?
មិនមែនទេ។ កំហុស 407 ត្រូវបានផ្ញើចេញពី proxy ផ្ទាល់ ដូច្នេះការតភ្ជាប់បានទៅដល់ហើយ។ ផ្លូវតភ្ជាប់ដែលត្រូវបានរារាំង នឹងបង្ហាញជា timeout ឬការបដិសេធការតភ្ជាប់ជំនួសវិញ សូមមើល proxy timeout។
ហេតុអ្វីបានជា Chrome បន្តទាមទារការចូលប្រើ proxy ដដែលៗ?
រាល់ការបញ្ចូលខុសម្ដងៗ នឹងទទួលបានកំហុស 407 ម្ដងទៀត ហើយ Chrome នឹងសួរឡើងវិញ។ សូមពិនិត្យមើល Caps Lock និងប្រាកដថាកម្មវិធីវាយអក្សរជាភាសាវៀតណាម ឬភាសាផ្សេងទៀត មិនបានបន្ថែមសញ្ញាសង្កត់សំឡេងទៅក្នុងពាក្យសម្ងាត់ឡើយ។
តើខ្ញុំអាចបញ្ចូលពាក្យសម្ងាត់ដែលមានសញ្ញា @ ទៅក្នុង proxy URL ដោយរបៀបណា?
Encode វា៖ @ ជា %40, : ជា %3A, # ជា %23។ ចំពោះ curl ទង់ -U ជួយបញ្ចៀសការ encode ទាំងស្រុង។
Selenium ឬ Puppeteer បង្ហាញកំហុស tunnel ជំនួសឱ្យ 407។ តើជាបញ្ហាដូចគ្នាដែរឬទេ?
ជាទូទៅគឺដូចគ្នា។ Headless Chrome មិនអាចបង្ហាញផ្ទាំងចូលប្រើបានទេ ដូច្នេះ 407 នឹងបង្ហាញជា ERR_TUNNEL_CONNECTION_FAILED។ សូមផ្តល់ព័ត៌មានសម្ងាត់តាមរយៈយន្តការ auth របស់ library ដូចដែលមាននៅក្នុង Selenium guide។
Private proxy ជាមួយព័ត៌មានសម្ងាត់ច្បាស់លាស់
រាល់ការបញ្ជាទិញ VinaProxy ផ្ដល់ជូនអ្នកនូវបន្ទាត់ ip:port:user:pass រួចរាល់សម្រាប់ចម្លងម្ដង ហើយបិទភ្ជាប់ប្រើប្រាស់នៅគ្រប់ទីកន្លែង។
មើលតម្លៃ proxy