Агент с поддержкой 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 для этого клиента отдельно.

Похожие статьи