Depurar conexões IO::Socket::Socks com SocksDebug
Ative o diagnóstico do handshake do IO::Socket::Socks para o proxy e o destino em investigação.
O IO::Socket::Socks pode imprimir a troca SOCKS quando uma conexão falha. Informe o proxy, o destino e a opção de depuração explicitamente:
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();O módulo documenta o SocksDebug como a exibição do tráfego SOCKS de forma orientada ao protocolo. Use-o para ver até onde a negociação avança e para inspecionar um código de falha SOCKS retornado.
ProxyAddr e ProxyPort identificam o intermediário. Um endereço sem autenticação da lista de proxies SOCKS5 pode preencher esses campos para um teste HTTP público permitido. ConnectAddr e ConnectPort identificam o serviço ao qual ele deve se conectar. Um erro ao alcançar o listener e uma resposta negativa de conexão SOCKS são observações diferentes.
Para um proxy que exige autenticação de usuário e senha do SOCKS5, os campos documentados do construtor incluem AuthType => 'userpass', Username e Password.
Um construtor bloqueante bem-sucedido estabelece a conexão SOCKS, enquanto uma solicitação da aplicação pelo socket retornado fornece o resultado posterior da aplicação. Para um destino HTTPS, adicione TLS verificado do destino após o SOCKS antes de enviar a solicitação desse protocolo. Trate a saída de depuração como sensível quando houver credenciais envolvidas.