Dùng tác nhân SOCKS với ứng dụng khách HTTPS của Node
Gắn socks-proxy-agent vào yêu cầu HTTPS lõi của Node và giữ nguyên sự khác biệt giữa tác nhân Node và bộ điều phối fetch.
Một tác nhân hỗ trợ SOCKS có thể thiết lập kết nối đích cho ứng dụng khách HTTPS lõi của Node. Khi socks-proxy-agent có sẵn trong ứng dụng:
const https = require('node:https');
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const request = https.get('https://www.example.com/', {
agent,
signal: AbortSignal.timeout(15000),
}, (response) => {
console.log(response.statusCode);
response.on('error', console.error);
response.resume();
});
request.on('error', console.error);
Thay điểm cuối ví dụ bằng một ứng viên chưa xác thực từ danh sách proxy SOCKS5 cho yêu cầu HTTPS công khai này. Hàm gọi lại rút cạn phản hồi sau khi in mã trạng thái; hãy tiêu thụ phần thân tại đó nếu ứng dụng cần. Dùng lại tác nhân cho các thao tác được giao, rồi hủy nó khi chính sách ứng dụng khách đó bị gỡ bỏ và công việc đã xong.
Chọn nơi phân giải tên đích
Trong cách xử lý URL của socks-proxy-agent, socks5h để việc phân giải tên máy chủ đích cho đường proxy; socks5 phân giải cục bộ. Điều này quan trọng khi tên chỉ có sẵn trên mạng của proxy.
URL HTTPS giữ nguyên danh tính của trang web. Tác nhân thực hiện thương lượng SOCKS trước khi Node bắt đầu TLS tới trang đó.
Với dịch vụ dùng tên người dùng/mật khẩu, hãy đặt thông tin xác thực vào URL proxy bằng mã hóa thành phần URI cho các ký tự dành riêng. Giữ URL đầy đủ ngoài nhật ký. Tiêu đề Authorization của đích thuộc về tài khoản trang web.
Tác nhân này hoạt động với các API yêu cầu HTTP/HTTPS lõi của Node. fetch của Node dùng giao diện dispatcher, nên hãy cấu hình riêng tích hợp SOCKS được hỗ trợ của ứng dụng khách đó.