Un agent compatibil SOCKS poate stabili conexiunea de destinație pentru clientul HTTPS din nucleul Node. Când socks-proxy-agent este disponibil în aplicație:

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

Înlocuiți punctul final din exemplu cu un candidat neautentificat din lista de proxy SOCKS5 pentru această cerere HTTPS publică. Callback-ul golește răspunsul după ce afișează starea; consumați corpul acolo dacă aplicația are nevoie de el. Reutilizați agentul pentru operațiunile atribuite, apoi distrugeți-l când acea politică de client este retrasă și munca lui s-a încheiat.

Alegeți unde este rezolvat numele destinației

În manipularea URL-urilor de către socks-proxy-agent, socks5h lasă rezolvarea numelui de gazdă al destinației în seama căii proxy; socks5 îl rezolvă local. Acest lucru contează când numele este disponibil doar în rețeaua proxy-ului.

URL-ul HTTPS păstrează identitatea site-ului. Agentul efectuează negocierea SOCKS înainte ca Node să înceapă TLS către acel site.

Pentru un serviciu cu nume de utilizator/parolă, puneți acreditările în URL-ul proxy folosind codificarea componentelor URI pentru caracterele rezervate. Țineți URL-ul complet în afara jurnalelor. Antetele Authorization ale destinației aparțin contului site-ului.

Acest agent funcționează cu API-urile de cerere HTTP/HTTPS din nucleul Node. fetch din Node folosește o interfață de dispatcher, așa că configurați separat integrarea SOCKS acceptată a acelui client.

Articole similare