Agent obsługujący SOCKS może nawiązać połączenie z miejscem docelowym dla klienta HTTPS rdzenia Node. Gdy socks-proxy-agent jest dostępny w aplikacji:

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

Zastąp przykładowy punkt końcowy nieuwierzytelnionym kandydatem z listy proxy SOCKS5 dla tego publicznego żądania HTTPS. Wywołanie zwrotne opróżnia odpowiedź po wydrukowaniu statusu; zużyj treść tam, jeśli aplikacja jej potrzebuje. Używaj agenta ponownie do przypisanych mu operacji, a następnie zniszcz go, gdy ta polityka klienta zostanie wycofana, a jego praca zakończona.

Wybierz, gdzie rozwiązywana jest nazwa celu

W obsłudze adresów URL przez socks-proxy-agent socks5h pozostawia rozwiązywanie nazwy hosta celu ścieżce proxy; socks5 rozwiązuje ją lokalnie. Ma to znaczenie, gdy nazwa jest dostępna tylko w sieci proxy.

Adres URL HTTPS zachowuje tożsamość witryny. Agent wykonuje negocjację SOCKS, zanim Node rozpocznie TLS do tej witryny.

W przypadku usługi z nazwą użytkownika i hasłem umieść dane uwierzytelniające w adresie URL proxy, używając kodowania komponentów URI dla znaków zarezerwowanych. Trzymaj pełny adres URL poza logami. Nagłówki Authorization celu należą do konta witryny.

Ten agent działa z podstawowymi interfejsami API żądań HTTP/HTTPS Node. fetch w Node używa interfejsu dyspozytora, więc skonfiguruj obsługiwaną integrację SOCKS tego klienta osobno.

Powiązane artykuły