Отстраняване на грешки в IO::Socket::Socks връзки със SocksDebug
Активирайте диагностика на ръкостискането на 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 дестинация добавете проверен TLS за дестинацията след SOCKS, преди да изпратите заявката на този протокол. Отнасяйте се към изхода за отстраняване на грешки като чувствителен, когато участват идентификационни данни.