IO::Socket::Socks kan skriva ut SOCKS-utbytet när en anslutning misslyckas. Ange proxyn, destinationen och felsökningsalternativet explicit:

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 dokumenterar SocksDebug som visning av SOCKS-trafik i en protokollorienterad form. Använd den för att se hur långt förhandlingen kommer och för att granska en returnerad SOCKS-felkod.

ProxyAddr och ProxyPort identifierar mellanhanden. En oautentiserad adress från SOCKS5-proxylistan kan fylla dessa fält för ett tillåtet offentligt HTTP-test. ConnectAddr och ConnectPort identifierar tjänsten den ska ansluta till. Ett fel att nå lyssnaren och ett negativt SOCKS-anslutningssvar är två olika observationer.

För en proxy som kräver SOCKS5-användarnamn/lösenordsautentisering omfattar de dokumenterade konstruktor-fälten AuthType => 'userpass', Username och Password.

En lyckad blockerande konstruktor upprättar SOCKS-anslutningen, medan en applikationsförfrågan genom den returnerade sockeln ger det senare applikationsresultatet. För en HTTPS-destination, lägg till verifierad destinations-TLS efter SOCKS innan du skickar den protokollets förfrågan. Behandla felsökningsutdata som känslig när inloggningsuppgifter är inblandade.

Relaterade artiklar