Η αλυσίδα proxy από SOCKS σε HTTP του curl
Ρυθμίστε την αλυσίδα SOCKS–HTTP που υποστηρίζει το curl, βρείτε τη σειρά των τελικών σημείων και δοκιμάστε κάθε βήμα πριν τα συνδυάσετε.
Η επιλογή --preproxy του curl συνδέεται σε SOCKS proxy πριν φτάσει σε HTTP ή HTTPS proxy. Υποστηρίζει αυτή τη συγκεκριμένη αλυσίδα, όχι αυθαίρετη λίστα διακομιστών proxy.
Η διαδρομή είναι πελάτης → τελικό σημείο SOCKS → HTTP proxy → προορισμός. Αντικαταστήστε και τα δύο σημεία τεκμηρίωσης στην εντολή:
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
Η υπηρεσία SOCKS πρέπει να μπορεί να φτάσει στη διεύθυνση και στη θύρα του HTTP proxy. Έπειτα ο HTTP proxy πρέπει να αποδεχτεί το αίτημα προορισμού. Αν ο δεύτερος proxy χρησιμοποιεί όνομα host, η πρώτη λειτουργία SOCKS καθορίζει πού επιλύεται αυτό το όνομα· ένα αριθμητικό σημείο αποφεύγει την αναζήτηση.
Εντοπισμός του βήματος που αποτυγχάνει
Πρώτα επιβεβαιώστε ένα αίτημα μέσω κάθε σημείου χωριστά· για το βήμα HTTP χρησιμοποιήστε δοκιμή HTTP proxy με χρονικά όρια. Ακόμη κι αν λειτουργούν και τα δύο, η συνδυασμένη διαδρομή μπορεί να αποτύχει επειδή ο πρώτος proxy δεν φτάνει στον δεύτερο.
Διαβάστε την αναλυτική καταγραφή με τη σειρά συνδέσεων. Μια αποτυχία SOCKS κατά την προσέγγιση του δεύτερου proxy προηγείται της απόφασης του HTTP proxy να δεχτεί ή να απορρίψει CONNECT προς τον ιστότοπο. Καταγράψτε ποια χειραψία απέτυχε.
Πότε βοηθά το επιπλέον βήμα
Η διάταξη μπορεί να είναι χρήσιμη όταν ένας εξουσιοδοτημένος HTTP proxy είναι προσβάσιμος μέσω SOCKS. Προσθέτει όμως άλλη υπηρεσία και διαδρομή δικτύου που μπορεί να αποτύχει ή να προκαλέσει καθυστέρηση. Η σύνδεση σημείων από μια δημόσια λίστα proxy δεν εγγυάται αξιοπιστία ή ανωνυμία και απαιτεί ακόμη εμπιστοσύνη στα μέρη που χειρίζονται τη σύνδεση.
Το --preproxy απαιτεί curl 7.52.0 ή νεότερο· άλλες εφαρμογές μπορεί να μην υποστηρίζουν την ίδια διάταξη.