Gunakan Ejen SOCKS dengan Klien HTTPS Node
Lampirkan socks-proxy-agent pada permintaan HTTPS teras Node dan kekalkan perbezaan antara ejen Node dan penghantar fetch.
Ejen yang menyokong SOCKS boleh mewujudkan sambungan destinasi untuk klien HTTPS teras Node. Dengan socks-proxy-agent tersedia dalam aplikasi:
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);
Gantikan titik akhir contoh dengan calon tanpa pengesahan daripada senarai proksi SOCKS5 untuk permintaan HTTPS awam ini. Panggil balik mengalirkan respons selepas mencetak statusnya; gunakan badan di situ jika aplikasi memerlukannya. Guna semula ejen untuk operasi yang ditetapkan, kemudian musnahkannya apabila dasar klien itu ditarik balik dan kerjanya selesai.
Pilih tempat nama destinasi diselesaikan
Dalam pengendalian URL socks-proxy-agent, socks5h menyerahkan penyelesaian nama hos destinasi kepada laluan proksi; socks5 menyelesaikannya secara setempat. Ini penting apabila nama hanya tersedia pada rangkaian proksi.
URL HTTPS mengekalkan identiti laman web. Ejen melakukan rundingan SOCKS sebelum Node memulakan TLS ke laman tersebut.
Untuk perkhidmatan nama pengguna/kata laluan, letakkan kelayakan dalam URL proksi menggunakan pengekodan komponen URI untuk aksara terpelihara. Jauhkan URL penuh daripada log. Pengepala Authorization destinasi milik akaun laman web.
Ejen ini berfungsi dengan API permintaan HTTP/HTTPS teras Node. fetch Node menggunakan antara muka penghantar, jadi konfigurasikan integrasi SOCKS yang disokong klien itu secara berasingan.