Ένας πράκτορας με υποστήριξη SOCKS μπορεί να δημιουργήσει τη σύνδεση προορισμού για τον πελάτη HTTPS του πυρήνα του Node. Με το socks-proxy-agent διαθέσιμο στην εφαρμογή:

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

Αντικαταστήστε το παράδειγμα endpoint με μη πιστοποιημένο υποψήφιο από τη λίστα διαμεσολαβητών SOCKS5 για αυτό το δημόσιο αίτημα HTTPS. Το callback αδειάζει την απόκριση μετά την εκτύπωση της κατάστασης· καταναλώστε το σώμα εκεί αν το χρειάζεται η εφαρμογή. Επαναχρησιμοποιήστε τον πράκτορα για τις ανατεθειμένες λειτουργίες του και μετά καταστρέψτε τον όταν η πολιτική αυτού του πελάτη αποσυρθεί και η εργασία του ολοκληρωθεί.

Επιλέξτε πού επιλύεται το όνομα προορισμού

Στη διαχείριση URL του socks-proxy-agent, το socks5h αφήνει την επίλυση του hostname προορισμού στη διαδρομή του διαμεσολαβητή· το socks5 το επιλύει τοπικά. Αυτό έχει σημασία όταν το όνομα είναι διαθέσιμο μόνο στο δίκτυο του διαμεσολαβητή.

Το URL HTTPS διατηρεί την ταυτότητα του ιστότοπου. Ο πράκτορας εκτελεί διαπραγμάτευση SOCKS πριν ο Node ξεκινήσει TLS προς αυτόν τον ιστότοπο.

Για υπηρεσία με όνομα χρήστη/κωδικό, βάλτε τα διαπιστευτήρια στο URL του διαμεσολαβητή με κωδικοποίηση στοιχείων URI για δεσμευμένους χαρακτήρες. Κρατήστε το πλήρες URL έξω από τα αρχεία καταγραφής. Οι κεφαλίδες Authorization προορισμού ανήκουν στον λογαριασμό του ιστότοπου.

Αυτός ο πράκτορας λειτουργεί με τα βασικά API αιτημάτων HTTP/HTTPS του Node. Το fetch του Node χρησιμοποιεί διεπαφή dispatcher, οπότε διαμορφώστε ξεχωριστά την υποστηριζόμενη ενσωμάτωση SOCKS αυτού του πελάτη.

Σχετικά άρθρα