Ein SOCKS-fähiger Agent kann die Zielverbindung für den HTTPS-Kernclient von Node aufbauen. Wenn socks-proxy-agent in der Anwendung verfügbar ist:

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

Ersetzen Sie den Beispiel-Endpunkt durch einen nicht authentifizierten Kandidaten aus der SOCKS5-Proxy-Liste für diese öffentliche HTTPS-Anfrage. Der Callback liest die Antwort nach dem Ausgeben des Status aus; konsumieren Sie den Body dort, wenn die Anwendung ihn benötigt. Verwenden Sie den Agenten für seine zugewiesenen Vorgänge wieder und zerstören Sie ihn, wenn diese Client-Richtlinie aufgegeben wird und seine Arbeit beendet ist.

Wählen Sie, wo der Zielname aufgelöst wird

In der URL-Behandlung von socks-proxy-agent überlässt socks5h die Auflösung des Ziel-Hostnamens dem Proxy-Pfad; socks5 löst ihn lokal auf. Das ist wichtig, wenn der Name nur im Netzwerk des Proxys verfügbar ist.

Die HTTPS-URL behält die Identität der Website. Der Agent führt die SOCKS-Aushandlung durch, bevor Node TLS zu dieser Website startet.

Bei einem Dienst mit Benutzername/Passwort legen Sie die Anmeldedaten in der Proxy-URL mit URI-Komponenten-Kodierung für reservierte Zeichen ab. Halten Sie die vollständige URL aus Protokollen heraus. Authorization-Header des Ziels gehören zum Konto der Website.

Dieser Agent arbeitet mit den HTTP/HTTPS-Anfrage-APIs des Node-Kerns. fetch von Node verwendet eine Dispatcher-Schnittstelle, daher konfigurieren Sie die unterstützte SOCKS-Integration dieses Clients separat.

Ähnliche Artikel