VVinaProxy

Επίλυση του ERR_TUNNEL_CONNECTION_FAILED με proxy

Updated:

Για τη φόρτωση μιας σελίδας https:// μέσω proxy, το πρόγραμμα περιήγησης στέλνει ένα αίτημα CONNECT και περιμένει από το proxy να ανοίξει ένα tunnel προς τον ιστότοπο. Το ERR_TUNNEL_CONNECTION_FAILED εμφανίζεται όταν το proxy απαντά σε αυτό το αίτημα με σφάλμα αντί για επιβεβαίωση. Η δυσκολία είναι ότι το Chrome δεν αναφέρει ποιο είναι το σφάλμα, επομένως το πρώτο βήμα είναι να βρείτε τον πραγματικό κωδικό.

Proxies που λειτουργούν με Puppeteer και Playwright

Δύο περιπτώσεις που αναπαραγάγαμε

Και τα δύο εκτελέστηκαν σε δοκιμαστικό proxy, που αναγράφεται εδώ με τη διεύθυνση τεκμηρίωσης 203.0.113.10:8080 και user123:pass456. Σε ένα κανονικό παράθυρο Chrome, η περίπτωση 407 δεν καταλήγει σε σφάλμα tunnel· αντίθετα, το Chrome ανοίγει ένα παράθυρο σύνδεσης για το όνομα χρήστη και τον κωδικό πρόσβασης του proxy. Επομένως, τα σφάλματα tunnel που οφείλονται σε 407 εμφανίζονται κυρίως σε εργαλεία αυτοματισμού και σε εφαρμογές που δεν μπορούν να ζητήσουν κωδικό πρόσβασης.

Το proxy απαντά στο CONNECT μεΤο Chrome εμφανίζειΤο curl εμφανίζει
407 χωρίς δυνατότητα εισαγωγής κωδικού πρόσβασης (headless Chrome)ERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 407
502 επειδή το proxy δεν μπορεί να συνδεθεί στον ιστότοποERR_TUNNEL_CONNECTION_FAILEDcurl: (56) CONNECT tunnel failed, response 502

Αιτίες, κατά σειρά πιθανότητας

  • Ένα script αυτοματισμού δεν στέλνει διαπιστευτήρια. Η παράμετρος --proxy-server του Chrome δέχεται μόνο host και port, όχι user:pass. Το headless Puppeteer ή Selenium λαμβάνει 407 και αναφέρει αποτυχία tunnel.
  • Εφαρμογή τηλεφώνου πίσω από proxy Wi-Fi με κωδικό πρόσβασης. Η εφαρμογή δεν διαθέτει παράθυρο σύνδεσης, οπότε το HTTPS διακόπτεται ενώ το πρόγραμμα περιήγησης συνεχίζει να λειτουργεί.
  • Το proxy δεν μπορεί να φτάσει στον προορισμό. Επιστρέφει 502 στο CONNECT· η σελίδα 502 Bad Gateway καλύπτει αυτό το ζήτημα αναλυτικά.
  • Αποτυγχάνουν μόνο ορισμένοι ιστότοποι. Ο προορισμός αποκλείει τη σύνδεση ή είναι εκτός λειτουργίας, ενώ άλλοι ιστότοποι λειτουργούν κανονικά μέσω του ίδιου proxy.

Βρείτε τον πραγματικό κωδικό με μία εντολή curl

Εκτελέστε την εντολή curl -v -x http://user123:[email protected]:8080 https://example.com με τις δικές σας τιμές. Κοιτάξτε τη γραμμή ακριβώς μετά το > CONNECT example.com:443 HTTP/1.1: ένας κωδικός 407 σημαίνει ότι πρέπει να ακολουθήσετε τον οδηγό για το 407· ένας κωδικός 502 υποδεικνύει πρόβλημα στον προορισμό ή στη διαδρομή πίσω από το proxy. Αν προτιμάτε να μην χρησιμοποιήσετε τερματικό, επικολλήστε τη γραμμή στο εργαλείο ελέγχου proxy, το οποίο αναφέρει auth failed (407) ή HTTP 502 για τις ίδιες περιπτώσεις.

Λύσεις ανά περιβάλλον

  • Puppeteer: διατηρήστε το --proxy-server=http://host:port κατά την εκκίνηση και καλέστε το page.authenticate({ username, password }) πριν από την πλοήγηση. Πλήρες παράδειγμα στον οδηγό proxy για Puppeteer.
  • Playwright: ορίστε το proxy: { server, username, password } κατά την εκκίνηση του προγράμματος περιήγησης και το Playwright διαχειρίζεται αυτόματα το 407 για εσάς· δείτε το Playwright.
  • Selenium: Το Chrome δεν δέχεται user:pass στη γραμμή εντολών· ο οδηγός Selenium παρουσιάζει τις διαθέσιμες επιλογές.
  • Chrome σε Windows: αν το παράθυρο σύνδεσης δεν εμφανίζεται ποτέ, ελέγξτε αν κάποια επέκταση proxy το αποκλείει και δοκιμάστε ξανά σε ένα παράθυρο χωρίς επεκτάσεις.
  • Κινητά τηλέφωνα: για εφαρμογές που απαιτούν proxy με έλεγχο ταυτότητας, χρησιμοποιήστε μια εφαρμογή proxy που υποστηρίζει user:pass όπως περιγράφεται στον οδηγό ρύθμισης για Android.

