IO::Socket::Socks có thể in trao đổi SOCKS khi kết nối thất bại. Cung cấp proxy, đích và tùy chọn gỡ lỗi một cách rõ ràng:

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

Mô-đun ghi nhận SocksDebug là công cụ hiển thị lưu lượng SOCKS theo dạng hướng giao thức. Dùng nó để xem quá trình thương lượng tiến được bao xa và kiểm tra mã lỗi SOCKS được trả về.

ProxyAddr và ProxyPort xác định bên trung gian. Một địa chỉ chưa xác thực từ danh sách proxy SOCKS5 có thể điền các trường đó cho một bài kiểm tra HTTP công khai được phép. ConnectAddr và ConnectPort xác định dịch vụ cần kết nối. Lỗi khi tiếp cận trình lắng nghe và phản hồi kết nối SOCKS âm là hai quan sát khác nhau.

Với proxy yêu cầu xác thực tên người dùng/mật khẩu SOCKS5, các trường hàm tạo được ghi nhận bao gồm AuthType => 'userpass', Username và Password.

Hàm tạo chặn thành công thiết lập kết nối SOCKS, trong khi yêu cầu ứng dụng qua socket được trả về cung cấp kết quả ứng dụng sau đó. Với đích HTTPS, thêm TLS đích đã xác minh sau SOCKS trước khi gửi yêu cầu của giao thức đó. Hãy coi đầu ra gỡ lỗi là nhạy cảm khi có thông tin đăng nhập.

Bài viết liên quan