Η σύνδεση στο FTP χρησιμοποιεί σύνδεση ελέγχου. Στη συνέχεια, μια λίστα καταλόγου ή μια λήψη χρειάζεται σύνδεση δεδομένων, που μπορεί να αποτύχει παρόλο που η σύνδεση μέσω SOCKS πέτυχε.

Πρώτα προσδιορίστε παθητική ή ενεργή λειτουργία. Στην παθητική λειτουργία ο πελάτης ανοίγει νέα σύνδεση στη διεύθυνση και τη θύρα που παρέχει ο διακομιστής FTP. Και αυτή η σύνδεση χρειάζεται την προβλεπόμενη διαδρομή proxy.

Ενσωμάτωση socket στη Ruby

Το Net::FTP API της Ruby τεκμηριώνει τη συμπεριφορά σύνδεσης και παθητικής λειτουργίας. Μια ενσωμάτωση SOCKS πρέπει να καλύπτει τη δημιουργία socket που χρησιμοποιείται και από τη διαδρομή ελέγχου και από τη διαδρομή δεδομένων· η ρύθμιση proxy ενός πελάτη HTTP αλλού δεν τις ρυθμίζει.

Αν η ενσωμάτωση αλλάζει καθολικά τη συμπεριφορά του socket, εξετάστε το εύρος της ως προς τον παραλληλισμό. Ένα μπλοκ γύρω από μία μεταφορά δεν μπορεί να απομονώσει άλλα νήματα από αλλαγές σε κοινόχρηστη κατάσταση.

Ένας πάροχος μπορεί να προσφέρει στατικό τελικό σημείο, αλλά αυτό είναι χαρακτηριστικό υπηρεσίας και όχι γενική απαίτηση του SOCKS. Όπου ξεχωριστές συνδέσεις μπορούν να χρησιμοποιούν διαφορετικές εξόδους, ελέγξτε πώς ο διακομιστής FTP συσχετίζει τη σύνδεση δεδομένων του με την πιστοποιημένη σύνδεση ελέγχου.

Καταγράψτε το στάδιο που επιτεύχθηκε, τη λειτουργία και το τελικό σημείο δεδομένων, χωρίς διαπιστευτήρια. Αυτό διακρίνει μια αποκλεισμένη διαδρομή δεδομένων από αποτυχία σύνδεσης στο proxy.

Σχετικά άρθρα