Το IO::Socket::Socks μπορεί να εκτυπώσει την ανταλλαγή SOCKS όταν μια σύνδεση αποτυγχάνει. Δώστε ρητά το proxy, τον προορισμό και την επιλογή αποσφαλμάτωσης:

use IO::Socket::Socks;

my $socket = IO::Socket::Socks->new(
    ProxyAddr   => 'proxy.example',
    ProxyPort   => 1080,
    ConnectAddr => 'www.example.com',
    ConnectPort => 80,
    SocksVersion => 5,
    SocksDebug  => 1,
    Timeout     => 10,
) or die $SOCKS_ERROR;

$socket->close();

Η ενότητα τεκμηριώνει το SocksDebug ως εμφάνιση της κίνησης SOCKS σε μορφή προσανατολισμένη στο πρωτόκολλο. Χρησιμοποιήστε το για να δείτε πόσο έχει προχωρήσει η διαπραγμάτευση και για να εξετάσετε έναν κωδικό αποτυχίας SOCKS που επιστράφηκε.

Τα ProxyAddr και ProxyPort προσδιορίζουν τον μεσάζοντα. Μια μη πιστοποιημένη διεύθυνση από τη λίστα proxy SOCKS5 μπορεί να συμπληρώσει αυτά τα πεδία για μια επιτρεπόμενη δημόσια δοκιμή HTTP. Τα ConnectAddr και ConnectPort προσδιορίζουν την υπηρεσία με την οποία πρέπει να συνδεθεί. Ένα σφάλμα κατά την προσέγγιση του ακροατή και μια αρνητική απάντηση σύνδεσης SOCKS είναι διαφορετικές παρατηρήσεις.

Για proxy που απαιτεί έλεγχο ταυτότητας ονόματος χρήστη/κωδικού SOCKS5, τα τεκμηριωμένα πεδία του κατασκευαστή περιλαμβάνουν AuthType => 'userpass', Username και Password.

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

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