IO::Socket::Socks kan skriva ut SOCKS-utvekslinga når ei tilkopling mislykkast. Oppgi proxyen, destinasjonen og feilsøkingsvalet eksplisitt:

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

Modulen dokumenterer SocksDebug som vising av SOCKS-trafikk i ei protokollorientert form. Bruk han til å sjå kor langt forhandlinga kjem, og til å undersøkje ein returnert SOCKS-feilkode.

ProxyAddr og ProxyPort identifiserer mellomleddet. Ei uautentisert adresse frå SOCKS5-proxylista kan fylla desse felta for ein tillaten offentleg HTTP-test. ConnectAddr og ConnectPort identifiserer tenesta ho skal kopla til. Ein feil ved å nå lyttaren og eit negativt SOCKS-tilkoplingssvar er to ulike observasjonar.

For ein proxy som krev SOCKS5-brukarnamn/passord-autentisering, omfattar dei dokumenterte konstruktørfelta AuthType => 'userpass', Username og Password.

Ein vellukka blokkerande konstruktør etablerer SOCKS-tilkoplinga, medan ein applikasjonsførespurnad gjennom den returnerte sockelen leverer det seinare applikasjonsresultatet. For ein HTTPS-destinasjon må du leggja til verifisert destinasjons-TLS etter SOCKS før du sender førespurnaden for den protokollen. Handsama feilsøkingsutdata som sensitive når påloggingsinformasjon er involvert.

Relaterte artiklar