Un agente compatibile SOCKS può stabilire la connessione di destinazione per il client HTTPS del core di Node. Con socks-proxy-agent disponibile nell'applicazione:

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

Sostituite l'endpoint di esempio con un candidato non autenticato dalla lista di proxy SOCKS5 per questa richiesta HTTPS pubblica. Il callback svuota la risposta dopo aver stampato lo stato; consumate il corpo lì se l'applicazione ne ha bisogno. Riusate l'agente per le operazioni assegnate, poi distruggetelo quando quella politica client viene ritirata e il suo lavoro è terminato.

Scegliere dove viene risolto il nome di destinazione

Nella gestione degli URL di socks-proxy-agent, socks5h lascia la risoluzione del nome host di destinazione al percorso del proxy; socks5 la risolve localmente. Questo conta quando il nome è disponibile solo sulla rete del proxy.

L'URL HTTPS conserva l'identità del sito web. L'agente esegue la negoziazione SOCKS prima che Node avvii TLS verso quel sito.

Per un servizio con nome utente/password, inserite le credenziali nell'URL del proxy usando la codifica dei componenti URI per i caratteri riservati. Tenete l'URL completo fuori dai log. Le intestazioni Authorization di destinazione appartengono all'account del sito.

Questo agente funziona con le API di richiesta HTTP/HTTPS del core di Node. fetch di Node usa un'interfaccia dispatcher, quindi configurate separatamente l'integrazione SOCKS supportata da quel client.

Articoli correlati