Debugowanie połączeń IO::Socket::Socks za pomocą SocksDebug
Włącz diagnostykę uzgadniania IO::Socket::Socks dla badanego proxy i miejsca docelowego.
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.