Настройка прокси в curl

curl через прокси Prokso: HTTP с -x и -U, SOCKS5 через socks5h и порт 824, переменные http_proxy и NO_PROXY, один IP для серии команд.

Обновлено · Редакция Prokso

Данные для подключения
Хост
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» в браузере ваш скрипт не проверяет
Прокси в curl: короткая видеоинструкция · 0:31

Пошаговая инструкция, как подключить прокси Prokso в curl. Займёт несколько минут.

Шаг 1. Возьмите данные прокси в кабинете

Откройте план и скопируйте хост gw.prokso.com, порт, логин и пароль. Порт 823 — HTTP, 824 — SOCKS5 (оба дают новый IP на каждый запрос); порты 10000–20000 — фиксированный IP до 120 минут, работают и как HTTP, и как SOCKS5 (каждый порт — отдельный адрес). Страну задают в логине: логин__cr.ua.

Блок «Доступ» на странице плана: хост, порты, логин и пароль для строки прокси
Блок «Доступ» на странице плана: хост, порты, логин и пароль для строки прокси

Шаг 2. HTTP-прокси одной строкой

Флаг -x задаёт прокси, -U — логин и пароль. Ставьте кавычки: если в логине есть параметры вроде ЛОГИН__cr.ua или точка с запятой, без кавычек их испортит оболочка.

curl -x http://gw.prokso.com:823 -U "ЛОГИН:ПАРОЛЬ" https://api.ipify.org

Шаг 3. SOCKS5

Для SOCKS5 укажите схему socks5h:// и порт 824 (новый IP на каждый запрос) или фиксированный 10000–20000 — он тоже работает с SOCKS5. Буква h означает, что доменное имя сайта определяет прокси, а не ваш компьютер, — так DNS-запросы тоже не идут с вашего IP.

curl -x socks5h://gw.prokso.com:824 -U "ЛОГИН:ПАРОЛЬ" https://api.ipify.org

Шаг 4. Переменные окружения

Чтобы не писать -x в каждой команде, задайте переменные. Для HTTP curl читает только http_proxy строчными буквами, для HTTPS подойдёт https_proxy или HTTPS_PROXY. Адреса, которые должны идти напрямую, перечислите в NO_PROXY.

export http_proxy="http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823"
export https_proxy="$http_proxy"
export NO_PROXY="localhost,127.0.0.1"
curl https://api.ipify.org

Шаг 5. Проверьте IP в ответе

Выполните любую команду из примеров: https://api.ipify.org вернёт IP, с которого ушёл запрос, — это должен быть IP прокси, а не ваш. Браузер эти настройки не использует, поэтому проверяйте именно в терминале.

Пример запуска: в выводе — IP прокси, а не ваш. На порту 823 каждый запуск даёт новый адрес
Пример запуска: в выводе — IP прокси, а не ваш. На порту 823 каждый запуск даёт новый адрес

Полезные флаги при работе через прокси

  • --max-time 30 — общий предел времени. Без него зависший запрос висит бесконечно.
  • --connect-timeout 10 — отдельный предел на соединение с прокси.
  • --retry 3 --retry-delay 2 — повтор при временных сбоях; на порту 823 каждый повтор уйдёт с нового IP.
  • --compressed — запросить сжатый ответ: меньше трафика при том же содержимом.
  • -I — только заголовки. Удобно проверить, отвечает ли сайт, не скачивая страницу.
  • -s -o /dev/null -w "%{http_code}\n" — вывести только код ответа.

Страна и сессия в логине

Параметры прокси записываются в логине. Страна — USERNAME__cr.de. Проще всего собрать нужный логин в генераторе в кабинете и скопировать оттуда. Кавычки вокруг логина обязательны: без них оболочка разберёт спецсимволы по-своему.

# exit IP in Germany, a new address for every request
curl -x http://gw.prokso.com:823 -U "USERNAME__cr.de:PASSWORD" https://prokso.com/ip

# the same IP for a series of commands: a sticky port
curl -x http://gw.prokso.com:10001 -U "USERNAME__cr.de:PASSWORD" https://prokso.com/ip

Что означают ошибки curl

  • (5) Could not resolve proxy. Опечатка в имени хоста прокси.
  • (7) Failed to connect. Прокси недоступен по этому порту: проверьте порт и не закрыт ли он в вашей сети.
  • (56) CONNECT tunnel failed, response 407. Неверные логин и пароль или закончился трафик на плане.
  • (28) Operation timed out. Ответ не пришёл вовремя: увеличьте --max-time или повторите запрос.
  • (97) или сбой согласования SOCKS. Схема не подходит порту: 823 — только HTTP, 824 — только SOCKS5.

Коды ответа самого сайта разобраны на странице коды ошибок прокси.

Вопросы и ответы

Как увидеть, что запрос действительно идёт через прокси?

Добавьте <code>-v</code>: в выводе будет строка о соединении с <code>gw.prokso.com</code>, а для HTTPS — запрос CONNECT к сайту.

Почему curl игнорирует HTTP_PROXY заглавными буквами?

Это намеренное ограничение curl из соображений безопасности. Для HTTP используйте только <code>http_proxy</code> строчными буквами.

Как работает curl с прокси в Windows?

Так же. В PowerShell имя <code>curl</code> может вызывать встроенную команду с другими параметрами — пишите <code>curl.exe</code>.

Чем socks5 отличается от socks5h?

В варианте <code>socks5h</code> имя сайта определяет прокси, а не ваш компьютер. DNS-запросы тогда не уходят мимо прокси.

Как сохранить ответ в файл?

Добавьте <code>-o имя_файла</code>. Прокси на это не влияет.