Un agent compatible SOCKS peut établir la connexion de destination pour le client HTTPS du cœur de Node. Avec socks-proxy-agent disponible dans l'application :

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

Remplacez le point de terminaison d'exemple par un candidat non authentifié de la liste de proxys SOCKS5 pour cette requête HTTPS publique. Le rappel vide la réponse après avoir affiché son statut ; consommez le corps ici si l'application en a besoin. Réutilisez l'agent pour ses opérations assignées, puis détruisez-le lorsque cette politique de client est abandonnée et que son travail est terminé.

Choisir où le nom de destination est résolu

Dans la gestion des URL de socks-proxy-agent, socks5h laisse la résolution du nom d'hôte de destination au chemin du proxy ; socks5 le résout localement. Cela compte lorsque le nom n'est disponible que sur le réseau du proxy.

L'URL HTTPS conserve l'identité du site. L'agent effectue la négociation SOCKS avant que Node ne démarre TLS vers ce site.

Pour un service avec nom d'utilisateur/mot de passe, placez les identifiants dans l'URL du proxy avec l'encodage des composants URI pour les caractères réservés. Gardez l'URL complète hors des journaux. Les en-têtes Authorization de destination appartiennent au compte du site.

Cet agent fonctionne avec les API de requête HTTP/HTTPS du cœur de Node. fetch de Node utilise une interface de dispatcher, configurez donc séparément l'intégration SOCKS prise en charge de ce client.

Articles similaires