- Хост
- 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 в n8n. Займёт несколько минут.
Шаг 1. Возьмите данные прокси в кабинете
Откройте план и скопируйте хост gw.prokso.com, порт, логин и пароль. Порт 823 — HTTP, 824 — SOCKS5 (оба дают новый IP на каждый запрос); порты 10000–20000 — фиксированный IP до 120 минут, работают и как HTTP, и как SOCKS5 (каждый порт — отдельный адрес). Страну задают в логине: логин__cr.ua.
Шаг 2. Добавьте опцию Proxy в узле HTTP Request
Откройте workflow, добавьте узел HTTP Request и задайте метод и адрес страницы, как обычно. В параметрах узла нажмите Add Option и выберите Proxy — появится поле для адреса прокси.
Шаг 3. Впишите адрес прокси с логином
В поле Proxy вставьте http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823 — логин и пароль возьмите из генератора в кабинете. Поле принимает только адреса, которые начинаются с http:// или https://, поэтому SOCKS5 на порту 824 здесь не подойдёт: работайте через 823 или фиксированный порт 10000–20000. Прокси действует только для этого узла, другие узлы HTTP Request настраиваются отдельно.
Шаг 4. Задайте темп и таймаут
Если в узел приходит много элементов, на каждый идёт отдельный запрос, и на порту 823 каждый получает новый адрес. Чтобы не засыпать сайт запросами, добавьте опцию Batching: Items per Batch — сколько запросов в пачке, Batch Interval — пауза между пачками в миллисекундах. Опция Timeout задаёт, сколько миллисекунд ждать ответа.
Шаг 5. Прокси для всего n8n на своём сервере
Если n8n установлен на вашем сервере, прокси можно задать один раз переменными окружения: HTTP_PROXY для http-сайтов, HTTPS_PROXY для https-сайтов, ALL_PROXY — запасной вариант для обоих. Тогда через прокси пойдёт весь HTTP-трафик от узлов. Опция Proxy в узле имеет более высокий приоритет, чем эти переменные. Ниже — запуск в Docker; после изменения переменных контейнер нужно перезапустить.
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e HTTP_PROXY=http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823 \
-e HTTPS_PROXY=http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823 \
-e NO_PROXY=localhost,127.0.0.1 \
-v n8n_data:/home/node/.n8n \
n8nio/n8nШаг 6. Исключите адреса, которым прокси не нужен
В переменную NO_PROXY через запятую впишите хосты, к которым n8n должен ходить напрямую, — например, ваши внутренние сервисы. Так они не будут тратить трафик плана. Обратите внимание: n8n читает эти переменные через пакет proxy-from-env, и вариант строчными буквами (http_proxy) важнее заглавных (HTTP_PROXY), если в системе заданы оба.
Шаг 7. Проверьте IP в workflow
Соберите пробный workflow: узел Manual Trigger и за ним HTTP Request с методом GET на https://api.ipify.org?format=json и настроенным прокси. Запустите workflow вручную и посмотрите на вывод узла: поле ip должно содержать адрес прокси, а не вашего сервера. Ошибка 407 означает неверный логин или пароль либо закончившийся трафик на плане. Страница «Мой IP» в браузере здесь не поможет: запрос делает сервер n8n, а не браузер.
Страна и IP для каждого item через выражение в поле Proxy
Как и другие параметры узла, поле Proxy можно переключить в режим Expression. Тогда каждый item выходит через свою страну и свой порт. Положите адрес страницы, код страны и порт во входные данные, например из узла Set или таблицы:
[
{ "url": "https://example.de/catalog", "country": "de", "port": 10001 },
{ "url": "https://example.pl/catalog", "country": "pl", "port": 10002 },
{ "url": "https://example.com/catalog", "country": "us", "port": 823 }
]В поле URL напишите {{ $json.url }}, а в поле Proxy:
http://ЛОГИН__cr.{{ $json.country }}:ПАРОЛЬ@gw.prokso.com:{{ $json.port }}Items с фиксированным портом 10000–20000 держат один IP столько, сколько задано в кабинете, и каждый порт — отдельный адрес. Items с портом 823 получают новый IP на каждый запрос. Страна ничего не стоит дополнительно, так что в одном запуске можно смешивать несколько стран.
Когда узел HTTP Request в n8n падает
n8n превращает сетевые и HTTP-ошибки в короткие сообщения. Вот что они обычно значат, когда запрос идёт через прокси:
- «The connection timed out, consider setting the 'Retry on Fail' option in the node settings». Прокси или сайт не ответили вовремя. Увеличьте опцию Timeout и включите Retry On Fail (см. ниже).
- «The connection cannot be established, this usually occurs due to an incorrect host (domain) value». Опечатка в
gw.prokso.comили в адресе страницы, либо в контейнере не работает DNS. - «The service refused the connection - perhaps it is offline». По этому адресу никто не принял соединение. Проверьте порт в поле Proxy: 823 или 10000–20000.
- «Forbidden - perhaps check your credentials?». n8n показывает это для любого 403, но через прокси это почти всегда отказ сайта, а не ваши учётные данные в n8n. Неверный пароль прокси даёт 407.
- «The service is receiving too many requests from you». Это 429 от сайта. Увеличьте Batch Interval и уменьшите Items per Batch.
Retry On Fail без двойной оплаты трафика
На вкладке Settings узла опция Retry On Fail запускает узел снова после ошибки. Max. Tries — число попыток (n8n принимает от 2 до 5, по умолчанию 3), Wait Between Tries (ms) — пауза между ними (до 5000 мс, по умолчанию 1000). На порту 823 каждая попытка идёт с нового IP, на фиксированном порту — с того же, пока не истечёт время удержания.
Учтите: узел запускается заново целиком, со всеми входными items. Если упала одна страница из ста, все сто загрузятся ещё раз, и трафик каждый раз считается в обе стороны. Для длинных списков поставьте On Error в значение Continue (using error output): неудачные items уйдут в отдельный выход, где второй узел HTTP Request с паузой повторит только их.
Другой способ — опция Response: включите Never Error и Include Response Headers and Status. Тогда узел возвращает поле statusCode даже для 403 и 429, а узел IF может отправить такие items в более медленную ветку.
Если прокси не работает
Вопросы и ответы
Можно ли подключить SOCKS5?
В поле Proxy — нет: оно принимает только адреса с http:// или https://. Адрес другого формата n8n пропускает и берёт настройки из переменных окружения, а если их нет, запрос пойдёт напрямую. Используйте HTTP на порту 823 или фиксированных портах 10000–20000.
Что действует, если заданы и опция в узле, и переменные окружения?
Опция Proxy в узле. Переменные HTTP_PROXY, HTTPS_PROXY и ALL_PROXY работают для всех узлов, где собственный прокси не указан.
Переменные заданы, а запросы идут напрямую. Почему?
Проверьте, нет ли в окружении контейнера или сервера таких же переменных строчными буквами, например http_proxy: у них приоритет над заглавными. И перезапустите n8n после изменения переменных.
Отправляет ли Retry On Fail запрос с нового IP?
На порту 823 — да, каждая попытка получает новый адрес. На фиксированном порту IP не меняется, пока не истечёт время удержания, поэтому если сайт отказывает этому адресу, повторы не помогут: перенесите item на другой порт или на 823.
Сколько трафика тратит один вызов HTTP Request?
Размер запроса плюс размер ответа. В отличие от браузера, узел загружает только указанный адрес, без картинок и скриптов. Если у сайта есть API с JSON, запрашивайте его вместо HTML-страницы: обычно так намного меньше.