IO::Socket::Socks może wypisać wymianę SOCKS, gdy połączenie się nie powiedzie. Podaj jawnie proxy, miejsce docelowe i opcję debugowania:

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();

Moduł dokumentuje SocksDebug jako wyświetlanie ruchu SOCKS w formie zorientowanej na protokół. Użyj go, aby zobaczyć, jak daleko zachodzi negocjacja, i sprawdzić zwrócony kod błędu SOCKS.

ProxyAddr i ProxyPort identyfikują pośrednika. Nieuwierzytelniony adres z listy proxy SOCKS5 może wypełnić te pola na potrzeby dozwolonego publicznego testu HTTP. ConnectAddr i ConnectPort identyfikują usługę, z którą należy się połączyć. Błąd dotarcia do nasłuchującego i negatywna odpowiedź połączenia SOCKS to dwie różne obserwacje.

W przypadku proxy wymagającego uwierzytelniania nazwą użytkownika/hasłem SOCKS5 udokumentowane pola konstruktora obejmują AuthType => 'userpass', Username i Password.

Skuteczny konstruktor blokujący nawiązuje połączenie SOCKS, natomiast żądanie aplikacji przez zwrócone gniazdo dostarcza późniejszy wynik aplikacji. W przypadku miejsca docelowego HTTPS dodaj po SOCKS zweryfikowany TLS miejsca docelowego przed wysłaniem żądania tego protokołu. Traktuj dane wyjściowe debugowania jako poufne, gdy w grę wchodzą poświadczenia.

Powiązane artykuły