Βήμα προς βήμα

  1. 1

    Εντοπίστε την απόκριση του CONNECT

    Εκτελέστε το curl -v -x με τη γραμμή του proxy σας ή επικολλήστε τη στο εργαλείο ελέγχου για να διαπιστώσετε αν το proxy επιστρέφει 407 ή 502.

  2. 2

    Για το 407: εισαγάγετε σωστά τα διαπιστευτήρια

    Στα scripts, χρησιμοποιήστε το hook ελέγχου ταυτότητας της βιβλιοθήκης αντί να τοποθετείτε το user:pass στο --proxy-server.

  3. 3

    Για το 502: δοκιμάστε άλλον ιστότοπο

    Φορτώστε έναν μεγάλο ιστότοπο όπως το example.com μέσω του ίδιου proxy. Αν λειτουργεί, το πρόβλημα εντοπίζεται στον αρχικό προορισμό.

  4. 4

    Εκτελέστε ξανά και επιβεβαιώστε την IP εξόδου

    Μόλις ανοίξει το tunnel, επισκεφθείτε τη σελίδα η IP μου στο ίδιο πρόγραμμα περιήγησης για να επιβεβαιώσετε ότι η κίνηση διέρχεται από το proxy.

Συχνές ερωτήσεις

Γιατί οι σελίδες http φορτώνουν ενώ οι σελίδες https αποτυγχάνουν;

Το απλό http δεν απαιτεί CONNECT· το proxy προωθεί το αίτημα απευθείας. Μόνο το https ανοίγει tunnel, επομένως τα σφάλματα tunnel εμφανίζονται μόνο εκεί.

Τι προκαλεί το ERR_TUNNEL_CONNECTION_FAILED σε Android;

Συχνότερα μια εφαρμογή που δεν μπορεί να μεταβιβάσει το όνομα χρήστη και τον κωδικό πρόσβασης σε ένα proxy Wi-Fi. Δοκιμάστε την ίδια σελίδα στο Chrome για Android· αν το Chrome ζητά στοιχεία και τη φορτώνει, το πρόβλημα είναι η εφαρμογή.

Μπορώ να βάλω το user:pass μέσα στο --proxy-server;

Όχι. Το Chrome αγνοεί τα διαπιστευτήρια σε αυτήν την παράμετρο, γεγονός που οδηγεί σε 407 και στο σφάλμα tunnel. Αντ' αυτού, πραγματοποιήστε έλεγχο ταυτότητας μέσω Puppeteer, Playwright ή κάποιας επέκτασης.

Θα επιλύσει το σφάλμα tunnel η αλλαγή σε SOCKS5;

Μόνο αν η παραγγελία σας αφορά SOCKS5. Το VinaProxy προσφέρει τόσο HTTP(S) όσο και SOCKS5· επιλέξτε το πρωτόκολλο που εμφανίζεται στην παραγγελία σας στον πίνακα ελέγχου, καθώς η αναντιστοιχία προκαλεί διαφορετικά σφάλματα.

Proxies που λειτουργούν με Puppeteer και Playwright

Τα proxies του VinaProxy χρησιμοποιούν τυπική σύνδεση user:pass, την οποία οι δημοφιλείς βιβλιοθήκες αυτοματισμού υποστηρίζουν άμεσα.

Δείτε τις τιμές

Related articles

Σφάλματα proxy
Πώς να διορθώσετε το 407 Proxy Authentication Required
Το σφάλμα 407 Proxy Authentication Required σημαίνει ότι ο διακομιστής απάντησε αλλά απέρριψε τη σύνδεση. Δείτε αιτίες, εξόδους curl και λύσεις ανά εφαρμογή.
Σφάλματα proxy
Σφάλματα proxy 502 Bad Gateway: εντοπίστε ποιος το έστειλε
Ένα 502 Bad Gateway μέσω proxy σημαίνει ότι ένας ενδιάμεσος διακομιστής δεν έλαβε έγκυρη απάντηση. Μάθετε αν φταίει το proxy ή ο ιστότοπος, με πραγματικό curl.
Ρύθμιση proxy
Πώς να ρυθμίσετε authenticated proxy στο Puppeteer (Node.js)
Ρυθμίστε authenticated HTTP(S) proxies στο Node.js Puppeteer με το flag --proxy-server και await page.authenticate(). Αντιγράψτε έτοιμα παραδείγματα.
Ρύθμιση proxy
Πώς να ρυθμίσετε proxy στο Playwright (Browser & Per-Context Auth)
Ρυθμίστε authenticated HTTP(S) proxies σε Playwright (Node.js, Python) με πολλαπλές απομονωμένες στατικές IP σε BrowserContexts. Αντιγράψτε τα παραδείγματα.
Ρύθμιση proxy
Πώς να ρυθμίσετε proxy με έλεγχο ταυτότητας στο Selenium WebDriver
Ρυθμίστε HTTP(S) proxies με έλεγχο ταυτότητας user:pass στο Selenium WebDriver μέσω selenium-wire ή επέκτασης Chrome onAuthRequired. Δείτε τον κώδικα.
Δωρεάν εργαλεία
Proxy Checker: Ελέγξτε τα Proxies σας Online
Δωρεάν proxy checker: εισαγάγετε έως 100 proxies ως ip:port:user:pass και ελέγξτε κατάσταση, exit IP και latency online. Μάθετε τι σημαίνει κάθε σφάλμα.
Ρύθμιση proxy
Πώς να ρυθμίσετε Proxy στο Google Chrome
Ρυθμίστε HTTP(S) proxy της VinaProxy στο Google Chrome χωρίς αλλαγή IP όλου του συστήματος, με επεκτάσεις, flags --proxy-server ή ξεχωριστά προφίλ.
Ρύθμιση proxy
Πώς να ρυθμίσετε proxy στα Windows 10 & Windows 11
Ρυθμίστε HTTP(S) proxy της VinaProxy σε Windows 10 και Windows 11 μέσω WinINET στις Ρυθμίσεις, Μεταβλητών Περιβάλλοντος PowerShell ή netsh winhttp.