- Хост
- gw.prokso.com
- Порт
- 823 HTTP · 824 SOCKS5 — новый IP на каждый запрос · 10000–20000 фиксированный IP (sticky-сессия), HTTP(S) и SOCKS5
- Логин и пароль
- в кабинете, на странице плана
Готовые строки в нужном формате генерирует кабинет: выберите страну, тип IP и протокол.
- Хост — gw.prokso.com, порты 823 (HTTP), 824 (SOCKS5), 10000–20000 (фиксированный IP, HTTP или SOCKS5)
- Логин и пароль — в кабинете на странице плана
- Проверяйте IP в ответе самого запроса через прокси: страница «Мой IP» в браузере ваш скрипт не проверяет
Пошаговая инструкция, как подключить прокси Prokso в Node.js. Займёт несколько минут.
Шаг 1. Возьмите данные прокси в кабинете
Откройте план и скопируйте хост gw.prokso.com, порт, логин и пароль. Порт 823 — HTTP, 824 — SOCKS5 (оба дают новый IP на каждый запрос); порты 10000–20000 — фиксированный IP до 120 минут, работают и как HTTP, и как SOCKS5 (каждый порт — отдельный адрес). Страну задают в логине: логин__cr.ua.

Шаг 2. Установите пакеты
Для запросов через прокси понадобятся axios и https-proxy-agent: npm i axios https-proxy-agent.
Шаг 3. Создайте агент прокси
Передайте адрес прокси в HttpsProxyAgent и подключите его к запросу. Опцию proxy: false оставляйте, чтобы axios не накладывал собственные настройки.
// npm i axios https-proxy-agent
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823");
const { data } = await axios.get("https://api.ipify.org?format=json", { httpsAgent: agent, proxy: false });
console.log(data);Сохраните код как check.mjs и запустите node check.mjs.
Шаг 4. Переключайтесь между режимами
Порт 823 — новый IP на каждый запрос, 10000–20000 — постоянный IP для сессии. Для SOCKS5 используйте пакет socks-proxy-agent и порт 824 (ротация) или тот же фиксированный порт 10000–20000.
Шаг 5. Проверьте вывод скрипта
Запустите пример из шага 3: axios идёт на https://api.ipify.org через агент прокси и выводит в консоль { ip: '…' }. Это адрес, который видит сайт, — он должен отличаться от вашего. Если видите ошибку 407, проверьте логин и пароль. Страница «Мой IP» в браузере здесь ничего не покажет: браузер идёт напрямую.

Один агент на всё приложение
Создавайте агент прокси один раз и переиспользуйте его во всех запросах. Новый агент на каждый запрос открывает новое соединение с прокси, и скрипт работает медленнее. Удобнее всего собрать экземпляр axios с нужными настройками:
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USERNAME:PASSWORD@gw.prokso.com:823");
// one client for the whole app: proxy, timeout, no built-in axios proxy
const http = axios.create({ httpAgent: agent, httpsAgent: agent, proxy: false, timeout: 30000 });
const { data } = await http.get("https://prokso.com/ip");
console.log(data);Тайм-аут задавайте явно: по умолчанию axios ждёт ответа бесконечно, и один зависший запрос остановит очередь.
Что означают ошибки
- Ответ 407. Прокси не принял логин или пароль. Проверьте строку и остаток трафика на плане.
- ECONNREFUSED. На указанном хосте и порту никто не отвечает: опечатка в адресе или порте.
- ETIMEDOUT или ECONNRESET. Соединение оборвалось или не установилось. Повторите запрос: на порту 823 он уйдёт с нового IP.
- Запрос ушёл с вашего IP. Не указано
proxy: false, и axios применил собственные настройки, либо агент не передан для нужного протокола.
Коды 403 и 429 приходят от сайта, а не от прокси. Что с ними делать, описано на странице коды ошибок прокси.
Параллельные запросы
Promise.all запускает все запросы сразу. Для сотен адресов это перегружает и сайт, и ваш скрипт. Ограничивайте число одновременных запросов очередью: десяти–двадцати обычно достаточно, а при ответах 429 уменьшайте.
Вопросы и ответы
Читает ли Node.js переменные HTTP_PROXY?
Встроенные модули по умолчанию их не читают. Надёжнее передавать прокси явно через агент, как в примере.
Как закодировать пароль со спецсимволами?
Оберните логин и пароль в <code>encodeURIComponent()</code> при сборке адреса прокси.
Как держать один IP для серии запросов?
Замените порт 823 на фиксированный порт из диапазона 10000–20000: все запросы через него пойдут с одного IP, пока длится сессия.