Бесплатное тестирование доступно для жителей Франции , Великобритании или Сингапура в Telegram Присоединяйтесь к Telegram
Руководство по настройке Node.js

Настройка мобильного прокси с помощью Node.js

Пошаговое руководство по настройке мобильного прокси в Node.js. Настройте axios, node-fetch, Puppeteer и Playwright с использованием выделенных IP-адресов операторов 4G/5G для обеспечения надежной автоматизации на JavaScript.

PXM2 Proxies September 22, 2026 Время чтения: 8 минут
Node 18+ Поддержка в процессе работы
axios & fetch HTTP-клиенты
Puppeteer & Playwright Браузеры без интерфейса
7+ Доступно стран
  • Интеграция https-proxy-agent — перенаправление запросов Axios и нативных запросов fetch через HTTP-туннели с аутентификацией.
  • Поддержка socks-proxy-agent — полная поддержка протокола SOCKS5 с удалённым разрешением DNS в современных средах выполнения Node.js.
  • Аутентификация на странице Puppeteer — обработка запросов на ввод учетных данных прокси с помощью метода page.authenticate() или флагов среды выполнения Chrome.
  • Изоляция контекста Playwright — назначение выделенных мобильных прокси для каждого контекста браузера, что обеспечивает работу с несколькими учетными записями без утечки данных.
Мобильные прокси 4G / 5G Поддержка JavaScript и TypeScript
Целевые сроки выполненияNode.js, Bun, Deno
Библиотеки, включенные в обзорaxios, Undici, Puppeteer, Playwright
Поддержка протоколовHTTP CONNECT, SOCKS5
АутентификацияБазовая аутентификация и контекстные диспетчеры
Пользовательские диспетчеры агентов

Изоляция браузера без пользовательского интерфейса

Устойчивость к вращению

Параметры прокси Node.js

В отличие от среды выполнения браузера или Python, Node.js изначально не считывает переменные среды HTTP_PROXY для встроенных HTTP-запросов. В современных бэкендах на JavaScript и TypeScript для маршрутизации исходящего трафика через прокси требуется настроить диспетчер Agent или передать сетевые параметры в высокоуровневые фреймворки для автоматизации работы с браузерами.

Инструмент / Библиотека Метод прокси Обработка аутентификации Вариант использования
axios https-proxy-agent Учетные данные URL в тексте REST-API, бэкенд-микросервисы
fetch (Node 18+) undici ProxyAgent ProxyAgent: базовая аутентификация Стандартные веб-API, бэкенды Next.js
Puppeteer args + page.authenticate Перехват события CDP Автоматизация с использованием Headless Chrome
Playwright Настройки контекстного прокси-сервера Объект «Native Server» Современные методы извлечения данных из браузеров и тестирование

Настройка axios и node-fetch

При использовании axios разработчики часто пытаются передать базовый объект прокси { host, port, auth }. Хотя это работает для HTTP в открытом виде, при подключении к HTTPS-ресурсам это часто приводит к ошибкам сброса соединения. Стандартным решением в отрасли является установка https-proxy-agent или socks-proxy-agent для создания «чистых» HTTP CONNECT-туннелей.

Настройка axios с использованием https-proxy-agent
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';

// Define dedicated PXM2 mobile proxy endpoint
const proxyUrl = 'http://user123:secret456@proxy.pxm2.io:8000';
const httpsAgent = new HttpsProxyAgent(proxyUrl);

// Create reusable axios client instance
const client = axios.create({
  httpsAgent,
  timeout: 15000,
  headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
  },
});

async function checkCarrierIp() {
  try {
    const response = await client.get('https://ipinfo.io/json');
    console.log('Connected through mobile IP:', response.data.ip);
  } catch (err) {
    console.error('Proxy request failed:', err.message);
  }
}

checkCarrierIp();
HttpsProxyAgent обеспечивает сквозное шифрование TLS через мобильный модем

Для прокси SOCKS5 в Node.js установите пакет socks-proxy-agent и инициализируйте SocksProxyAgent('socks5h://user:pass@proxy.pxm2.io:1080'). Протокол socks5h обеспечивает удалённое разрешение DNS-имен без утечки данных на стороне клиента.

Настройка прокси-сервера Puppeteer

Puppeteer запускает внешний бинарный файл на основе Chromium. Поскольку Chrome не принимает встроенные учетные данные (имя пользователя и пароль) в аргументах командной строки, Puppeteer требует выполнения двухэтапного процесса: запуска браузера с параметром `--proxy-server` и вызова метода `page.authenticate()` для передачи учетных данных через протокол Chrome DevTools Protocol (CDP).

Запуск и аутентификация прокси-сервера Puppeteer
import puppeteer from 'puppeteer';

async function runBrowser() {
  const browser = await puppeteer.launch({
    headless: 'new',
    args: [
      // 1. Pass host and port to Chrome flags
      '--proxy-server=http://proxy.pxm2.io:8000',
      '--no-sandbox',
    ],
  });

  const page = await browser.newPage();

  // 2. Intercept 407 authentication challenges
  await page.authenticate({
    username: 'user123',
    password: 'secret456',
  });

  await page.goto('https://ipinfo.io', { waitUntil: 'domcontentloaded' });
  const ip = await page.$eval('body', el => el.innerText);
  console.log('Puppeteer IP verified:', ip);

  await browser.close();
}

