Налаштування проксі в 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:30

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

Крок 1. Візьміть дані проксі в особистому кабінеті

Відкрийте план і скопіюйте хост gw.prokso.com, порт, логін і пароль. Порт 823 — HTTP, 824 — SOCKS5 (обидва дають новий IP на кожен запит); порти 10000–20000 — фіксований IP (sticky-сесія) до 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>. Проксі на це не впливає.