Πώς να διορθώσετε το 407 Proxy Authentication Required
Updated:
Ένα σφάλμα 407 είναι καλύτερο νέο απ' ό,τι φαίνεται: η συσκευή σας συνδέθηκε με τον proxy και η διαδρομή δικτύου είναι ανοιχτή. Ο proxy απλώς αναφέρει ότι δεν έλαβε έγκυρο όνομα χρήστη και κωδικό πρόσβασης. Γι' αυτό σχεδόν κάθε 407 επιλύεται από την πλευρά των διαπιστευτηρίων, όχι στο ρούτερ ή στο τείχος προστασίας σας.
Αιτίες ενός 407, κατά σειρά πιθανότητας
- Λανθασμένο ή ελλιπές όνομα χρήστη/κωδικός πρόσβασης. Ένας λάθος χαρακτήρας ή ένα κενό διάστημα στο τέλος που αντιγράφηκε μαζί με τον κωδικό. Αυτό εξηγεί τις περισσότερες αναφορές για 407.
- Επικόλληση πεδίων σε λάθος πλαίσια. Ολόκληρη η γραμμή
ip:port:user:passκαταλήγει στο πεδίο Host ή το όνομα χρήστη μπαίνει στο πεδίο του κωδικού πρόσβασης. Ορισμένα εργαλεία διαχωρίζουν αυτόματα τα τέσσερα πεδία, άλλα όχι. - Η εφαρμογή δεν στέλνει ποτέ διαπιστευτήρια. Μια ρύθμιση proxy στο λειτουργικό σύστημα αποθηκεύει μόνο τη διεύθυνση και τη θύρα. Οι εφαρμογές που δεν μπορούν να ζητήσουν κωδικό πρόσβασης συνδέονται χωρίς κεφαλίδα ελέγχου ταυτότητας και λαμβάνουν πίσω ένα 407.
- Ειδικοί χαρακτήρες σε ένα URL διακομιστή proxy. Στη μορφή
http://user:pass@host:port, χαρακτήρες όπως@,:ή#στον κωδικό πρόσβασης πρέπει να κωδικοποιούνται με ποσοστό (το@γίνεται%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 για να δείτε εάν στάλθηκαν καθόλου διαπιστευτήρια. Το ίχνος καταγραφής δείχνει > CONNECT example.com:443 HTTP/1.1, στη συνέχεια > Proxy-Authorization: Basic ..., και μόνο μετά το 407. Εάν λείπει η γραμμή Proxy-Authorization, το πρόγραμμα-πελάτης σας δεν έστειλε ποτέ τα στοιχεία σύνδεσης.
Ο έλεγχος proxy του VinaProxy αναφέρει την ίδια περίπτωση ως auth failed (407). Ο Headless Chrome, ο οποίος δεν διαθέτει παράθυρο διαλόγου σύνδεσης, το εμφανίζει ως ERR_TUNNEL_CONNECTION_FAILED· δείτε τη σελίδα σφάλματος tunnel.
Επιλύσεις ανά περιβάλλον
- Windows και Chrome: Ο Chrome ακολουθεί τη ρύθμιση proxy των Windows (Ρυθμίσεις > Δίκτυο & Internet > Διακομιστής μεσολάβησης), η οποία διατηρεί μόνο τη διεύθυνση και τη θύρα. Κατά την πρώτη φόρτωση σελίδας, ο Chrome ανοίγει ένα παράθυρο διαλόγου σύνδεσης για το όνομα χρήστη και τον κωδικό πρόσβασης του proxy. Αν τα πληκτρολογήσατε λάθος και το παράθυρο διαλόγου δεν επανεμφανίζεται, κλείστε όλα τα παράθυρα του Chrome και ανοίξτε τα ξανά.
- Antidetect browsers (AdsPower, GoLogin, GenLogin): διατηρήστε τα Host, Port, Username και Password σε ξεχωριστά πεδία. Καθαρίστε πλήρως το πεδίο κωδικού πρόσβασης και επικολλήστε το ξανά αντί να το επεξεργαστείτε. Οδηγίες ανά πεδίο βρίσκονται στον οδηγό ρύθμισης GoLogin.
- Κινητά τηλέφωνα: Το iPhone διαθέτει διακόπτη «Έλεγχος ταυτότητας» στη διαδρομή Ρυθμίσεις > Wi-Fi > (i) > Διαμόρφωση μεσολαβητή· εάν μείνει ανενεργός, προκαλεί 407. Το Android συνήθως δέχεται μόνο host και θύρα, επομένως οι εφαρμογές που απαιτούν σύνδεση ενδέχεται να εμφανίζουν ένα γενικό σφάλμα σύνδεσης.
- curl: περάστε το
-U "user:pass"ξεχωριστά αντί να το ενσωματώσετε στο URL, παρακάμπτοντας έτσι τυχόν προβλήματα με ειδικούς χαρακτήρες. - Python requests: ορίστε το
http://user:pass@host:portκαι για τα δύο κλειδιάhttpκαιhttpsτου λεξικούproxies, και κωδικοποιήστε τους ειδικούς κωδικούς πρόσβασης μεurllib.parse.quote.
Τα διαπιστευτήρια είναι σωστά αλλά το 407 παραμένει
Στη συνέχεια, συγκρίνετε τα πρωτόκολλα. Το VinaProxy παρέχει διακομιστές μεσολάβησης HTTP(S) με σύνδεση user:pass καθώς και SOCKS5, επομένως επιλέξτε το πρωτόκολλο που εμφανίζεται στην παραγγελία σας στον πίνακα ελέγχου. Εάν ο ελεγκτής απαντήσει not socks5, η συγκεκριμένη θύρα επικοινωνεί μέσω HTTP και δεν πρέπει να διαμορφωθεί ως SOCKS5.
Βήμα προς βήμα
- 1
Αντιγράψτε τη γραμμή proxy από τον πίνακα ελέγχου
Ανοίξτε την παραγγελία στον πίνακα ελέγχου του VinaProxy και αντιγράψτε ολόκληρη τη γραμμή αντί να την πληκτρολογήσετε.
- 2
Ελέγξτε την με τον ελεγκτή proxy
Επικολλήστε την στον έλεγχο proxy. Ένα αποτέλεσμα
auth failed (407)επιβεβαιώνει πρόβλημα διαπιστευτηρίων και όχι δικτύου. - 3
Εισαγάγετε ξανά καθαρά το όνομα χρήστη και τον κωδικό
Καθαρίστε και τα δύο πεδία στο λογισμικό σας και επικολλήστε τα ξανά χωρίς αρχικά ή τελικά κενά διαστήματα.
- 4
Αντιστοιχίστε το πρωτόκολλο με την παραγγελία
Ορίστε τον τύπο proxy σε HTTP ή SOCKS5 ακριβώς όπως αναφέρεται στην παραγγελία και, στη συνέχεια, αποθηκεύστε.
- 5
Κάντε ανίχνευση με curl -v εάν επιμένει
Εκτελέστε την εντολή
curl -vμε τις πραγματικές σας τιμές και ελέγξτε αν υπάρχει γραμμήProxy-Authorizationπριν από το 407.
Συχνές ερωτήσεις
Προκαλείται το 407 από αποκλεισμό του proxy από τον ISP μου;
Όχι. Το 407 αποστέλλεται από τον ίδιο τον proxy, επομένως η σύνδεση πραγματοποιήθηκε επιτυχώς. Μια αποκλεισμένη διαδρομή εμφανίζεται ως χρονικό όριο ή απόρριψη σύνδεσης· δείτε το χρονικό όριο proxy.
Γιατί ο Chrome ζητά συνεχώς στοιχεία σύνδεσης για τον proxy;
Κάθε λανθασμένη καταχώριση λαμβάνει άλλο ένα 407 και ο Chrome ζητά ξανά στοιχεία. Ελέγξτε το πλήκτρο Caps Lock και βεβαιωθείτε ότι μια βιετναμέζικη ή άλλη μέθοδος εισαγωγής δεν προσθέτει τόνους στον κωδικό πρόσβασης.
Πώς εισάγω έναν κωδικό πρόσβασης που περιέχει @ σε ένα URL proxy;
Κωδικοποιήστε τον: το @ ως %40, το : ως %3A, το # ως %23. Με το curl, η σημαία -U αποφεύγει εντελώς την κωδικοποίηση.
Το Selenium ή το Puppeteer εμφανίζει σφάλμα tunnel αντί για 407. Είναι το ίδιο πρόβλημα;
Συνήθως ναι. Ο Headless Chrome δεν μπορεί να εμφανίσει παράθυρο διαλόγου σύνδεσης, επομένως το 407 εμφανίζεται ως ERR_TUNNEL_CONNECTION_FAILED. Καταχωρίστε διαπιστευτήρια μέσω του μηχανισμού ελέγχου ταυτότητας της βιβλιοθήκης, όπως στον οδηγό Selenium.
Private proxies με σαφή διαπιστευτήρια
Κάθε παραγγελία VinaProxy σάς δίνει μια έτοιμη γραμμή ip:port:user:pass για να την αντιγράψετε μία φορά και να την επικολλήσετε οπουδήποτε.
Δείτε τις τιμές των proxy