runBrowser();
Вызов метода page.authenticate() перед переходом на другую страницу позволяет избежать зависаний при аутентификации в модальном окне

Настройка прокси-сервера Playwright

Playwright обеспечивает более удобную работу с прокси, чем Puppeteer. Вместо того чтобы полагаться на перехват аутентификации CDP, Playwright позволяет настраивать параметры прокси на уровне контекста. Это дает возможность одновременно назначать разные мобильные прокси отдельным контекстам браузера в рамках одного экземпляра Chromium.

Изолированные прокси контекста в Playwright
import { chromium } from 'playwright';

async function main() {
  const browser = await chromium.launch({ headless: true });

  // Create isolated context with dedicated mobile proxy
  const context = await browser.newContext({
    proxy: {
      server: 'http://proxy.pxm2.io:8000',
      username: 'user123',
      password: 'secret456',
    },
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
  });

  const page = await context.newPage();
  await page.goto('https://api.ipify.org?format=json');
  console.log(await page.textContent('body'));

  await context.close();
  await browser.close();
}

main();
Изоляция контекста позволяет запускать несколько мобильных прокси без запуска нескольких браузеров

Рекомендации по использованию прокси в Node.js

При масштабном запуске скрейперов и ботов на Node.js крайне важно обеспечить правильное использование пула соединений и соблюдение правил управления памятью:

  • 1. Включить функцию Keep-Alive на прокси-агентах
    Всегда устанавливайте значение keepAlive: true в настройках HttpsProxyAgent. Повторное использование постоянных TCP-сокетов позволяет сократить задержку в мобильной сети на 100–250 мс при каждом последующем запросе.
  • 2. Закрыть неактивные контексты
    В приложениях «Playwright» и «Puppeteer» никогда не оставляйте открытыми неиспользуемые контексты браузера или страницы. Оставленные контексты потребляют память и поддерживают открытые сокет-соединения с сотовым модемом.
  • 3. Обработка задержек при повороте по требованию
    При запуске ротации IP-адресов через веб-хук PXM2 в Node.js необходимо обернуть вызов ротации в Promise, который будет выдерживать паузу в 6 секунд перед выполнением очереди запросов.
🇬🇧

Великобритания

2 оператора 20-60 Mbps
Начиная с
$3.64 за 1 час
4G
Доступные операторы:
O2 EE
🇪🇸

Испания

2 оператора 30-80 Mbps
Начиная с
$4.35 за 1 час
5G
Доступные операторы:
Orange Vodafone
🇮🇳

Индия

2 оператора 20-30 Mbps
Начиная с
$2.74 за 1 час
4G
Доступные операторы:
Airtel Vodafone Idea (Vi)
Смотреть все локации →

Часто задаваемые вопросы

Как использовать мобильный прокси с axios в Node.js?

В современной версии Axios используйте https-proxy-agent или socks-proxy-agent для создания объекта httpAgent или httpsAgent и передайте его экземпляру Axios. Это позволяет обойти проблемы, связанные с базовыми настройками прокси-объектов, и обеспечивает полную поддержку туннелирования CONNECT для HTTPS.

Как Playwright обрабатывает аутентификацию через прокси?

Playwright поддерживает аутентификацию через прокси непосредственно в браузере: `browser.newContext({ proxy: { server, username, password } })` или при запуске браузера. В отличие от Puppeteer, Playwright обрабатывает аутентификацию на уровне сетевого протокола, не требуя появления всплывающих окон на уровне страницы.

Можно ли использовать мобильные прокси с встроенным API fetch в Node.js?

Да. В Node.js версии 18 и более поздних глобальная функция `fetch` использует библиотеку Undici. Настроить прокси можно, передав пользовательский экземпляр Dispatcher из Undici (ProxyAgent) или задав стандартные переменные среды HTTP_PROXY с помощью undici-fetch.

Почему соединения WebSocket не работают через HTTP-прокси Node.js?

Для работы WebSockets требуется обновление HTTP до версии 101 (Switchings Protocols). При маршрутизации WebSockets через HTTP-прокси убедитесь, что ваш прокси-сервер поддерживает метод HTTP CONNECT, либо перейдите на SOCKS5-прокси, который туннелирует необработанные TCP-потоки без проверки заголовков полезных данных.

Как настроить ротацию IP-адресов мобильного прокси в скриптах Node.js?

При ротации через API отправьте HTTP-запрос GET на URL-адрес ротации PXM2. Сделайте небольшую паузу продолжительностью от 5 до 10 секунд, чтобы сотовый модем успел установить новое соединение с оператором, а затем, прежде чем продолжить, выполните проверку IP-адреса на сайте https://api.ipify.org.

Ознакомьтесь с соответствующими учебными материалами для разработчиков, информацией об интеграции с программистскими языками и руководствами по инфраструктуре мобильных прокси-серверов.

Руководства для разработчиков

Руководства по платформам и скрапингу

Ускорьте автоматизацию Node.js с помощью прокси-серверов Carrier

Специализированные мобильные модемы 4G/5G с неограниченным объемом данных, низкой задержкой и мгновенной сменой IP-адресов через API.

Получить мобильный прокси