Використовуйте SOCKS-агент із HTTPS-клієнтом Node
Підключіть socks-proxy-agent до HTTPS-запиту ядра Node і збережіть різницю між агентом Node та диспетчером fetch.
Агент із підтримкою 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 цього клієнта окремо.