Агент із підтримкою 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);

Замініть приклад кінцевої точки неавтентифікованим кандидатом зі списку SOCKS5-проксі для цього публічного HTTPS-запиту. Зворотний виклик вичитує відповідь після виведення статусу; використовуйте тіло там, якщо програмі це потрібно. Повторно використовуйте агент для призначених йому операцій, а потім знищте його, коли цю клієнтську політику скасують і його робота завершиться.

Виберіть, де розв'язується ім'я призначення

В обробці URL socks-proxy-agent socks5h залишає розв'язання імені хоста призначення проксі-шляху; socks5 розв'язує його локально. Це важливо, коли ім'я доступне лише в мережі проксі.

HTTPS-URL зберігає ідентичність вебсайту. Агент виконує SOCKS-переговори до того, як Node почне TLS до цього сайту.

Для сервісу з іменем користувача й паролем розмістіть облікові дані в URL проксі за допомогою кодування компонентів URI для зарезервованих символів. Тримайте повний URL поза журналами. Заголовки Authorization призначення належать обліковому запису вебсайту.

Цей агент працює з основними API HTTP/HTTPS-запитів Node. fetch у Node використовує інтерфейс диспетчера, тому налаштуйте підтримувану інтеграцію SOCKS цього клієнта окремо.

Схожі статті