Как использовать прокси в Node.js (fetch и axios)
Node.js 18 и новее включают fetch через undici. ProxyAgent отправляет каждый запрос через шлюз с вашим логином.
Шаги
- Установите undici: npm install undici
- Создайте ProxyAgent с URL шлюза и вашим логином
- Передайте его как dispatcher в fetch
- Добавьте код страны или ID сессии к имени пользователя при необходимости
Пример кода
import { ProxyAgent, fetch } from "undici";
const agent = new ProxyAgent({
uri: "http://gw.gbproxies.cc:10000",
token: "Basic " + Buffer.from("USERNAME-cc-de:PASSWORD").toString("base64"),
});
const r = await fetch("https://api.ipify.org?format=json", { dispatcher: agent });
console.log(await r.json());Замените USERNAME и PASSWORD на логин прокси со страницы Proxies в консоли. Порт 10000, резидентные HTTP; см. порты каждого продукта ниже.
Советы
- В axios укажите proxy: { protocol: "http", host, port, auth: { username, password } }
- Создайте отдельный agent для каждого ID сессии, если нужно несколько sticky IP одновременно
Частые вопросы
Работает ли с HTTPS сайтами?
Да. Агент открывает CONNECT туннель к цели, поэтому HTTPS остается сквозным шифрованием.