- Хост
- 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 в Guzzle (PHP). Займе кілька хвилин.
Крок 1. Візьміть дані проксі в особистому кабінеті
Відкрийте план і скопіюйте хост gw.prokso.com, порт, логін і пароль. Порт 823 — HTTP, 824 — SOCKS5 (обидва дають новий IP на кожен запит); порти 10000–20000 — фіксований IP (sticky-сесія) до 120 хвилин, працюють і як HTTP, і як SOCKS5 (кожен порт — окрема адреса). Країну задають у логіні: логін__cr.ua.

Крок 2. Встановіть Guzzle
У теці проєкту виконайте composer require guzzlehttp/guzzle.
Крок 3. Задайте проксі в налаштуваннях клієнта
Опція proxy приймає адресу проксі з логіном і паролем. Задана в конструкторі клієнта, вона діє для всіх його запитів; її можна передати й в окремий запит.
<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client([
'proxy' => 'http://ЛОГІН:ПАРОЛЬ@gw.prokso.com:823',
'timeout' => 30,
]);
echo $client->get('https://api.ipify.org?format=json')->getBody();Крок 4. SOCKS5 та окремі проксі за протоколом
Для SOCKS5 замініть адресу на socks5h://ЛОГІН:ПАРОЛЬ@gw.prokso.com:824 — літера h означає, що й DNS-запити підуть через проксі. Опція proxy також приймає масив із ключами http, https і no, якщо для частини адрес проксі не потрібен.
Крок 5. Перевірте вивід
Запустіть приклад: скрипт звертається до https://api.ipify.org і друкує IP, який бачить сайт. Це має бути адреса проксі, а не ваша. Помилка 407 означає неправильний логін або пароль. Сторінка «Мій IP» у браузері тут не допоможе: браузер іде напряму.

Тайм-аути й обробка помилок
Задайте обидві межі: connect_timeout — на з'єднання з проксі, timeout — на весь запит. За замовчуванням Guzzle чекає без обмеження. Опція http_errors зі значенням false дає змогу самостійно розбирати коди відповіді замість винятків:
<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client([
'proxy' => 'http://USERNAME:PASSWORD@gw.prokso.com:823',
'connect_timeout' => 10,
'timeout' => 30,
'http_errors' => false, // handle status codes yourself
]);
$res = $client->get('https://prokso.com/ip');
echo $res->getStatusCode(), ' ', $res->getBody();Код 407 означає, що проксі не прийняв логін або пароль чи на плані закінчився трафік. Коди 403 і 429 надходять від сайту. Розшифрування — на сторінці коди помилок проксі.
Багато запитів одночасно
Для паралельного завантаження використовуйте GuzzleHttp\Pool з опцією concurrency: вона обмежує кількість одночасних запитів. Почніть із 10 і підвищуйте, доки сайт відповідає без помилок 429. На порту 823 кожен запит піде з нового IP.
Спецсимволи в логіні й паролі
Адреса проксі — це URL, тому символи @, : і # у паролі ламають її розбір. Пропустіть логін і пароль через rawurlencode(), перш ніж збирати рядок. Країна задається в логіні, наприклад USERNAME__cr.de, — кодувати потрібно вже готовий логін цілком.
Питання й відповіді
Як тримати один IP для кількох запитів?
Замініть порт 823 на фіксований порт із діапазону 10000–20000: усі запити через нього йтимуть з однієї адреси до 120 хвилин.
Отримую помилку cURL про проксі. Що перевірити?
Перевірте відповідність протоколу й порту: 823 — лише HTTP, 824 — лише SOCKS5, порти 10000–20000 приймають обидва. Код 407 означає неправильний логін або пароль.
Чи потрібне розширення cURL для PHP?
Бажано. З ним Guzzle працює швидше й підтримує SOCKS5. Без нього використовується потоковий обробник PHP, який має менше можливостей.
Як задати проксі в Laravel?
HTTP-клієнт Laravel побудовано на Guzzle: передайте ті самі опції через <code>Http::withOptions(['proxy' => ...])</code>.
Чи можна частину адрес пустити повз проксі?
Так. Передайте <code>proxy</code> масивом і перелічіть винятки в ключі <code>no</code>.