SocksDebug로 IO::Socket::Socks 연결 디버그하기
조사 중인 프록시와 목적지에 대해 IO::Socket::Socks 핸드셰이크 진단을 활성화합니다.
IO::Socket::Socks는 연결이 실패할 때 SOCKS 교환을 출력할 수 있습니다. 프록시, 목적지, 디버그 옵션을 명시적으로 지정하십시오:
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();모듈은 SocksDebug를 SOCKS 트래픽을 프로토콜 지향 형식으로 표시하는 기능으로 문서화합니다. 협상이 어디까지 진행되었는지 확인하고 반환된 SOCKS 실패 코드를 검사하는 데 사용하십시오.
ProxyAddr와 ProxyPort는 중개자를 식별합니다. SOCKS5 프록시 목록의 인증되지 않은 주소를 사용하면 허용된 공개 HTTP 테스트를 위해 해당 필드를 채울 수 있습니다. ConnectAddr와 ConnectPort는 연결해야 할 서비스를 식별합니다. 리스너에 도달하지 못한 오류와 SOCKS 연결의 부정 응답은 서로 다른 관찰입니다.
SOCKS5 사용자 이름/비밀번호 인증이 필요한 프록시의 경우 문서화된 생성자 필드에는 AuthType => 'userpass', Username, Password가 있습니다.
성공적인 블로킹 생성자는 SOCKS 연결을 수립하며, 반환된 소켓을 통한 애플리케이션 요청은 이후의 애플리케이션 결과를 제공합니다. HTTPS 목적지의 경우 해당 프로토콜의 요청을 보내기 전에 SOCKS 후 검증된 목적지 TLS를 추가하십시오. 자격 증명이 관련된 경우 디버그 출력을 민감한 정보로 취급하십시오.